Эх сурвалжийг харах

Merge remote-tracking branch 'origin/demo_' into demo_

1 жил өмнө
parent
commit
edae58fda7

+ 6 - 0
platform-common/src/main/java/com/platform/common/constant/CommonConstants.java

@@ -336,4 +336,10 @@ public interface CommonConstants {
     // 打印类型
     // 打印类型
     String REPAIR_TICKET_PRINT = "1"; //票证维修打印
     String REPAIR_TICKET_PRINT = "1"; //票证维修打印
     String OUT_STORE_PRINT = "2";  // 出库单打印
     String OUT_STORE_PRINT = "2";  // 出库单打印
+
+    // 筹建工单状态
+    int PREPARATION_NOT_ALLOCATED = 1; // 主管审批中
+    int APPLY_MANAGER_VERIFY_SUCCESS = 2;// 负责人审批中
+    int FIRST_PROCESSING_VERIFYING = 11;// 申请人费用审批中
+    int SECOND_PROCESSING_VERIFYING = 15; // 验收审批中
 }
 }

+ 31 - 0
platform-dao/src/main/java/com/platform/dao/dto/preparation/PreparationDTO.java

@@ -199,4 +199,35 @@ public class PreparationDTO extends BaseDTO implements Serializable {
      */
      */
     private String applyVerifyUserId;
     private String applyVerifyUserId;
 
 
+    /**
+     * 申请原因
+     */
+    private String applyReason;
+
+    /**
+     * 收件部门
+     */
+    private String receiveDept;
+
+    private String name; // 任务名称
+
+    /**
+     * 申请部门负责人
+     */
+    private String applyVerifyLeader;
+    /**
+     * 收件部门负责人
+     */
+    private String receiveVerifyLeader;
+
+    /**
+     * 审核状态 1 通过  2 拒绝  3 回退
+     */
+    private Integer verifyStatus;
+
+    /**
+     * 审核备注
+     */
+    private String verifyRemark;
+
 }
 }

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/entity/preparation/Preparation.java

@@ -166,4 +166,5 @@ public class Preparation implements Serializable{
      */
      */
     private String receiveVerifyLeader;
     private String receiveVerifyLeader;
 
 
+
 }
 }

+ 25 - 0
platform-dao/src/main/java/com/platform/dao/enums/PreparationRecordTypeEnum.java

@@ -0,0 +1,25 @@
+package com.platform.dao.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Description 记录类型 1 状态流程日志  2 审批记录
+ * @Author liuyu
+ * @Date 2020/05/05
+ * @Version Copyright (c) 2020,合肥乾元坤合科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum PreparationRecordTypeEnum {
+    /**
+     * 状态流程日志
+     */
+    FLOW(1),
+    /**
+     * 审批记录
+     */
+    VERIFY(2),
+    ;
+    private final Integer value;
+}

+ 5 - 1
platform-dao/src/main/java/com/platform/dao/enums/PreparationStatusEnum.java

@@ -41,7 +41,7 @@ public enum PreparationStatusEnum {
      */
      */
     APPLY_LEADER_VERIFY_BACK(7),
     APPLY_LEADER_VERIFY_BACK(7),
     /**
     /**
-     * 收件负责人派单--材料费用执行
+     * 收件负责人已派单--材料费用处理
      */
      */
     PROCESSING(8),
     PROCESSING(8),
     /**
     /**
@@ -80,6 +80,10 @@ public enum PreparationStatusEnum {
      * 验收回退
      * 验收回退
      */
      */
     SECOND_PROCESSING_BACK(17),
     SECOND_PROCESSING_BACK(17),
+    /**
+     * 审核拒绝--工单关闭
+     */
+    CLOSE(18),
     ;
     ;
     private final Integer value;
     private final Integer value;
 }
 }

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/enums/SysRoleCodeEnum.java

@@ -195,6 +195,10 @@ public enum SysRoleCodeEnum {
      * 部门主管
      * 部门主管
      */
      */
     DEPT_MANAGER,
     DEPT_MANAGER,
+    /**
+     * 部门负责人
+     */
+    DEPT_LEADER,
     ;
     ;
 
 
 }
 }

+ 1 - 1
platform-dao/src/main/java/com/platform/dao/enums/WorkplaceBacklogDetailTypeEnum.java

@@ -33,7 +33,7 @@ public enum WorkplaceBacklogDetailTypeEnum {
     REPAIR_RECEIVE(23, "维修接收通知"),
     REPAIR_RECEIVE(23, "维修接收通知"),
     SB_CALLER_REPAIR(28, "设备部报修审核"),
     SB_CALLER_REPAIR(28, "设备部报修审核"),
     SB_APPLY_BIG_REPAIR(30, "报修转大修审核"),
     SB_APPLY_BIG_REPAIR(30, "报修转大修审核"),
-    PREPARATION_REPAIR(31, "筹建报修"),
+    PREPARATION_REPAIR(41, "筹建申请"),
     PREPARATION_REPAIR_DISPATCH(32, "筹建报修派工通知"),
     PREPARATION_REPAIR_DISPATCH(32, "筹建报修派工通知"),
     OUT_STORE_NOTICE(33, "出库审批"),
     OUT_STORE_NOTICE(33, "出库审批"),
     REPAIR_EXAMINE(24, "维修审核通知"),
     REPAIR_EXAMINE(24, "维修审核通知"),

+ 22 - 0
platform-dao/src/main/java/com/platform/dao/util/MessageTemplateUtil.java

@@ -4,12 +4,14 @@ import com.platform.common.exception.BusinessException;
 import com.platform.common.util.StringUtils;
 import com.platform.common.util.StringUtils;
 import com.platform.dao.dto.repair.RepairApplicationFormDTO;
 import com.platform.dao.dto.repair.RepairApplicationFormDTO;
 import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sb.SbInfo;
+import com.platform.dao.enums.PreparationStatusEnum;
 import com.platform.dao.vo.sb.SbInfoVO;
 import com.platform.dao.vo.sb.SbInfoVO;
 import freemarker.template.Configuration;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
 import freemarker.template.Template;
 import freemarker.template.TemplateException;
 import freemarker.template.TemplateException;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.app.VelocityEngine;
+import org.springframework.security.core.parameters.P;
 
 
 import java.io.IOException;
 import java.io.IOException;
 import java.io.StringWriter;
 import java.io.StringWriter;
@@ -437,6 +439,26 @@ public class MessageTemplateUtil {
         return String.format("有一条新的派工任务【%s】待处理,请处理", no);
         return String.format("有一条新的派工任务【%s】待处理,请处理", no);
     }
     }
 
 
