Parcourir la source

修改开票申请监听

jiangbiao il y a 3 ans
Parent
commit
9f90774697

+ 27 - 27
master/src/main/java/com/ruoyi/project/invoice/controller/TApproveReserveInvoiceController.java

@@ -122,58 +122,58 @@ public class TApproveReserveInvoiceController extends BaseController {
             TInvoiceBookingworkticket invoice = workService.getById(id);
             invoice.setStatus(1L);
             workService.updateById(invoice);
-            switch (invoice.getWorkArea()){
+            switch (invoice.getWorkArea()) {
                 case "310裂解区":
                 case "700开关锅炉":
                 case "320裂解区":
                 case "250管廊-700":
 //                    devSupId="20253,20257";
-                    devSupId="10081,10082";
-                    break;
+//                    break;
                 case "330压缩区":
                 case "废水处理":
                 case "600废碱":
                 case "250管廊-600":
-                    devSupId="20249,20317";
-                    break;
+//                    devSupId="20249,20317";
+//                    break;
                 case "380分离区":
                 case "360分离区":
                 case "350分离区":
                 case "340分离区":
-                    devSupId="20252";
-                    break;
+//                    devSupId="20252";
+//                    break;
                 case "400汽油加氢":
                 case "250管廊-400":
-                    devSupId="20248";
-                    break;
+//                    devSupId="20248";
+//                    break;
                 case "500芳烃抽提":
                 case "250管廊-500":
-                    devSupId="20244";
-                    break;
+//                    devSupId="20244";
+//                    break;
                 case "D301控制楼":
                 case " D201变电所":
                 case " 维修厂房":
                 case "危废车库":
-                    devSupId="20332,20250,20276";
+//                    devSupId="20332,20250,20276";
+                    devSupId = "10081,10082";
                     break;
             }
         }
         //开始工作流、监听
         Map<String, Object> variables = new HashMap<>();
         variables.put("applyUser", userid.toString());
-        variables.put("yhzgusers", tApproveReserveInvoice.getUserSupId());//用户主管
+        variables.put("yhzgusers", tApproveReserveInvoice.getUserSupId().toString());//用户主管
         variables.put("zzzgusers", devSupId);//装置主管
         if ("1".equals(tApproveReserveInvoice.getIsToday())) {
-            variables.put("zzgcsusers", tApproveReserveInvoice.getDevEngineerId());//装置工程师
+            variables.put("zzgcsusers", tApproveReserveInvoice.getDevEngineerId().toString());//装置工程师
         }
         if ("1".equals(tApproveReserveInvoice.getIsSpecial())) {
-            variables.put("zzjlusers", tApproveReserveInvoice.getManagerconId());//装置经理
+            variables.put("zzjlusers", tApproveReserveInvoice.getManagerconId().toString());//装置经理
         }
-        variables.put("yhzgTaskCreateListener",new YhzgTaskCreateListener());//用户主管监听发送邮件
-        variables.put("zzzgTaskCreateListener",new ZzzgTaskCreateListener());//装置主管监听发送邮件
-        variables.put("zzgcsTaskCreateListener",new ZzgcsTaskCreateListener());//装置工程师监听发送邮件
-        variables.put("zzjlTaskCreateListener",new ZzjlTaskCreateListener());//装置经理监听发送邮件
-        variables.put("invoiceEndSuccessListener",new InvoiceEndSuccessListener());//流程结束监听发送邮件
+        variables.put("yhzgTaskCreateListener", new YhzgTaskCreateListener());//用户主管监听发送邮件
+        variables.put("zzzgTaskCreateListener", new ZzzgTaskCreateListener());//装置主管监听发送邮件
+        variables.put("zzgcsTaskCreateListener", new ZzgcsTaskCreateListener());//装置工程师监听发送邮件
+        variables.put("zzjlTaskCreateListener", new ZzjlTaskCreateListener());//装置经理监听发送邮件
+        variables.put("invoiceEndSuccessListener", new InvoiceEndSuccessListener());//流程结束监听发送邮件
         //采用key来启动流程定义并设置流程变量,返回流程实例
         ProcessInstance pi = runtimeService.startProcessInstanceByKey("reserveInvoice", String.valueOf(bussniseeKey), variables);
         logger.info("流程部署id:" + pi.getDeploymentId());
@@ -211,12 +211,12 @@ public class TApproveReserveInvoiceController extends BaseController {
         Map<String, Object> param = new HashMap<>();
 
         TInvoiceBookingworkticket invoiceBook = workService.getById(invoice.getInvoiceId());
-        if (devTask.getCondition().equals("1") && task.getName().equals("装置经理签字确认")) {
-            invoiceBook.setStatus(3L);
-        } else if (devTask.getCondition().equals("0")) {
-            invoiceBook.setStatus(5L);
-        }
-        workService.updateById(invoiceBook);
+//        if (devTask.getCondition().equals("1") && task.getName().equals("装置经理签字确认")) {
+//            invoiceBook.setStatus(3L);
+//        } else if (devTask.getCondition().equals("0")) {
+//            invoiceBook.setStatus(5L);
+//        }
+//        workService.updateById(invoiceBook);
         if (DateUtils.dateTime(invoiceBook.getCreatedate()).equals(DateUtils.dateTime(invoiceBook.getWorkStartTime()))) {
             param.put("istoday", "1");
         } else {
@@ -224,7 +224,7 @@ public class TApproveReserveInvoiceController extends BaseController {
         }
         List<TInvoiceWorkcontent> workcontents = invoiceWorkcontentMapper.selectTInvoiceWorkcontentBybookingticketId(Long.valueOf(invoice.getInvoiceId()));
         for (TInvoiceWorkcontent workcontent : workcontents) {
-            if (workcontent.getWorkType()==1||workcontent.getWorkType()==2||workcontent.getWorkType()==3||workcontent.getWorkType()==15) {
+            if (workcontent.getWorkType() == 1 || workcontent.getWorkType() == 2 || workcontent.getWorkType() == 3 || workcontent.getWorkType() == 15) {
                 param.put("isspecial", "1");
                 break;
             } else {

+ 3 - 6
master/src/main/java/com/ruoyi/project/invoice/service/impl/TInvoiceBookingworkticketServiceImpl.java

@@ -2,15 +2,12 @@ package com.ruoyi.project.invoice.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
+import com.ruoyi.project.invoice.domain.TInvoiceBookingworkticket;
 import com.ruoyi.project.invoice.domain.TInvoiceContractor;
 import com.ruoyi.project.invoice.domain.TInvoiceWorkcontent;
+import com.ruoyi.project.invoice.mapper.TInvoiceBookingworkticketMapper;
 import com.ruoyi.project.invoice.mapper.TInvoiceContractorMapper;
 import com.ruoyi.project.invoice.mapper.TInvoiceWorkcontentMapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.ruoyi.project.invoice.mapper.TInvoiceBookingworkticketMapper;
-import com.ruoyi.project.invoice.domain.TInvoiceBookingworkticket;
-import com.ruoyi.project.invoice.mapper.TInvoiceBookingworkticketMapper;
 import com.ruoyi.project.invoice.service.ITInvoiceBookingworkticketService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -23,7 +20,7 @@ import java.util.List;
  * @author ruoyi
  * @date 2022-08-25
  */
-@Service
+@Service("tInvoiceBookingworkticketService")
 public class TInvoiceBookingworkticketServiceImpl extends ServiceImpl<TInvoiceBookingworkticketMapper, TInvoiceBookingworkticket>  implements ITInvoiceBookingworkticketService
 {
     @Autowired

+ 5 - 0
master/src/main/java/com/ruoyi/project/listener/invoiceApprove/InvoiceEndSuccessListener.java

@@ -52,6 +52,11 @@ public class InvoiceEndSuccessListener implements Serializable, ExecutionListene
         ISysUserService sysUserService = (ISysUserService) SpringContextUtils.getBean("sysUserService");
         IMailService mailService = (IMailService) SpringContextUtils.getBean("mailService");
         TApproveReserveInvoice approveEntity = tApproveReserveInvoiceService.selectTApproveReserveInvoiceById(Long.parseLong(id)) ;
+
+        // 修改申请状态
+        TInvoiceBookingworkticket invoiceBook = tInvoiceBookingworkticketService.selectTInvoiceBookingworkticketById(Long.valueOf(approveEntity.getInvoiceId()));
+        invoiceBook.setStatus(3L);
+        tInvoiceBookingworkticketService.updateById(invoiceBook);
         //发送邮件
         try {
             String email = sysUserService.selectUserById(approveEntity.getUserId()).getEmail();

+ 10 - 3
master/src/main/java/com/ruoyi/project/listener/invoiceApprove/ZzzgTaskCreateListener.java

@@ -15,7 +15,9 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 @Service("zzzgTaskCreateListener")
 public class ZzzgTaskCreateListener implements Serializable, TaskListener {
@@ -32,12 +34,15 @@ public class ZzzgTaskCreateListener implements Serializable, TaskListener {
         logger.info("approveEntity:" + approveEntity);
         //发送邮件
         try {
-            String email = sysUserService.selectUserById(Long.parseLong(zzzgusers)).getEmail();
+            List<String> emails  = new ArrayList<>();
+            for (String zzzguser : zzzgusers.split(",")) {
+                emails.add(sysUserService.selectUserById(Long.parseLong(zzzguser)).getEmail());
+            }
             String apNo = approveEntity.getApNo();
             logger.info("apNo:" + apNo);
             String username = sysUserService.selectUserById(Long.parseLong(zzzgusers)).getNickName();
             String usernameEN = PinyinHelper.convertToPinyinString(username, " ", PinyinFormat.WITHOUT_TONE);
-            logger.info("email:" + email);
+            logger.info("email:" + JSON.toJSONString(emails));
             logger.info("username:" + username);
             //写html开始内容
             String start = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title></title></head><body><div style=\"background-color:#ECECEC; padding: 35px;\">" +
@@ -73,7 +78,9 @@ public class ZzzgTaskCreateListener implements Serializable, TaskListener {
             //拼接html
             String html = start + prime + end;
             logger.info("html:" + html);
-            mailService.sendHtmlMail(email, "预约开票:您有一个新的待办任务 Reserve Invoice:You have a new to-do task (" + apNo + ")", html);
+            for (String email : emails) {
+                mailService.sendHtmlMail(email, "预约开票:您有一个新的待办任务 Reserve Invoice:You have a new to-do task (" + apNo + ")", html);
+            }
         }catch (Exception e) {
             logger.error("邮件发送失败" + JSON.toJSONString(e));
         }

+ 27 - 6
master/src/main/resources/processes/reserveInvoice.bpmn

@@ -2,17 +2,37 @@
 <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
   <process id="reserveInvoice" name="预约开票审批流程" isExecutable="true">
     <startEvent id="start" name="开始" activiti:initiator="${applyUserId}"></startEvent>
-    <userTask id="yhzgtask" name="用户主管签字确认" activiti:assignee="#{yhzgusers}"></userTask>
-    <userTask id="zzzgtask" name="装置主管签字确认"  activiti:candidateUsers="#{zzzgusers}"></userTask>
+    <userTask id="yhzgtask" name="用户主管签字确认" activiti:assignee="#{yhzgusers}">
+      <extensionElements>
+        <activiti:taskListener event="create" delegateExpression="${yhzgTaskCreateListener}"></activiti:taskListener>
+      </extensionElements>
+    </userTask>
+    <userTask id="zzzgtask" name="装置主管签字确认"  activiti:candidateUsers="#{zzzgusers}">
+      <extensionElements>
+        <activiti:taskListener event="create" delegateExpression="${zzzgTaskCreateListener}"></activiti:taskListener>
+      </extensionElements>
+    </userTask>
     <sequenceFlow id="flow2" name="通过" sourceRef="yhzgtask" targetRef="zzzgtask">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
     </sequenceFlow>
-    <userTask id="zzgcstask" name="装置工程师签字确认" activiti:assignee="#{zzgcsusers}"></userTask>
-    <userTask id="zzjltask" name="装置经理签字确认" activiti:assignee="#{zzjlusers}"></userTask>
+    <userTask id="zzgcstask" name="装置工程师签字确认" activiti:assignee="#{zzgcsusers}">
+      <extensionElements>
+        <activiti:taskListener event="create" delegateExpression="${zzgcsTaskCreateListener}"></activiti:taskListener>
+      </extensionElements>
+    </userTask>
+    <userTask id="zzjltask" name="装置经理签字确认" activiti:assignee="#{zzjlusers}">
+      <extensionElements>
+        <activiti:taskListener event="create" delegateExpression="${zzjlTaskCreateListener}"></activiti:taskListener>
+      </extensionElements>
+    </userTask>
     <sequenceFlow id="flow11" name="通过" sourceRef="zzjltask" targetRef="end">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
     </sequenceFlow>
-    <endEvent id="end" name="结束"></endEvent>
+    <endEvent id="end" name="结束">
+      <extensionElements>
+        <activiti:executionListener event="start" delegateExpression="${invoiceEndSuccessListener}"></activiti:executionListener>
+      </extensionElements>
+    </endEvent>
     <sequenceFlow id="flow13" sourceRef="start" targetRef="yhzgtask"></sequenceFlow>
     <exclusiveGateway id="istoday" name="作业开始时间是否为预约当天"></exclusiveGateway>
     <sequenceFlow id="flow18" name="通过" sourceRef="zzzgtask" targetRef="istoday">
@@ -34,7 +54,8 @@
     <sequenceFlow id="flow23" name="通过" sourceRef="zzgcstask" targetRef="isspecial">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
     </sequenceFlow>
-    <endEvent id="end1" name="结束"></endEvent>
+    <endEvent id="end1" name="结束">
+    </endEvent>
     <sequenceFlow id="flow24" name="不通过" sourceRef="yhzgtask" targetRef="end1">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
     </sequenceFlow>