Java全栈开发---Java ERP系统开发:商业ERP(十一)库存预警,JavaMail发送预警邮件

将整个查结果拆分成2个子查询,再合并起来

在这里插入图片描述

(3)SQL语句编写

这种带子查询的语句相对复杂,我们分步来实现

1)先实现当前商品库存统计,查询出每种商品的库存数量

在这里插入图片描述

这种结果只能查询存在库存的商品数量,而库存中不存在的商品侧不会显示出来。我们可以通过左外链接的方式进行查询。使用nvi方法把null转换0

在这里插入图片描述

2)实现销售订单中商品的统计,统计每种待发货的商品数量

在这里插入图片描述

3)通过商品编号将上面这2种查询组合起来

在这里插入图片描述

(4)视图创建

我们上边的语句查询的结果是我们经常要用到的,每次都写的很繁琐,所以我们可以把常用的复杂的查询直接建立视图,把它当成hibernate中的一个表来处理,这样可以极简化我们的开发,便于日常维护。

创建视图SQL语句

在这里插入图片描述

2、代码编写
(1)创建实体类Storealert

package com.itzheng.erp.entity;

public class Storealert {

private Long uuid;

private String name;

private Long storenum;

private Long outnum;

public Long getUuid() {

return uuid;

}

public void setUuid(Long uuid) {

this.uuid = uuid;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Long getStorenum() {

return storenum;

}

public void setStorenum(Long storenum) {

this.storenum = storenum;

}

public Long getOutnum() {

return outnum;

}

public void setOutnum(Long outnum) {

this.outnum = outnum;

}

@Override

public String toString() {

return “Storealert [uuid=” + uuid + “, name=” + name + “, storenum=” + storenum + “, outnum=” + outnum + “]”;

}

}

(2)创建映射文件

映射文件:storealert.hbm.xml

在这里插入图片描述

(3)数据访问层实现

在IStoredetailDao和StoredetailDao中加入方法与实践

1)IStoredetailDao

在这里插入图片描述

2)IStoredetailDao

在这里插入图片描述

(4)业务逻辑层实现

在IStoredetailBiz和StoredetailBiz中添加方法与实现

在这里插入图片描述

在这里插入图片描述

(5)Action层的实现

在StoredetailAction中加入方法:

在这里插入图片描述

(6)页面代码

1)添加js/storealert.js

在这里插入图片描述

2)添加storealert.html文件

在这里插入图片描述

3)运行结果

http://localhost:8080/erp/storealert.html

在这里插入图片描述

二、JavaMail发送预警邮件(扩展)


1、需求分析

实现发送邮件预警功能,根据相关人员进行采购,点击“发送警报邮件”按钮即可发送库存报警

如果存在报警商品并成功发送 ,提示发送成功

如果不存在报警商品,提示没有库存报警商品

在这里插入图片描述

2、JavaMail介绍

JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。JavaMail API是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如:SMTP、POP3、IMAP。开发人员使用JavaMail API编写邮件处理软件时,无须考虑邮件协议底层的实现细节,只要调用JavaMail开发包中相应的API类就可以了。

使用 JavaMail,我们可以实现类似 OutLook、FoxMail 的软件

Spring的javaMailSender对JavaMail进行封装,简化了开发,告别繁琐的API

3、ERP中实现发送预警邮件
(1)添加依赖

在父工程的pom.xml中添加java mail的依赖

在这里插入图片描述

(2)编写发送邮件的工具类

在业务逻辑层当中创建MailUtil

在这里插入图片描述

(3)编写spring配置文件

创建applicationContext_mail.xml

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:context=“http://www.springframework.org/schema/context”

xmlns:aop=“http://www.springframework.org/schema/aop” xmlns:tx=“http://www.springframework.org/schema/tx”

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop.xsd

">

true

true

(4)编写业务逻辑类

给IStoredetailBiz和StoredetailBiz添加sendStoreAlertMail方法

IStoredetailBiz

在这里插入图片描述

StoredetailBiz

在这里插入图片描述

private MailUtil mailUtil;

public void setMailUtil(MailUtil mailUtil) {

this.mailUtil = mailUtil;

}

private String toAddress;// 收件箱

private String subject;// 主题

private String text;// 正文

public void setToAddress(String toAddress) {

this.toAddress = toAddress;

}

public void setSubject(String subject) {

this.subject = subject;

}

public void setText(String text) {

this.text = text;

}

/**

  • 发送库存预警邮件

  • @throws MessagingException

*/

public void sendStoreAlertMail() throws MessagingException {

// 得到库存预警列表

List storeAlertList = storedetailDao.getStorealertList();

if (storeAlertList.size() > 0) {

mailUtil.sendMail(toAddress,

subject.replace(“[time]”, new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”).format(new Date())),

text.replace(“[count]”, String.valueOf(storeAlertList.size())));

} else {

throw new ErpException(“没有库存预警信息”);

}

}

(5)修改applicationContext_biz.xml

storedeatilBiz节点,添加
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

本人也收藏了一份Java面试核心知识点来应付面试,借着这次机会可以送给我的读者朋友们

目录:

全靠这套面试题,才让我有惊无险美团二面拿offer  (面经解析)

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

全靠这套面试题,才让我有惊无险美团二面拿offer  (面经解析)

Java面试核心知识点

已经有读者朋友靠着这一份Java面试知识点指导拿到不错的offer了

全靠这套面试题,才让我有惊无险美团二面拿offer  (面经解析)

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
03032d36.jpg" alt=“img” style=“zoom: 33%;” />

最后

本人也收藏了一份Java面试核心知识点来应付面试,借着这次机会可以送给我的读者朋友们

目录:

[外链图片转存中…(img-MADmcrdt-1713130119976)]

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

[外链图片转存中…(img-DQmFQLiC-1713130119976)]

Java面试核心知识点

已经有读者朋友靠着这一份Java面试知识点指导拿到不错的offer了

[外链图片转存中…(img-1EcoYU01-1713130119976)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 27
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值