Kaynağa Gözat

2022-09-1 添加审批通过或拒绝,需要给申请人发送消息

zhuchangxue 3 yıl önce
ebeveyn
işleme
44fc933340

+ 6 - 4
zd-api/zd-api-system/src/main/java/com/zd/system/api/factory/RemoteLaboratoryFallbackFactory.java

@@ -7,10 +7,7 @@ import com.zd.common.core.web.domain.AjaxResult;
 import com.zd.common.core.web.page.TableDataInfo;
 import com.zd.system.api.domain.Algorithm;
 import com.zd.system.api.laboratory.RemoteLaboratoryService;
-import com.zd.system.api.laboratory.domain.LabGradeManageRecord;
-import com.zd.system.api.laboratory.domain.LabSubjectVO;
-import com.zd.system.api.laboratory.domain.RemoteLabHardware;
-import com.zd.system.api.laboratory.domain.TotalByID;
+import com.zd.system.api.laboratory.domain.*;
 import com.zd.system.api.laboratory.domain.vo.LabGradeManageWorkVO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -206,6 +203,11 @@ public class RemoteLaboratoryFallbackFactory implements FallbackFactory<RemoteLa
                 return AjaxResult.error("清理消息失败:" + cause.getMessage());
             }
 
+            @Override
+            public AjaxResult publishMess(LabMessageContent labMessageContent) {
+                return AjaxResult.error("发送消息失败:" + cause.getMessage());
+            }
+
             /**
              * 查询实验室控制数据列表- 仅负责人权限(小程序使用)
              *

+ 8 - 4
zd-api/zd-api-system/src/main/java/com/zd/system/api/laboratory/RemoteLaboratoryService.java

@@ -7,10 +7,7 @@ import com.zd.common.core.web.domain.AjaxResult;
 import com.zd.common.core.web.page.TableDataInfo;
 import com.zd.system.api.domain.Algorithm;
 import com.zd.system.api.factory.RemoteLaboratoryFallbackFactory;
-import com.zd.system.api.laboratory.domain.LabGradeManageRecord;
-import com.zd.system.api.laboratory.domain.LabSubjectVO;
-import com.zd.system.api.laboratory.domain.RemoteLabHardware;
-import com.zd.system.api.laboratory.domain.TotalByID;
+import com.zd.system.api.laboratory.domain.*;
 import com.zd.system.api.laboratory.domain.vo.LabGradeManageWorkVO;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -231,6 +228,13 @@ public interface RemoteLaboratoryService {
     public AjaxResult outTimeClearMessage();
 
 
+    /**
+     * 新增消息发布
+     */
+    @PostMapping("/content")
+    public AjaxResult publishMess(@RequestBody LabMessageContent labMessageContent);
+
+
     @ApiOperation(value = "查询安全预警列表 (管理端)")
     @GetMapping("/plan/log/app/subBySensorList")
     public TableDataInfo getSafeWarnList(Map riskPlanAbnormalLog);

+ 25 - 2
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/ActApplytaskServiceImpl.java

@@ -22,6 +22,8 @@ import com.zd.common.core.utils.SecurityUtils;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.common.security.utils.SaveUtil;
 
+import com.zd.system.api.laboratory.RemoteLaboratoryService;
+import com.zd.system.api.laboratory.domain.LabMessageContent;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -50,6 +52,9 @@ public class ActApplytaskServiceImpl implements IActApplytaskService
     @Autowired
     private ActHxpapplyDetailMapper actHxpapplyDetailMapper;
 