+    public static String getInfoByStatus(String no,int status) {
+        if(status == PreparationStatusEnum.APPLY_MANAGER_VERIFY_SUCCESS.getValue()
+                || status == PreparationStatusEnum.APPLY_LEADER_VERIFY_SUCCESS.getValue()
+                || status == PreparationStatusEnum.PROCESSING.getValue()
+        || status == PreparationStatusEnum.FIRST_PROCESSING_VERIFYING.getValue()
+        || status == PreparationStatusEnum.SECOND_PROCESSING.getValue()
+        || status == PreparationStatusEnum.SECOND_PROCESSING_VERIFYING.getValue()){
+            return String.format("有一条新的筹建工单【%s】待处理,请及时处理", no);
+        }else if(status == PreparationStatusEnum.CLOSE.getValue()) {
+            return String.format("筹建工单【%s】被拒绝,请知悉", no);
+        }else if(status == PreparationStatusEnum.APPLY_MANAGER_VERIFY_BACK.getValue()
+        || status == PreparationStatusEnum.APPLY_LEADER_VERIFY_BACK.getValue()
+        || status == PreparationStatusEnum.RECEIVE_VERIFY_BACK.getValue()
+        || status == PreparationStatusEnum.FIRST_PROCESSING_VERIFY_BACK.getValue()
+        || status == PreparationStatusEnum.SECOND_PROCESSING_BACK.getValue()) {
+            return String.format("筹建工单【%s】被退回,请及时处理", no);
+        }
+        return null;
+    }
+
 
 
     /**
     /**
      * 调拨审批通知内容
      * 调拨审批通知内容

+ 21 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/preparation/PreparationVO.java

@@ -161,4 +161,25 @@ public class PreparationVO extends BaseVO implements Serializable {
 
 
     private String executeMangers;
     private String executeMangers;
 
 
+    /**
+     * 申请原因
+     */
+    private String applyReason;
+
+    /**
+     * 收件部门
+     */
+    private String receiveDept;
+
+    private String name; // 任务名称
+
+    /**
+     * 申请部门负责人
+     */
+    private String applyVerifyLeader;
+    /**
+     * 收件部门负责人
+     */
+    private String receiveVerifyLeader;
+
 }
 }

+ 8 - 1
platform-service/src/main/java/com/platform/service/preparation/PreparationService.java

@@ -52,7 +52,7 @@ public interface PreparationService extends IBaseService<Preparation, Preparatio
     Preparation saveByDTO(PreparationDTO model);
     Preparation saveByDTO(PreparationDTO model);
 
 
     /**
     /**
-     * 主管派工
+     * 收件部门审核派单
      *
      *
      * @param model
      * @param model
      */
      */
@@ -75,4 +75,11 @@ public interface PreparationService extends IBaseService<Preparation, Preparatio
      * @return
      * @return
      */
      */
     AbstractPageResultBean<PreparationVO> selectWechatPageList(PreparationDTO record, int pageNum, int pageSize);
     AbstractPageResultBean<PreparationVO> selectWechatPageList(PreparationDTO record, int pageNum, int pageSize);
+
+    /**
+     * 审核处理
+     * 通过-回退-拒绝
+     * @param model
+     */
+    void handleVerify(PreparationDTO model);
 }
 }

+ 235 - 94
platform-service/src/main/java/com/platform/service/preparation/impl/PreparationServiceImpl.java

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.cache.ConfigCache;
 import com.platform.common.cache.ConfigCache;
 import com.platform.common.cache.DictCache;
 import com.platform.common.cache.DictCache;
+import com.platform.common.constant.CommonConstants;
 import com.platform.common.exception.DeniedException;
 import com.platform.common.exception.DeniedException;
 import com.platform.common.model.UserInfo;
 import com.platform.common.model.UserInfo;
 import com.platform.common.util.*;
 import com.platform.common.util.*;
@@ -80,17 +81,17 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
         List<PreparationVO> list = mapper.selectList(dto);
         List<PreparationVO> list = mapper.selectList(dto);
         List<String> positionIds = list.stream().map(PreparationVO::getPositionId).distinct().collect(Collectors.toList());
         List<String> positionIds = list.stream().map(PreparationVO::getPositionId).distinct().collect(Collectors.toList());
         List<ExportPreparationNumVO> exportPreparationNumVOS = new ArrayList<>();
         List<ExportPreparationNumVO> exportPreparationNumVOS = new ArrayList<>();
