业务,预警,邮件

一、 智能销售系统 需求文档:(各个的功能描述)

二、项目业务

业务模块

1、基础模块:

权限管理,产品,数据字典,员工,部门,shiro(身份认证和授权)等等。

2、核心业务:(理解)

采购模块:

流程:录入人员–>采购单–>审核采购单–》入库处理 (点击入库 进入入库表)。

销售模块:

流程: 录入人员–>销售单–>审核销售单–>出库处理。

库存模块:

1、入库数据: 保存(stockincomebill/stockincomebillitem),出库数据,入库审核:
审核完之后, 进入productstock(即时库存表)和 depot(仓库表) 同时 (stockincomebill)入库单据状态变成已审核
2、出库审核之后: 审核完之后, 进入productstock和 depot 同时 (stockincomebill)入库单据状态变成已审核

盘点模块:( crud)

清点模块 – 清点单(每个月有那么一两天清点)

盘盈盘亏数据 --单据

清点完之后–还有同步数据

及时库存表:(账面库存)

同一个仓库里面的产品是唯一

合并原则:(入库 通过同一个产品 同一个仓库) – 价格(加权平均法)

3、保存入库–和采购单保存一样

4、审核入库单(重点)

审核流程:

单据变成已审核 ,改变状态 添加审核人 审核时间

更新即时库存表

更新仓库表

三、预警

在指定的时间 之前执行的一个任务,
流程:
(1)导入jar包

<!-- spring额外集成邮件,任务调度,邮件模版 -->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context-support</artifactId>
	<version>${org.springframework.version}</version>
</dependency>

<!-- 任务调度(定时任务) -->
<dependency>
	<groupId>quartz</groupId>
	<artifactId>quartz</artifactId>
	<version>1.5.2</version>
</dependency>

(2)配置cron表达式–自己找
引入 applicationContext.xml 中:

<!-- 引入下列的配置文件 -->
<import resource="classpath:plugin/applicationContext-qz.xml"/>

配置: applicationContext-qz.xml

<!-- "classpath:plugin/applicationContext-qz.xml"的Spirng配置 -->
<?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:tx="http://www.springframework.org/schema/tx"
	xmlns:task="http://www.springframework.org/schema/task"
	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/task http://www.springframework.org/schema/task/spring-task.xsd
				http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">


	<!-- cron表达式:在每天早上8点到晚上8点期间每1分钟触发一次 -->
	<!--value>0 0/1 8-20 * * ?</value -->
	<!-- cron表达式:每5分钟触发一次 -->
	<!-- <value>0 0/5 * * * ?</value> -->

	<task:scheduled-tasks>
		<!-- 执行quartzJob里面的work方法,执行频率是cron表达式 -->
		<task:scheduled ref="quartzJob" method="work" cron="0 0/1 * * * ?" />
	</task:scheduled-tasks>
</beans>

(3)写service测试

@Service("QzJob")
public class QuartzJobServiceImpl implements IQuartzJobService {

    @Autowired
    private IProductstockService productstockService;

    @Override
    public void work() {
        System.out.println(productstockService);
        System.out.println("---------------------------------");
        String jpql ="select o from Productstock o where o.id = ?";
        List list = productstockService.findByJpql(jpql, 1L);
        if(list.size() > 0 ){
            System.out.println("库存不足");
        }else{
            System.out.println("库存很足...");
        }

    }
}

四、邮件

流程:

(1)导入jar包

<dependency>
	<groupId>javax.mail</groupId>
	<artifactId>mail</artifactId>
	<version>1.4.1</version>
</dependency>

(2)配置spring,同样需要引入applicationContext.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:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
				http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
				http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
	<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<!-- 163邮箱,smtp.163.com -->
		<!-- [email protected] 用户名:admin 授权码:xxx -->
		<!-- smtp邮件发送协议 -->
		<!-- pop3收邮件协议 -->
		<property name="host" value="smtp.163.com" />
		<property name="username" value="123456" />
		<property name="password" value="xxxxxxx" />
		<property name="javaMailProperties">
			<props>
				<!-- 必须进行授权认证,它的目的就是阻止他人任意乱发邮件 -->
				<prop key="mail.smtp.auth">true</prop>
				<!-- SMTP加密方式:连接到一个TLS保护连接 -->
				<prop key="mail.smtp.starttls.enable">true</prop>
			</props>
		</property>
	</bean>

</beans>

​ (3)写代码测试(固定代码,注意邮件需要设置)

public class MailTest extends BaseServiceTest {
   @Autowired
   JavaMailSender mailSender;

   @Test
   public void testName() throws Exception {
//JavaMailSenderImpl xxx = (JavaMailSenderImpl)mailSender
      // 简单邮件对象
      SimpleMailMessage msg = new SimpleMailMessage();
      // 发送人:和配置一致
      msg.setFrom("[email protected]");
      // 收件人
      msg.setTo("[email protected]");

      // 主题
      msg.setSubject("牛皮大学录取通知书");
      // 内容
      msg.setText("你已经被录取了");
      // 设置固定回邮地址
      //msg.setReplyTo("[email protected]");
      // 发送
      mailSender.send(msg);
   }

   /**
    * 发送复杂邮件
    */
   @Test
   public void testSendMsg2() throws MessagingException {
      //创建复杂的邮件发送
      MimeMessage mimeMessage = mailSender.createMimeMessage();

      //复杂邮件的工具类
      MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"UTF-8");

      helper.setFrom("[email protected]");

      helper.setTo("[email protected]");


      helper.setSubject("测试一把");
      helper.setText("<h1>男男女女</h1>",true);

      //发送附件
      helper.addAttachment("美女.jpg",new File("E:/timg.jpg"));
      helper.addAttachment("java.docx",new File("E:/新建文本文档 (2).txt"));
      mailSender.send(mimeMessage);
   }
}

猜你喜欢

转载自blog.csdn.net/weixin_44671176/article/details/99687789