Browse Source

出库通知工程师审批

guarantee-lsq 2 years ago
parent
commit
d690bcd1d7

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

@@ -35,6 +35,7 @@ public enum WorkplaceBacklogDetailTypeEnum {
     SB_APPLY_BIG_REPAIR(30, "报修转大修审核"),
     PREPARATION_REPAIR(31, "筹建报修"),
     PREPARATION_REPAIR_DISPATCH(32, "筹建报修派工通知"),
+    OUT_STORE_NOTICE(33, "出库审批"),
     REPAIR_EXAMINE(24, "维修审核通知"),
     CHECK_RUN_EXPIRE(7, "润滑任务过期通知"),
     CHECK_BAOYANG_EXPIRE(8, "保养任务过期通知"),

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

@@ -428,6 +428,10 @@ public class MessageTemplateUtil {
         return String.format("您有新的筹建报修单【%s】待处理,请处理", no);
     }
 
+    public static String getOutStoreFormSuccess(String no) {
+        return String.format("您有一个出库单【%s】待审批,请处理", no);
+    }
+
     public static String getPreparationForRepair(String no) {
         return String.format("有一条新的派工任务【%s】待处理,请处理", no);
     }

+ 51 - 2
platform-service/src/main/java/com/platform/service/business/impl/OutStoreFormActivitiServiceImpl.java

@@ -2,26 +2,38 @@ package com.platform.service.business.impl;
 
 import com.platform.activiti.dao.entity.ActAuditRequest;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.cache.ConfigCache;
 import com.platform.common.constant.CommonConstants;
 import com.platform.common.exception.BusinessException;
 import com.platform.common.model.UserInfo;
 import com.platform.common.util.IdGeneratorUtils;
+import com.platform.common.util.ListUtils;
 import com.platform.common.util.SecurityUtils;
+import com.platform.common.util.SpringContextHolder;
 import com.platform.common.yongyou.response.OtherOutAddResponse;
 import com.platform.dao.entity.activiti.LocalAuditRecord;
+import com.platform.dao.entity.preparation.Preparation;
 import com.platform.dao.entity.store.OutStoreForm;
-import com.platform.dao.enums.ActivitiFormStatusEnum;
-import com.platform.dao.enums.OutStoreStatusEnum;
+import com.platform.dao.entity.upms.SysUser;
+import com.platform.dao.enums.*;
 import com.platform.dao.mapper.activiti.LocalAuditRecordMapper;
 import com.platform.dao.mapper.store.OutStoreFormMapper;
+import com.platform.dao.mapper.upms.SysUserMapper;
+import com.platform.dao.util.MessageTemplateUtil;
+import com.platform.dao.vo.SysUserVO;
 import com.platform.dao.vo.query.customize.CustomFieldTemplateDataVO;
 import com.platform.service.customize.BaseFormCheckServiceAbstract;
+import com.platform.service.event.WorkplaceBacklogEvent;
+import com.platform.service.util.SendMessageUtils;
 import com.platform.service.yongyou.YongyouService;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.io.OutputStream;
 import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @Description 工作流业务
@@ -36,6 +48,7 @@ public class OutStoreFormActivitiServiceImpl extends BaseFormCheckServiceAbstrac
     private OutStoreFormMapper outStoreFormMapper;
     private final YongyouService yongyouService;
     private final LocalAuditRecordMapper localAuditRecordMapper;
+    private final SysUserMapper sysUserMapper;
     /**
      * 检查业务是否可以发起,比如检查业务状态等
      *
@@ -54,11 +67,47 @@ public class OutStoreFormActivitiServiceImpl extends BaseFormCheckServiceAbstrac
 
     @Override
     protected void doStartUpdate(ActAuditRequest actAuditRequest) {
+        OutStoreForm queryForm = outStoreFormMapper.selectByPrimaryKey(actAuditRequest.getId());
         OutStoreForm outStoreForm = new OutStoreForm();
         outStoreForm.setId(actAuditRequest.getId());
         outStoreForm.setProcessInstanceId(actAuditRequest.getProcessInstanceId());
         outStoreForm.setStatus(OutStoreStatusEnum.NOT_EXECUTE.getValue());
         outStoreFormMapper.updateByPrimaryKeySelective(outStoreForm);
+        // 给审核主管发送微信通知
+        sendMessageToManger(queryForm);
+    }
+
+    /**
+     * 给出库审批人发送消息
+     * @param outForm
+     */
+    private void sendMessageToManger(OutStoreForm outForm){
+        SysUser sysUser = sysUserMapper.selectByPrimaryKey(outForm.getCreatedUserId());
+        String info = MessageTemplateUtil.getOutStoreFormSuccess(outForm.getOutNo());
+        Integer detailType = WorkplaceBacklogDetailTypeEnum.OUT_STORE_NOTICE.getValue();
+        String[] values = new String[]{"出库单待审批!",outForm.getOutNo(),"无","无","无","请尽快审批"};
+        String wechatTemplateId = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_SEND_SUCCESS_WECHAT_TEMPLATE_ID.name());;
+        String detailUrl = "pages/backlog/backlog";
+        List<String> mails = ListUtils.newArrayList();
+        List<String> userIds = ListUtils.newArrayList();
+        List<String> openIds = ListUtils.newArrayList();
+        List<String> phones = ListUtils.newArrayList();
+        mails.add(sysUser.getEmail());
+        userIds.add(sysUser.getUserId());
+        openIds.add(sysUser.getWxOpenId());
+        phones.add(sysUser.getPhone());
+        // 1、站内信
+        sendWorkplaceAndEmailNew(mails,userIds,outForm.getId(),info, detailType);
+        // 2、微信
+        SendMessageUtils.sendWechatNew(openIds,detailUrl,values,wechatTemplateId);
+        // 3、短信
+        SendMessageUtils.sendCommonSms(phones,info);
+    }
+
+    public void sendWorkplaceAndEmailNew(List<String> mails,List<String> userIds,String repairId,String content,Integer detailType){
+        // 通过给当天值班维修人员
+        SpringContextHolder.publishEvent(new WorkplaceBacklogEvent(WorkplaceBacklogTypeEnum.OUT_STORE.getValue(), detailType,
+                repairId, content, repairId, userIds, mails));
     }
 
     @Override