-        if (positionIds!=null){
-            for (String id:positionIds){
+        if (positionIds != null) {
+            for (String id : positionIds) {
                 ExportPreparationNumVO preparationNumVO = new ExportPreparationNumVO();
                 ExportPreparationNumVO preparationNumVO = new ExportPreparationNumVO();
                 Integer preparationNum = 0;
                 Integer preparationNum = 0;
                 BigDecimal totalFee = new BigDecimal(0);
                 BigDecimal totalFee = new BigDecimal(0);
                 String positionName = null;
                 String positionName = null;
                 List<PreparationVO> detailList = new ArrayList<>();
                 List<PreparationVO> detailList = new ArrayList<>();
-                for (PreparationVO vo:list){
-                    if (id.equals(vo.getPositionId())){
+                for (PreparationVO vo : list) {
+                    if (id.equals(vo.getPositionId())) {
                         preparationNum++;
                         preparationNum++;
-                        totalFee=totalFee.add(vo.getFee());
+                        totalFee = totalFee.add(vo.getFee());
                         positionName = vo.getPositionName();
                         positionName = vo.getPositionName();
                         detailList.add(vo);
                         detailList.add(vo);
                     }
                     }
@@ -150,28 +151,28 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
         List<PreparationVO> allocationedList = new ArrayList<>();
         List<PreparationVO> allocationedList = new ArrayList<>();
         List<PreparationVO> complatedList = new ArrayList<>();
         List<PreparationVO> complatedList = new ArrayList<>();
         List<PreparationVO> revokedList = new ArrayList<>();
         List<PreparationVO> revokedList = new ArrayList<>();
-        for (PreparationVO vo:list){
-            if (DictCache.getValueByCode("REPAIR_PREPARATION_STATUS","draft").equals(vo.getStatus())){
+        for (PreparationVO vo : list) {
+            if (DictCache.getValueByCode("REPAIR_PREPARATION_STATUS", "draft").equals(vo.getStatus())) {
                 draft.setStatusName("草稿");
                 draft.setStatusName("草稿");
                 draftList.add(vo);
                 draftList.add(vo);
                 draft.setStatus(0);
                 draft.setStatus(0);
                 draftNum++;
                 draftNum++;
-            }else if (DictCache.getValueByCode("REPAIR_PREPARATION_STATUS","waiting_allocation").equals(vo.getStatus())){
+            } else if (DictCache.getValueByCode("REPAIR_PREPARATION_STATUS", "waiting_allocation").equals(vo.getStatus())) {
                 waiting.setStatusName("待分配");
                 waiting.setStatusName("待分配");
                 waitingList.add(vo);
                 waitingList.add(vo);
                 waiting.setStatus(1);
                 waiting.setStatus(1);
                 waiting_allocationNum++;
                 waiting_allocationNum++;
-            }else if (DictCache.getValueByCode("REPAIR_PREPARATION_STATUS","allocationed").equals(vo.getStatus())){
+            } else if (DictCache.getValueByCode("REPAIR_PREPARATION_STATUS", "allocationed").equals(vo.getStatus())) {
                 allocationed.setStatusName("已分配");
                 allocationed.setStatusName("已分配");
                 allocationedList.add(vo);
                 allocationedList.add(vo);
                 allocationed.setStatus(2);
                 allocationed.setStatus(2);
                 allocationedNum++;
                 allocationedNum++;
-            }else if (DictCache.getValueByCode("REPAIR_PREPARATION_STATUS","complated").equals(vo.getStatus())){
+            } else if (DictCache.getValueByCode("REPAIR_PREPARATION_STATUS", "complated").equals(vo.getStatus())) {
                 complated.setStatusName("已完成");
                 complated.setStatusName("已完成");
                 complatedList.add(vo);
                 complatedList.add(vo);
                 complated.setStatus(3);
                 complated.setStatus(3);
                 complatedNum++;
                 complatedNum++;
-            }else if (DictCache.getValueByCode("REPAIR_PREPARATION_STATUS","revoked").equals(vo.getStatus())){
+            } else if (DictCache.getValueByCode("REPAIR_PREPARATION_STATUS", "revoked").equals(vo.getStatus())) {
                 revoked.setStatusName("已撤销");
                 revoked.setStatusName("已撤销");
                 revokedList.add(vo);
                 revokedList.add(vo);
                 revoked.setStatus(4);
                 revoked.setStatus(4);
@@ -180,27 +181,27 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
 
 
         }
         }
         List<PreparationReportByStatusVO> list1 = new ArrayList<>();
         List<PreparationReportByStatusVO> list1 = new ArrayList<>();
-        if (draftNum!=0){
+        if (draftNum != 0) {
             draft.setNum(draftNum);
             draft.setNum(draftNum);
             draft.setDetailList(draftList);
             draft.setDetailList(draftList);
             list1.add(draft);
             list1.add(draft);
         }
         }
-        if (waiting_allocationNum!=0){
+        if (waiting_allocationNum != 0) {
             waiting.setNum(waiting_allocationNum);
             waiting.setNum(waiting_allocationNum);
             waiting.setDetailList(waitingList);
             waiting.setDetailList(waitingList);
             list1.add(waiting);
             list1.add(waiting);
         }
         }
-        if (allocationedNum!=0) {
+        if (allocationedNum != 0) {
             allocationed.setNum(allocationedNum);
             allocationed.setNum(allocationedNum);
             allocationed.setDetailList(allocationedList);
             allocationed.setDetailList(allocationedList);
             list1.add(allocationed);
             list1.add(allocationed);
         }
         }
-        if (complatedNum!=0){
+        if (complatedNum != 0) {
             complated.setNum(complatedNum);
             complated.setNum(complatedNum);
             complated.setDetailList(complatedList);
             complated.setDetailList(complatedList);
             list1.add(complated);
             list1.add(complated);
         }
         }
-        if (revokedNum!=0){
+        if (revokedNum != 0) {
             revoked.setNum(revokedNum);
             revoked.setNum(revokedNum);
             revoked.setDetailList(revokedList);
             revoked.setDetailList(revokedList);
             list1.add(revoked);
             list1.add(revoked);
@@ -272,20 +273,20 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
         PageHelper.startPage(pageNum, pageSize);
         PageHelper.startPage(pageNum, pageSize);
         UserInfo userInfo = SecurityUtils.getUserInfo();
         UserInfo userInfo = SecurityUtils.getUserInfo();
         record.setTempUserId(userInfo.getUserId());
         record.setTempUserId(userInfo.getUserId());
-        if(record.getSearchType() != null && record.getStatus() == null){
+        if (record.getSearchType() != null && record.getStatus() == null) {
             List<Integer> statusList = new ArrayList<>();
             List<Integer> statusList = new ArrayList<>();
-            if(record.getSearchType() == 1){ // 待派工单
+            if (record.getSearchType() == 1) { // 待派工单
                 statusList.add(PreparationStatusEnum.APPLY_LEADER_VERIFY_SUCCESS.getValue());
                 statusList.add(PreparationStatusEnum.APPLY_LEADER_VERIFY_SUCCESS.getValue());
                 record.setTempUserId(null);
                 record.setTempUserId(null);
-            }else if(record.getSearchType() == 2){ // 待审核工单
+            } else if (record.getSearchType() == 2) { // 待审核工单
                 statusList.add(PreparationStatusEnum.NOT_ALLOCATED.getValue());
                 statusList.add(PreparationStatusEnum.NOT_ALLOCATED.getValue());
-            }else if(record.getSearchType() == 3){ // 我的工单
+            } else if (record.getSearchType() == 3) { // 我的工单
                 statusList.add(PreparationStatusEnum.NOT_ALLOCATED.getValue());
                 statusList.add(PreparationStatusEnum.NOT_ALLOCATED.getValue());
                 statusList.add(PreparationStatusEnum.PROCESSING.getValue());
                 statusList.add(PreparationStatusEnum.PROCESSING.getValue());
                 statusList.add(PreparationStatusEnum.FINISHED.getValue());
                 statusList.add(PreparationStatusEnum.FINISHED.getValue());
             }
             }
             // 超级管理员可以看到各个状态下的所有数据 相关领导,可以在这里进行设置
             // 超级管理员可以看到各个状态下的所有数据 相关领导,可以在这里进行设置
-            if(userInfo.getSuperAdmin() == 1 || record.getSearchType() == -1){
+            if (userInfo.getSuperAdmin() == 1 || record.getSearchType() == -1) {
                 record.setTempUserId(null);
                 record.setTempUserId(null);
             }
             }
             record.setStatusList(statusList);
             record.setStatusList(statusList);
@@ -295,45 +296,50 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
 
 
     @Override
     @Override
     public Preparation saveByDTO(PreparationDTO model) {
     public Preparation saveByDTO(PreparationDTO model) {
-        if(StringUtils.isEmpty(model.getExecuteDept())){
-            throw new DeniedException("执行部门不能为空");
-        }
-        // 获取筹建主管角色,当一人时,直接赋值,多人时,接单派单
+        // 获取申请人部门
+        String userId = SecurityUtils.getUserInfo().getUserId();
+        String applyDept = sysUserDeptMapper.selectDeptIdByUserId(userId);
+        model.setDepartId(applyDept);
+        // 判断申请部门是否有负责人
         SysUserDTO queryUserDTO = new SysUserDTO();
         SysUserDTO queryUserDTO = new SysUserDTO();
-        queryUserDTO.setRoleCode(SysRoleCodeEnum.PREPARATION_MANAGER.name());
-        queryUserDTO.setDeptId(model.getExecuteDept());
+        queryUserDTO.setRoleCode(SysRoleCodeEnum.DEPT_LEADER.name());
+        queryUserDTO.setDeptId(model.getDepartId());
         List<SysUserVO> userVOS = sysUserMapper.selectDeptRoleUser(queryUserDTO);
         List<SysUserVO> userVOS = sysUserMapper.selectDeptRoleUser(queryUserDTO);
-        // 判断执行部门是否有人接单
-        if(userVOS == null || userVOS.size() == 0){
-            throw new DeniedException("报修失败,执行部门,尚无派单主管。");
+        if (userVOS == null || userVOS.size() != 1) {
+            throw new DeniedException("报修失败,申请部门,无审批负责人或存在多个");
         }
         }
-        if(userVOS.size() == 1){ // 当只有一个主管时,直接划归此人名下,多名主管时,让他们接单后派单
-            model.setDispatchUserId(userVOS.get(0).getUserId());
+        model.setApplyVerifyLeader(userVOS.get(0).getUserId());
+        // 判断收件部门是否有负责人
+        queryUserDTO.setRoleCode(SysRoleCodeEnum.DEPT_LEADER.name());
+        queryUserDTO.setDeptId(model.getReceiveDept());
+        userVOS = sysUserMapper.selectDeptRoleUser(queryUserDTO);
+        // 判断收件部门是否有负责人
+        if (userVOS == null || userVOS.size() != 1) {
+            throw new DeniedException("报修失败,收件部门,无负责人或存在多个");
         }
         }
-        // 获取申请人部门
-        String userId = SecurityUtils.getUserInfo().getUserId();
-        model.setDepartId(sysUserDeptMapper.selectDeptIdByUserId(userId));
+        model.setReceiveVerifyLeader(userVOS.get(0).getUserId());
         model.setUserId(userId);
         model.setUserId(userId);
         // 单据号
         // 单据号
         Weekend<Preparation> weekend = new Weekend<>(Preparation.class);
         Weekend<Preparation> weekend = new Weekend<>(Preparation.class);
         weekend.weekendCriteria().andIsNotNull(Preparation::getId);
         weekend.weekendCriteria().andIsNotNull(Preparation::getId);
         Integer count = mapper.selectCountByExample(weekend);
         Integer count = mapper.selectCountByExample(weekend);
         model.setNo(IdGeneratorUtils.getPreparationNo(++count));
         model.setNo(IdGeneratorUtils.getPreparationNo(++count));
-        model.setStatus(PreparationStatusEnum.NOT_ALLOCATED.getValue()); // 待审核
+        model.setStatus(PreparationStatusEnum.NOT_ALLOCATED.getValue()); // 待主管审核
         Preparation preparation = this.saveModelByDTO(model);
         Preparation preparation = this.saveModelByDTO(model);
         // 给申请部门主管发送信息,通知审核
         // 给申请部门主管发送信息,通知审核
         SysUser sendUser = sysUserMapper.selectByPrimaryKey(model.getApplyVerifyUserId());
         SysUser sendUser = sysUserMapper.selectByPrimaryKey(model.getApplyVerifyUserId());
-        sendMessageToApplyManger(sendUser,preparation);
+        sendMessageToApplyManger(sendUser, preparation);
         // 存储操作记录
         // 存储操作记录
-        addRecord(preparation);
+        addRecord(preparation, PreparationRecordTypeEnum.FLOW.getValue(), model.getRemark());
         return preparation;
         return preparation;
     }
     }
 
 
     /**
     /**
      * 添加操作记录
      * 添加操作记录
+     *
      * @param info
      * @param info
      */
      */
-    private void addRecord(Preparation info){
+    private void addRecord(Preparation info, Integer type, String remark) {
         PreparationRecord record = new PreparationRecord();
         PreparationRecord record = new PreparationRecord();
         record.setCreatedTime(LocalDateTime.now());
         record.setCreatedTime(LocalDateTime.now());
         record.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
         record.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
@@ -342,46 +348,66 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
         record.setStatus(info.getStatus());
         record.setStatus(info.getStatus());
         record.setPreparationId(info.getId());
         record.setPreparationId(info.getId());
         record.setId(IdGeneratorUtils.getObjectId());
         record.setId(IdGeneratorUtils.getObjectId());
+        record.setType(type);
+        record.setRemark(remark);
         preparationRecordMapper.insert(record);
         preparationRecordMapper.insert(record);
     }
     }
 
 
     @Override
     @Override
     public void dispatchPreparation(PreparationDTO model) {
     public void dispatchPreparation(PreparationDTO model) {
+        Preparation preparation = mapper.selectByPrimaryKey(model.getId());
         String roles = getRoles();
         String roles = getRoles();
-        if(!roles.contains(SysRoleCodeEnum.PREPARATION_MANAGER.name())){
-            throw new DeniedException("不具备派单权限");
-        }
-        if(StringUtils.isEmpty(model.getRepairUserId())){
-            throw new DeniedException("派单对象不能为空");
+        String currentUserId = SecurityUtils.getUserInfo().getUserId();
+        if (!roles.contains(SysRoleCodeEnum.DEPT_LEADER.name()) || !currentUserId.equals(preparation.getReceiveVerifyLeader())) {
+            throw new DeniedException("不具操作权限");
         }
         }
-        Preparation preparation = mapper.selectByPrimaryKey(model.getId());
         Preparation updPre = new Preparation();
         Preparation updPre = new Preparation();
         updPre.setId(model.getId());
         updPre.setId(model.getId());
-        updPre.setRepairStartTime(LocalDateTime.now());
-        updPre.setRepairUserId(model.getRepairUserId());
-        updPre.setDispatchUserId(SecurityUtils.getUserInfo().getUserId());
         updPre.setStatus(PreparationStatusEnum.PROCESSING.getValue());
         updPre.setStatus(PreparationStatusEnum.PROCESSING.getValue());
-        mapper.updateByPrimaryKeySelective(updPre);
-        model.setNo(preparation.getNo());
-        model.setContent(preparation.getContent());
-        model.setPositionId(preparation.getPositionId());
+        // 查询消息推送人
         SysUserDTO queryDTO = new SysUserDTO();
         SysUserDTO queryDTO = new SysUserDTO();
+        if (model.getVerifyStatus() == 1) { // 通过
+            if (StringUtils.isEmpty(model.getExecuteDept())) {
+                throw new DeniedException("执行部门不能为空");
+            }
+            if (StringUtils.isEmpty(model.getRepairUserId())) {
+                throw new DeniedException("执行人不能为空");
+            }
+            updPre.setStatus(PreparationStatusEnum.PROCESSING.getValue());
+            updPre.setRepairStartTime(LocalDateTime.now());
+            updPre.setRepairUserId(model.getRepairUserId());
+            updPre.setExecuteDept(model.getExecuteDept());
+            queryDTO.setUserId(preparation.getUserId());
+        } else if (model.getVerifyStatus() == 3) { // 回退
+            updPre.setStatus(PreparationStatusEnum.RECEIVE_VERIFY_BACK.getValue());
+            queryDTO.setUserId(preparation.getApplyVerifyLeader());
+        } else { // 拒绝
+            updPre.setStatus(PreparationStatusEnum.CLOSE.getValue());
+            queryDTO.setUserId(preparation.getApplyVerifyLeader());
+        }
+        mapper.updateByPrimaryKeySelective(updPre);
+        preparation.setStatus(updPre.getStatus());
+        // 添加状态记录
+        addRecord(preparation,PreparationRecordTypeEnum.FLOW.getValue(), "");
+        // 添加审批记录
+        addRecord(preparation,PreparationRecordTypeEnum.VERIFY.getValue(), model.getVerifyRemark());
         queryDTO.setUserId(model.getRepairUserId());
         queryDTO.setUserId(model.getRepairUserId());
         List<SysUserVO> userVOS = sysUserMapper.getSysUserVO(queryDTO);
         List<SysUserVO> userVOS = sysUserMapper.getSysUserVO(queryDTO);
         // 给具体处理人发送消息
         // 给具体处理人发送消息
-        sendMessageToRepairer(userVOS,model);
+        sendMessageToApplyLeader(userVOS, preparation);
     }
     }
 
 
     /**
     /**
      * 获取当前用户的角色集合
      * 获取当前用户的角色集合
+     *
      * @return
      * @return
      */
      */
-    private String getRoles(){
+    private String getRoles() {
         // 根据用户的角色来定
         // 根据用户的角色来定
         StringBuilder roleCodes = new StringBuilder();
         StringBuilder roleCodes = new StringBuilder();
 
 
         List<SysUserRoleVO> roles = sysUserRoleMapper.selectRoleListByUserId(SecurityUtils.getUserInfo().getUserId());
         List<SysUserRoleVO> roles = sysUserRoleMapper.selectRoleListByUserId(SecurityUtils.getUserInfo().getUserId());
-        roles.forEach(item->{
+        roles.forEach(item -> {
             roleCodes.append(item.getRoleCode()).append("&");
             roleCodes.append(item.getRoleCode()).append("&");
         });
         });
         return roleCodes.toString();
         return roleCodes.toString();
@@ -395,21 +421,21 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
         updPre.setRepairContent(model.getRepairContent());
         updPre.setRepairContent(model.getRepairContent());
         updPre.setRepairEndTime(LocalDateTime.now());
         updPre.setRepairEndTime(LocalDateTime.now());
         updPre.setRepairMinutes(DateUtils.getDurationHours(preparation.getRepairStartTime(), updPre.getRepairEndTime()));
         updPre.setRepairMinutes(DateUtils.getDurationHours(preparation.getRepairStartTime(), updPre.getRepairEndTime()));
-        updPre.setStatus(PreparationStatusEnum.FINISHED.getValue());
+        updPre.setStatus(PreparationStatusEnum.SECOND_PROCESSING_VERIFYING.getValue());
         updPre.setFee(model.getFee());
         updPre.setFee(model.getFee());
         // 保存文件图片
         // 保存文件图片
         sysFileService.saveFile(model.getId(), SysFileTypeEnum.PREPARATION_APPLICATION_IMGS.getValue(), model.getImageList());
         sysFileService.saveFile(model.getId(), SysFileTypeEnum.PREPARATION_APPLICATION_IMGS.getValue(), model.getImageList());
-        sysFileService.saveFile(model.getId(),SysFileTypeEnum.PREPARATION_APPLICATION_FILES.getValue(),model.getFileList());
+        sysFileService.saveFile(model.getId(), SysFileTypeEnum.PREPARATION_APPLICATION_FILES.getValue(), model.getFileList());
         mapper.updateByPrimaryKeySelective(updPre);
         mapper.updateByPrimaryKeySelective(updPre);
     }
     }
 
 
     @Override
     @Override
     public PreparationVO getVOById(String id) {
     public PreparationVO getVOById(String id) {
         Preparation preparation = mapper.selectByPrimaryKey(id);
         Preparation preparation = mapper.selectByPrimaryKey(id);
-        PreparationVO vo = BeanConverterUtil.copyObjectProperties(preparation,PreparationVO.class);
+        PreparationVO vo = BeanConverterUtil.copyObjectProperties(preparation, PreparationVO.class);
         vo.setCompanyName(sbPositionMapper.selectNameById(vo.getParentPositionId()));
         vo.setCompanyName(sbPositionMapper.selectNameById(vo.getParentPositionId()));
         vo.setPositionName(sbPositionMapper.selectNameById(vo.getPositionId()));
         vo.setPositionName(sbPositionMapper.selectNameById(vo.getPositionId()));
-        if(!StringUtils.isEmpty(vo.getRepairUserId())){
+        if (!StringUtils.isEmpty(vo.getRepairUserId())) {
             vo.setRepairUserName(sysUserMapper.selectUserNameById(vo.getRepairUserId()));
             vo.setRepairUserName(sysUserMapper.selectUserNameById(vo.getRepairUserId()));
         }
         }
         vo.setDeptName(sysDeptMapper.selectByPrimaryKey(vo.getDepartId()).getName());
         vo.setDeptName(sysDeptMapper.selectByPrimaryKey(vo.getDepartId()).getName());
@@ -428,28 +454,28 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
         vo.setImageList(imageList);
         vo.setImageList(imageList);
         vo.setFileList(fileList);
         vo.setFileList(fileList);
         // 审批主管
         // 审批主管
-        if(!StringUtils.isEmpty(vo.getApplyVerifyUserId())){
+        if (!StringUtils.isEmpty(vo.getApplyVerifyUserId())) {
             vo.setApplyVerifyUser(sysUserMapper.selectUserNameById(vo.getApplyVerifyUserId()));
             vo.setApplyVerifyUser(sysUserMapper.selectUserNameById(vo.getApplyVerifyUserId()));
         }
         }
         // 执行部门
         // 执行部门
-        if(!StringUtils.isEmpty(vo.getExecuteDept())){
+        if (!StringUtils.isEmpty(vo.getExecuteDept())) {
             vo.setExecuteDeptName(sysDeptMapper.selectByPrimaryKey(vo.getExecuteDept()).getName());
             vo.setExecuteDeptName(sysDeptMapper.selectByPrimaryKey(vo.getExecuteDept()).getName());
-            if(vo.getStatus() == PreparationStatusEnum.PROCESSING.getValue()
-                    || vo.getStatus() == PreparationStatusEnum.FINISHED.getValue()){
+            if (vo.getStatus() == PreparationStatusEnum.PROCESSING.getValue()
+                    || vo.getStatus() == PreparationStatusEnum.FINISHED.getValue()) {
                 vo.setDispatchUserName(sysUserMapper.selectUserNameById(vo.getDispatchUserId()));
                 vo.setDispatchUserName(sysUserMapper.selectUserNameById(vo.getDispatchUserId()));
-            }else{
+            } else {
                 // 获取筹建主管角色
                 // 获取筹建主管角色
                 SysUserDTO queryUserDTO = new SysUserDTO();
                 SysUserDTO queryUserDTO = new SysUserDTO();
                 queryUserDTO.setRoleCode(SysRoleCodeEnum.PREPARATION_MANAGER.name());
                 queryUserDTO.setRoleCode(SysRoleCodeEnum.PREPARATION_MANAGER.name());
                 queryUserDTO.setDeptId(vo.getExecuteDept());
                 queryUserDTO.setDeptId(vo.getExecuteDept());
                 List<SysUserVO> userVOS = sysUserMapper.selectDeptRoleUser(queryUserDTO);
                 List<SysUserVO> userVOS = sysUserMapper.selectDeptRoleUser(queryUserDTO);
                 // 判断执行部门是否有人接单
                 // 判断执行部门是否有人接单
-                if(userVOS != null || userVOS.size() > 0){
-                   StringBuilder info = new StringBuilder();
-                   userVOS.forEach(item->{
-                       info.append(item.getRealName()).append("、");
-                   });
-                   vo.setExecuteMangers(info.toString());
+                if (userVOS != null || userVOS.size() > 0) {
+                    StringBuilder info = new StringBuilder();
+                    userVOS.forEach(item -> {
+                        info.append(item.getRealName()).append("、");
+                    });
+                    vo.setExecuteMangers(info.toString());
                 }
                 }
             }
             }
         }
         }
@@ -467,9 +493,105 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
         return new MyPage(mapper.selectList(record));
         return new MyPage(mapper.selectList(record));
     }
     }
 
 
-    private String getParentPositionId(String positionId){
+    @Override
+    public void handleVerify(PreparationDTO model) {
+        if (StringUtils.isEmpty(model.getId())) {
+            throw new DeniedException("工单ID未携带");
+        }
+        Preparation preparation = mapper.selectByPrimaryKey(model.getId());
+        String roles = getRoles();
+        String currentUserId = SecurityUtils.getUserInfo().getUserId();
+        Preparation updPre = new Preparation();
+        updPre.setId(preparation.getId());
+        SysUserDTO queryDTO = new SysUserDTO();
+        List<SysUserVO> userVOS = ListUtils.newArrayList();
+                // 根据当前状态来区分审核权限
+        switch (preparation.getStatus()) {
+            case CommonConstants.PREPARATION_NOT_ALLOCATED:
+                // 主管审批
+                if (!roles.contains(SysRoleCodeEnum.DEPT_MANAGER.name()) || currentUserId.equals(preparation.getApplyVerifyUserId())) {
+                    throw new DeniedException("不具备审核权限");
+                }
+                if (model.getVerifyStatus() == 1) { // 通过
+                    updPre.setStatus(PreparationStatusEnum.APPLY_MANAGER_VERIFY_SUCCESS.getValue());
+                    queryDTO.setUserId(preparation.getApplyVerifyLeader());
+                } else if (model.getVerifyStatus() == 3) { // 回退
+                    updPre.setStatus(PreparationStatusEnum.APPLY_MANAGER_VERIFY_BACK.getValue());
+                    queryDTO.setUserId(preparation.getUserId());
+                } else { // 拒绝
+                    updPre.setStatus(PreparationStatusEnum.CLOSE.getValue());
+                    queryDTO.setUserId(preparation.getUserId());
+                }
+                // 给部门负责人发送消息
+                sysUserMapper.getSysUserVO(queryDTO);
+                break;
+            case CommonConstants.APPLY_MANAGER_VERIFY_SUCCESS:
+                // 负责人审批
+                if (!roles.contains(SysRoleCodeEnum.DEPT_LEADER.name()) || currentUserId.equals(preparation.getApplyVerifyLeader())) {
+                    throw new DeniedException("不具备审核权限");
+                }
+                if (model.getVerifyStatus() == 1) { // 通过
+                    updPre.setStatus(PreparationStatusEnum.APPLY_LEADER_VERIFY_SUCCESS.getValue());
+                    queryDTO.setUserId(preparation.getReceiveVerifyLeader());
+                } else if (model.getVerifyStatus() == 3) { // 回退
+                    queryDTO.setUserId(preparation.getApplyVerifyUserId());
+                    updPre.setStatus(PreparationStatusEnum.APPLY_LEADER_VERIFY_BACK.getValue());
+                } else { // 拒绝
+                    updPre.setStatus(PreparationStatusEnum.CLOSE.getValue());
+                    queryDTO.setUserId(preparation.getApplyVerifyUserId());
+                }
+                // 给收件部门负责人发送消息
+                sysUserMapper.getSysUserVO(queryDTO);
+                break;
+            case CommonConstants.FIRST_PROCESSING_VERIFYING:
+                // 申请人费用审批
+                if (currentUserId.equals(preparation.getUserId())) {
+                    throw new DeniedException("不具备审核权限");
+                }
+                if (model.getVerifyStatus() == 1) { // 通过
+                    updPre.setStatus(PreparationStatusEnum.SECOND_PROCESSING.getValue());
+                } else if (model.getVerifyStatus() == 3) { // 回退
+                    updPre.setStatus(PreparationStatusEnum.FIRST_PROCESSING_VERIFY_BACK.getValue());
+                } else { // 拒绝
+                    updPre.setStatus(PreparationStatusEnum.CLOSE.getValue());
+                }
+                // 给执行人发送消息
+                queryDTO.setUserId(preparation.getRepairUserId());
+                sysUserMapper.getSysUserVO(queryDTO);
+                break;
+            case CommonConstants.SECOND_PROCESSING_VERIFYING:
+                // 申请人验收审批
+                if (currentUserId.equals(preparation.getUserId())) {
+                    throw new DeniedException("不具备审核权限");
+                }
+                if (model.getVerifyStatus() == 1) { // 通过
+                    updPre.setStatus(PreparationStatusEnum.FINISHED.getValue());
+                } else if (model.getVerifyStatus() == 3) { // 回退
+                    updPre.setStatus(PreparationStatusEnum.SECOND_PROCESSING_BACK.getValue());
+                    queryDTO.setUserId(preparation.getRepairUserId());
+                } else { // 拒绝
+                    updPre.setStatus(PreparationStatusEnum.CLOSE.getValue());
+                    queryDTO.setUserId(preparation.getRepairUserId());
+                }
+                // 给执行人发送消息
+                sysUserMapper.getSysUserVO(queryDTO);
+                break;
+
+        }
+        // 添加状态记录
+        preparation.setStatus(updPre.getStatus());
+        addRecord(preparation, PreparationRecordTypeEnum.FLOW.getValue(), "");
+        // 添加审核记录
+        addRecord(preparation, PreparationRecordTypeEnum.VERIFY.getValue(), model.getVerifyRemark());
+        // 修改进度状态
+        mapper.updateByPrimaryKeySelective(updPre);
+        // 发送消息
+        sendMessageToApplyLeader(userVOS, preparation);
+    }
+
+    private String getParentPositionId(String positionId) {
         SbPosition sbPosition = sbPositionMapper.selectByPrimaryKey(positionId);
         SbPosition sbPosition = sbPositionMapper.selectByPrimaryKey(positionId);
-        while(!StringUtils.isEmpty(sbPosition.getParentId())){
+        while (!StringUtils.isEmpty(sbPosition.getParentId())) {
             sbPosition = sbPositionMapper.selectByPrimaryKey(sbPosition.getParentId());
             sbPosition = sbPositionMapper.selectByPrimaryKey(sbPosition.getParentId());
         }
         }
         return sbPosition.getId();
         return sbPosition.getId();
@@ -483,28 +605,30 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
 
 
     /**
     /**
      * 给申请部门主管发送消息
      * 给申请部门主管发送消息
+     *
      * @param user
      * @param user
      * @param preparation
      * @param preparation
      */
      */
-    private void sendMessageToApplyManger(SysUser user,Preparation preparation){
+    private void sendMessageToApplyManger(SysUser user, Preparation preparation) {
         String info = MessageTemplateUtil.getPreparationSuccess(preparation.getNo());
         String info = MessageTemplateUtil.getPreparationSuccess(preparation.getNo());
         Integer detailType = WorkplaceBacklogDetailTypeEnum.PREPARATION_REPAIR.getValue();
         Integer detailType = WorkplaceBacklogDetailTypeEnum.PREPARATION_REPAIR.getValue();
-        String[] values = new String[]{"【"+user.getRealName()+"】发起筹建工单申请",preparation.getNo(),"无",preparation.getContent(),sbPositionMapper.selectNameById(preparation.getPositionId()),"请审核"};
-        String wechatTemplateId = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_SEND_SUCCESS_WECHAT_TEMPLATE_ID.name());;
+        String[] values = new String[]{"【" + user.getRealName() + "】发起建筑物工单申请", preparation.getNo(), "无", preparation.getContent(), sbPositionMapper.selectNameById(preparation.getPositionId()), "请审核"};
+        String wechatTemplateId = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_SEND_SUCCESS_WECHAT_TEMPLATE_ID.name());
+        ;
         String detailUrl = "pages/preparation/preparation-detail?id=" + preparation.getId();
         String detailUrl = "pages/preparation/preparation-detail?id=" + preparation.getId();
         List<SysUserVO> userVOS = ListUtils.newArrayList();
         List<SysUserVO> userVOS = ListUtils.newArrayList();
-        userVOS.add(BeanConverterUtil.copyObjectProperties(user,SysUserVO.class));
-        Map<String,List<String>> maps = getPushReceivers(userVOS);
+        userVOS.add(BeanConverterUtil.copyObjectProperties(user, SysUserVO.class));
+        Map<String, List<String>> maps = getPushReceivers(userVOS);
         // 1、站内信
         // 1、站内信
-        sendWorkplaceAndEmailNew(maps.get("mails"),maps.get("userIds"),preparation.getId(),info, detailType);
+        sendWorkplaceAndEmailNew(maps.get("mails"), maps.get("userIds"), preparation.getId(), info, detailType);
         // 2、微信
         // 2、微信
-        SendMessageUtils.sendWechatNew(maps.get("openIds"),detailUrl,values,wechatTemplateId,1);
+        //SendMessageUtils.sendWechatNew(maps.get("openIds"),detailUrl,values,wechatTemplateId,1);
         // 3、短信
         // 3、短信
         //SendMessageUtils.sendCommonSms(maps.get("phones"),info);
         //SendMessageUtils.sendCommonSms(maps.get("phones"),info);
     }
     }
 
 
-    private Map<String,List<String>> getPushReceivers(List<SysUserVO> userVOS){
-        Map<String,List<String>> retInfos = new HashMap<>();
+    private Map<String, List<String>> getPushReceivers(List<SysUserVO> userVOS) {
+        Map<String, List<String>> retInfos = new HashMap<>();
         List<String> mails = ListUtils.newArrayList();
         List<String> mails = ListUtils.newArrayList();
         List<String> userIds = ListUtils.newArrayList();
         List<String> userIds = ListUtils.newArrayList();
         List<String> openIds = ListUtils.newArrayList();
         List<String> openIds = ListUtils.newArrayList();
@@ -515,32 +639,49 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
             openIds.add(item.getWxOpenId());
             openIds.add(item.getWxOpenId());
             phones.add(item.getPhone());
             phones.add(item.getPhone());
         });
         });
-        retInfos.put("mails",mails);
-        retInfos.put("userIds",userIds);
-        retInfos.put("openIds",openIds);
-        retInfos.put("phones",phones);
+        retInfos.put("mails", mails);
+        retInfos.put("userIds", userIds);
+        retInfos.put("openIds", openIds);
+        retInfos.put("phones", phones);
         return retInfos;
         return retInfos;
     }
     }
 
 
-    public void sendWorkplaceAndEmailNew(List<String> mails,List<String> userIds,String repairId,String content,Integer detailType){
+    public void sendWorkplaceAndEmailNew(List<String> mails, List<String> userIds, String repairId, String content, Integer detailType) {
         // 通过给当天值班维修人员
         // 通过给当天值班维修人员
         SpringContextHolder.publishEvent(new WorkplaceBacklogEvent(WorkplaceBacklogTypeEnum.PREPARATION_REPAIR.getValue(), detailType,
         SpringContextHolder.publishEvent(new WorkplaceBacklogEvent(WorkplaceBacklogTypeEnum.PREPARATION_REPAIR.getValue(), detailType,
                 repairId, content, repairId, userIds, mails));
                 repairId, content, repairId, userIds, mails));
     }
     }
 
 
-    private void sendMessageToRepairer(List<SysUserVO> userVOS,PreparationDTO preparation){
+    private void sendMessageToRepairer(List<SysUserVO> userVOS, PreparationDTO preparation) {
         String info = MessageTemplateUtil.getPreparationForRepair(preparation.getNo());
         String info = MessageTemplateUtil.getPreparationForRepair(preparation.getNo());
         Integer detailType = WorkplaceBacklogDetailTypeEnum.PREPARATION_REPAIR_DISPATCH.getValue();
         Integer detailType = WorkplaceBacklogDetailTypeEnum.PREPARATION_REPAIR_DISPATCH.getValue();
-        String[] values = new String[]{"有新的筹建派工任务!",preparation.getNo(),"无",preparation.getContent(),sbPositionMapper.selectNameById(preparation.getPositionId()),"请尽快处理"};
-        String wechatTemplateId = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_SEND_SUCCESS_WECHAT_TEMPLATE_ID.name());;
+        String[] values = new String[]{"有新的筹建派工任务!", preparation.getNo(), "无", preparation.getContent(), sbPositionMapper.selectNameById(preparation.getPositionId()), "请尽快处理"};
+        String wechatTemplateId = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_SEND_SUCCESS_WECHAT_TEMPLATE_ID.name());
+        ;
+        String detailUrl = "pages/preparation/preparation-detail?id=" + preparation.getId();
+        Map<String, List<String>> maps = getPushReceivers(userVOS);
+        // 1、站内信
+        sendWorkplaceAndEmailNew(maps.get("mails"), maps.get("userIds"), preparation.getId(), info, detailType);
+        // 2、微信
+        SendMessageUtils.sendWechatNew(maps.get("openIds"), detailUrl, values, wechatTemplateId, 1);
+        // 3、短信
+        SendMessageUtils.sendCommonSms(maps.get("phones"), info);
+    }
+
+    private void sendMessageToApplyLeader(List<SysUserVO> userVOS, Preparation preparation) {
+        String info = MessageTemplateUtil.getInfoByStatus(preparation.getNo(),preparation.getStatus());
+        Integer detailType = WorkplaceBacklogDetailTypeEnum.PREPARATION_REPAIR_DISPATCH.getValue();
+        //String[] values = new String[]{"有新的筹建派工任务!", preparation.getNo(), "无", preparation.getContent(), sbPositionMapper.selectNameById(preparation.getPositionId()), "请尽快处理"};
+        //String wechatTemplateId = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_SEND_SUCCESS_WECHAT_TEMPLATE_ID.name());
+        ;
         String detailUrl = "pages/preparation/preparation-detail?id=" + preparation.getId();
         String detailUrl = "pages/preparation/preparation-detail?id=" + preparation.getId();
-        Map<String,List<String>> maps = getPushReceivers(userVOS);
+        Map<String, List<String>> maps = getPushReceivers(userVOS);
         // 1、站内信
         // 1、站内信
-        sendWorkplaceAndEmailNew(maps.get("mails"),maps.get("userIds"),preparation.getId(),info, detailType);
+        sendWorkplaceAndEmailNew(maps.get("mails"), maps.get("userIds"), preparation.getId(), info, detailType);
         // 2、微信
         // 2、微信
-        SendMessageUtils.sendWechatNew(maps.get("openIds"),detailUrl,values,wechatTemplateId,1);
+        //SendMessageUtils.sendWechatNew(maps.get("openIds"), detailUrl, values, wechatTemplateId, 1);
         // 3、短信
         // 3、短信
-        SendMessageUtils.sendCommonSms(maps.get("phones"),info);
+        //SendMessageUtils.sendCommonSms(maps.get("phones"), info);
     }
     }
 
 
-                                                                                                                                                                                                                                                                            }
+}