+    @Autowired
+    private RemoteLaboratoryService remoteLaboratoryService;
+
     /**
      * 查询化学品申购任务
      *
@@ -192,13 +197,13 @@ public class ActApplytaskServiceImpl implements IActApplytaskService
                     }
                 });
         //todo 调用回填步数的方法
-        int flag = proStep(applytask);
+        int flag = proStep(applytask,actHxpapplyInfoVo.getUserId());
         selectionChemical(actApplytaskVo);
         return flag;
     }
 
     //todo 这里做了执行task回填步数
-    private int proStep(ActApplytask actApplytask){
+    private int proStep(ActApplytask actApplytask,Long userId){
         ActApplytaskNode actApplytaskNode = new ActApplytaskNode();
         actApplytaskNode.setNodeStatus(0);
         actApplytaskNode.setApplytaskId(actApplytask.getId());
@@ -214,6 +219,8 @@ public class ActApplytaskServiceImpl implements IActApplytaskService
         if(actApplytaskNodes.size()==0){
             actApplytask.setOverTime(new Date());
             actApplytask.setApprovalStatus(1);
+            //发送审批通过的消息
+            sendMess(userId+"","你的采购申请审批已通过,请尽快存放入库。");
         }
         return actApplytaskMapper.updateActApplytask(actApplytask);
     }
@@ -274,11 +281,27 @@ public class ActApplytaskServiceImpl implements IActApplytaskService
         //todo 这里修改主流程的审批状态变为拒绝
         applytask.setApprovalStatus(2);
         applytask.setOverTime(new Date());
+        //查询审批单的创建人
+        ActHxpapplyInfoVo actHxpapplyInfoVo = actHxpapplyMapper.selectActHxpapplyById(actApplytask.getTaskId());
+        //发送审批拒绝的消息
+        sendMess(actHxpapplyInfoVo.getUserId()+"","你的采购申请审批未通过,可登录系统查看详情。");
         int flag = actApplytaskMapper.updateActApplytask(applytask);
         return flag;
     }
 
 
+    private void sendMess(String userId,String messContent){
+        LabMessageContent labMessageContent = new LabMessageContent();
+        labMessageContent.setSendRange(3);
+        labMessageContent.setMessClass(1);
+        labMessageContent.setContent(messContent);
+        labMessageContent.setUserIds(userId);
+        labMessageContent.setUserId(-2L);
+        labMessageContent.setCreateTime(new Date());
+        labMessageContent.setCreateBy("系统");
+        remoteLaboratoryService.publishMess(labMessageContent);
+    }
+
 
     @Override
     public int approvalRevoke(ActApplytask actApplytask) {

+ 18 - 4
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/ActHxpapplyServiceImpl.java

@@ -23,6 +23,8 @@ import com.zd.common.core.utils.StringUtils;
 import com.zd.common.datascope.annotation.DataScope;
 import com.zd.common.security.utils.SaveUtil;
 
+import com.zd.system.api.laboratory.RemoteLaboratoryService;
+import com.zd.system.api.laboratory.domain.LabMessageContent;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -60,7 +62,7 @@ public class ActHxpapplyServiceImpl implements IActHxpapplyService
     private ActAudituserMapper actAudituserMapper;
 
     @Autowired
-    private IActHxpapplyService iActHxpapplyService;
+    private RemoteLaboratoryService remoteLaboratoryService;
 
     /**
      * 查询化学品申购
@@ -343,7 +345,7 @@ public class ActHxpapplyServiceImpl implements IActHxpapplyService
         //这里做一个跳过审核的map,暂时这么写吧,没有想到更好的办法了,啊啊啊啊,头疼(1表示第一次申请人就是审批人的需要跳过,2表示需要结束跳过)
         Map<String,Long> jumpApply = new HashMap<>();
         jumpApply.put("jumpApply",1L);
-        Predicate<List <ActAudituser>> pre = x->Optional.ofNullable(x).orElseGet(Collections::emptyList).stream().filter(y->y.getAuditUserId()==createUserId).count()>0;
+        Predicate<List <ActAudituser>> pre = x->Optional.ofNullable(x).orElseGet(Collections::emptyList).stream().filter(y->y.getAuditUserId().longValue()==createUserId.longValue()).count()>0;
         Optional.ofNullable(actAuditconfigList).orElseGet(Collections::emptyList)
                 .stream()
                 .map(a->{
@@ -399,11 +401,11 @@ public class ActHxpapplyServiceImpl implements IActHxpapplyService
                     }
                 });
         //调用回填步数的方法
-        proStep(stepMap,actApplytask);
+        proStep(stepMap,actApplytask,createUserId);
     }
 
     //todo 这里做了执行task回填步数
-    private void proStep(Map<String,Long> stepMap,ActApplytask actApplytask){
+    private void proStep(Map<String,Long> stepMap,ActApplytask actApplytask,Long createUserId){
         actApplytask.setNowStep(stepMap.get("nowStep"));
         actApplytask.setNextStep(stepMap.get("nextStep"));
         ActApplytaskNode actApplytaskNode = new ActApplytaskNode();
@@ -421,6 +423,16 @@ public class ActHxpapplyServiceImpl implements IActHxpapplyService
         if(actApplytaskNodes.size()==0){
             actApplytask.setOverTime(new Date());
             actApplytask.setApprovalStatus(1);
+            //发送审批通过的消息
+            LabMessageContent labMessageContent = new LabMessageContent();
+            labMessageContent.setSendRange(3);
+            labMessageContent.setMessClass(1);
+            labMessageContent.setContent("你的采购申请审批已通过,请尽快存放入库。");
+            labMessageContent.setUserIds(createUserId+"");
+            labMessageContent.setUserId(-2L);
+            labMessageContent.setCreateTime(new Date());
+            labMessageContent.setCreateBy("系统");
+            remoteLaboratoryService.publishMess(labMessageContent);
         }
         actApplytaskMapper.updateActApplytask(actApplytask);
     }
@@ -430,6 +442,7 @@ public class ActHxpapplyServiceImpl implements IActHxpapplyService
         if(pre.test(actAuditusers) && jumpApply.get("jumpApply")==1){
             actApplytaskNode.setNodeStatus(1);
             actApplytaskNode.setApplyUserid(SecurityUtils.getUserId());
+            actApplytaskNode.setUpdateTime(new Date());
             jumpApply.put("jumpApply",1L);
         }else{
             jumpApply.put("jumpApply",2L);
@@ -441,6 +454,7 @@ public class ActHxpapplyServiceImpl implements IActHxpapplyService
         if(createUserId == auditUserId && jumpApply.get("jumpApply")==1){
             actApplytaskNode.setNodeStatus(1);
             actApplytaskNode.setApplyUserid(SecurityUtils.getUserId());
+            actApplytaskNode.setUpdateTime(new Date());
             jumpApply.put("jumpApply",1L);
         }else{
             jumpApply.put("jumpApply",2L);

+ 2 - 0
zd-modules/zd-chemical/src/main/resources/mapper/chemical/ActApplytaskNodeMapper.xml

@@ -87,6 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <if test="applyUserid != null">apply_userid,</if>
 
+    <if test="updateTime != null">update_time,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
     <if test="nodeName != null">#{nodeName},</if>
@@ -97,6 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <if test="nodeContent != null">#{nodeContent},</if>
     <if test="nodeOrder != null">#{nodeOrder},</if>
     <if test="applyUserid != null">#{applyUserid},</if>
+    <if test="updateTime != null">#{updateTime},</if>
          </trim>
     </insert>