Forráskód Böngészése

事故时间上报

Zimo 1 napja
szülő
commit
0ba9a4cb8c

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/BpmMessageServiceImpl.java

@@ -113,7 +113,7 @@ public class BpmMessageServiceImpl implements BpmMessageService {
                     .setUserId(reqDTO.getAssigneeUserId()).setTemplateCode(templateCode).setTemplateParams(templateParams));
             url=systemUrl + "dingding?id="+reqDTO.getProcessInstanceId()+"&type=qhseAccident&userId="+reqDTO.getAssigneeUserId();
         }
-        dingtalkSendApi.send(user.getMobile(), msg,"link",url);
+        dingtalkSendApi.send(user.getMobile(), msg,"link",url,"DeepOil-PMS消息提醒");
     }
 
     @Override

+ 1 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/constant/PmsConstants.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.pms.constant;
 
 public interface PmsConstants {
     String GENERATE_INSPECT = "generateInspect";
+    String QHSE_ACCIDENT = "qhse-accident";
     String GENERATE_MAINTAIN = "generateMaintain";
     String GENERATE_QHSE_CERT = "generateQhseCert";
     String FAILURE_NO_PASS = "failureNoPass";

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/listener/AccidentSpringExpressionExecutionListener.java

@@ -108,7 +108,7 @@ public class AccidentSpringExpressionExecutionListener {
             notifyMessageSendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
                     .setUserId(adminUserRespDTO.getId()).setTemplateCode(templateCode).setTemplateParams(templateParams));
             url=systemUrl + "dingding?id="+execution.getProcessInstanceBusinessKey()+"&type=qhseAccident&userId="+adminUserRespDTO.getId();
-            dingtalkSendApi.send(adminUserRespDTO.getMobile(), "","link",url);
+            dingtalkSendApi.send(adminUserRespDTO.getMobile(), "","link",url,"DeepOil-QHSE消息提醒");
         }
     }
 }

+ 7 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/message/PmsMessage.java

@@ -67,6 +67,7 @@ public class PmsMessage {
 
         notifyMessageSendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
                 .setUserId(userId).setTemplateCode(businessType).setTemplateParams(templateParams));
+        String title = "DeepOil-PMS消息提醒";
         if (StrUtil.isNotBlank(mobile)) {
             //发送钉钉消息
             String msg = "您有新的巡检工单待处理,请处理。"+"["+ DateUtil.format(new Date(),"yyyy-MM-dd hh:mm:ss")+"]";
@@ -122,6 +123,10 @@ public class PmsMessage {
             if (PmsConstants.GENERATE_QHSE_CERT.equals(businessType)) {
                 msg = "您有QHSE相关证书"+name+"已过期,请处理。"+"["+ DateUtil.format(new Date(),"yyyy-MM-dd hh:mm:ss")+"]";
             }
+            if (PmsConstants.QHSE_ACCIDENT.equals(businessType)) {
+                msg = "【事故事件上报】:"+name;
+                title = "DeepOil-QHSE消息提醒";
+            }
             String url = "";
 
             if(PmsConstants.GENERATE_OPERATION.equals(businessType)){
@@ -138,9 +143,9 @@ public class PmsMessage {
 
             if (PmsConstants.FAILURE_NO_PASS.equals(businessType)||PmsConstants.ALARM_MESSAGE.equals(businessType)||PmsConstants.GENERATE_QHSE_CERT.equals(businessType)) {
                 //通知设备状态变更为观察使用
-                dingtalkSendApi.send(mobile, msg, "text",url);
+                dingtalkSendApi.send(mobile, msg, "text",url,  title);
             } else {
-                dingtalkSendApi.send(mobile, msg,"link", url);
+                dingtalkSendApi.send(mobile, msg,"link", url, title);
             }
         }
     }

+ 1 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/failure/IotFailureReportServiceImpl.java

@@ -1,6 +1,5 @@
 package cn.iocoder.yudao.module.pms.service.failure;
 
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.iocoder.yudao.framework.common.exception.ErrorCode;
 import cn.iocoder.yudao.framework.common.exception.ServiceException;
@@ -37,7 +36,6 @@ import cn.iocoder.yudao.module.system.api.permission.RoleApi;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
-import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import com.google.common.collect.ImmutableList;
 import org.apache.commons.lang3.StringUtils;
@@ -291,7 +289,7 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
             String msg = "【PMS】您有新的故障上报 - "+iotFailureReport.getFailureName()+"流程待审批。"+"["+new Date()+"]";
             AdminUserRespDTO user = adminUserApi.getUser(e);
             if (Objects.nonNull(user)) {
-                dingtalkSendApi.send(user.getMobile(), msg,"","");
+                dingtalkSendApi.send(user.getMobile(), msg,"","","DeepOil-PMS消息提醒");
             }
         }));
     }

+ 1 - 5
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/IotMaintainServiceImpl.java

@@ -9,9 +9,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
-import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportProcessVO;
-import cn.iocoder.yudao.module.pms.controller.admin.inspect.item.vo.IotInspectItemPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.IotMaintainController;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.bom.vo.IotMaintainBomSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
@@ -23,7 +21,6 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.information.IotInformationDbDO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectItemDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotlockstock.IotLockStockDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotoutbound.IotOutboundDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainBomDO;
@@ -42,7 +39,6 @@ import cn.iocoder.yudao.module.pms.dal.mysql.oa.IotOaPersonMapper;
 import cn.iocoder.yudao.module.pms.enums.common.FailureAuditStatusEnum;
 import cn.iocoder.yudao.module.pms.oa.CallBackOaVo;
 import cn.iocoder.yudao.module.pms.oa.OaFlow;
-import cn.iocoder.yudao.module.pms.oa.OaVo;
 import cn.iocoder.yudao.module.pms.service.IotDeviceService;
 import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
@@ -387,7 +383,7 @@ public class IotMaintainServiceImpl implements IotMaintainService {
                         .setUserId(parentDept.getLeaderUserId()).setTemplateCode(templateCode).setTemplateParams(templateParams));
                 AdminUserRespDTO user = adminUserApi.getUser(parentDept.getLeaderUserId());
                 if (Objects.nonNull(user)) {
-                    dingtalkSendApi.send(user.getMobile(), msg,"","");
+                    dingtalkSendApi.send(user.getMobile(), msg,"","","DeepOil-PMS消息提醒");
                 }
             }
 

+ 42 - 8
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/qhse/accident/IotAccidentReportServiceImpl.java

@@ -7,13 +7,15 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
-import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.accident.vo.IotAccidentReportPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.accident.vo.IotAccidentReportSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.stat.DeptUtil;
 import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.accident.IotAccidentReportDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.accident.IotAccidentReportProcessDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.qhse.accident.IotAccidentReportMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.qhse.accident.IotAccidentReportProcessMapper;
+import cn.iocoder.yudao.module.pms.message.PmsMessage;
+import cn.iocoder.yudao.module.pms.service.IotDeviceService;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.PostApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
@@ -22,6 +24,7 @@ import cn.iocoder.yudao.module.system.api.permission.RoleApi;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -58,6 +61,12 @@ public class IotAccidentReportServiceImpl implements IotAccidentReportService {
     private IotAccidentReportProcessMapper iotAccidentReportProcessMapper;
     @Resource
     private BpmProcessInstanceApi processInstanceApi;
+    @Autowired
+    private PmsMessage pmsMessage;
+    @Autowired
+    private IotDeviceService iotDeviceService;
+    @Autowired
+    private DeptUtil deptUtil;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -175,10 +184,10 @@ public class IotAccidentReportServiceImpl implements IotAccidentReportService {
             iotAccidentReport.setDeptName(dept.getName());
         }
         //设置状态为上报中
-        iotAccidentReport.setStatus("reporting");
+//        iotAccidentReport.setStatus("reporting");
         //查找上一级的项目主管
         iotAccidentReport.setDeleted(false);
-        iotAccidentReport.setFlowStatus("2");
+//        iotAccidentReport.setFlowStatus("2");
         //获取当前部门的上一级部门也就是项目部的项目经理
 //        Long parentId = dept.getParentId();
 //        List<AdminUserRespDTO> parentDeptUsers = adminUserApi.getUserListByDeptIdsNew(Collections.singleton(parentId));
@@ -202,11 +211,36 @@ public class IotAccidentReportServiceImpl implements IotAccidentReportService {
 //        processDO.setCreateTime(LocalDateTime.now());
 //        processDO.setStatus("提交上报");
 //        iotAccidentReportProcessMapper.insert(processDO);
-        String processInstanceId;
-        processInstanceId = processInstanceApi.createProcessInstance(SecurityFrameworkUtils.getLoginUserId(),
-                new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey("qhse-accident").setBusinessKey(String.valueOf(iotAccidentReport.getId())));
-
-        iotAccidentReportMapper.updateById(new IotAccidentReportDO().setId(iotAccidentReport.getId()).setProcessInstanceId(processInstanceId));
+//        String processInstanceId;
+//        processInstanceId = processInstanceApi.createProcessInstance(SecurityFrameworkUtils.getLoginUserId(),
+//                new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey("qhse-accident").setBusinessKey(String.valueOf(iotAccidentReport.getId())));
+//
+//        iotAccidentReportMapper.updateById(new IotAccidentReportDO().setId(iotAccidentReport.getId()).setProcessInstanceId(processInstanceId));
+        //发送钉钉消息
+        //pmsMessage.sendMessage(item.getId(), item.getCertName(), PmsConstants.GENERATE_QHSE_CERT, adminUserRespDTO.getId(), adminUserRespDTO.getMobile());
+        String deptName;
+        if (iotAccidentReport.getDeptName().contains("~~")) {
+            String[] split = iotAccidentReport.getDeptName().split("~~");
+            deptName = split[0];
+        } else {
+            deptName = iotAccidentReport.getDeptName();
+        }
+        //todo 发送公司总经理及QHSE总监、数智化首席运营及集团总裁
+        PostRespDTO zjl = postApi.getPostByName("总经理");
+        List<AdminUserRespDTO> userListByPostIds = adminUserApi.getUserListByPostIdsNoPermission(ImmutableList.of(zjl.getId()));
+        userListByPostIds.stream().filter(e -> e.getDeptId().equals(iotAccidentReport.getDeptId())).findFirst().ifPresent(f ->{
+            //总经理发送消息
+            System.out.println("---------");
+//            pmsMessage.sendMessage(iotAccidentReport.getId(), deptName+iotAccidentReport.getAccidentAddress()+"事故事件上报",PmsConstants.QHSE_ACCIDENT,f.getId(), f.getMobile());
+        });
+        ImmutableList<String> strings = ImmutableList.of("安全副总监", "数智化首席运营", "集团总裁");
+        for (String string : strings) {
+            PostRespDTO fzj = postApi.getPostByName(string);
+            List<AdminUserRespDTO> fzjUsers = adminUserApi.getUserListByPostIdsNoPermission(ImmutableList.of(fzj.getId()));
+            if (CollUtil.isNotEmpty(fzjUsers)) {
+//                pmsMessage.sendMessage(iotAccidentReport.getId(), deptName+iotAccidentReport.getAccidentAddress()+"事故事件上报",PmsConstants.QHSE_ACCIDENT,fzjUsers.get(0).getId(), fzjUsers.get(0).getMobile());
+            }
+        }
         // 返回
         return iotAccidentReport.getId();
     }

+ 1 - 1
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dingtalk/DingtalkSendApi.java

@@ -16,6 +16,6 @@ public interface DingtalkSendApi {
      * @param sendContent 通知内容
      * @return com.yanfan.common.core.notify.NotifySendResponse
      */
-    NotifySendResponse send(String sendAccount, String sendContent,String type, String url);
+    NotifySendResponse send(String sendAccount, String sendContent,String type, String url, String title);
 
 }

+ 2 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dingtalk/DingtalkSendServiceImpl.java

@@ -46,7 +46,7 @@ public class DingtalkSendServiceImpl implements DingtalkSendApi {
     private String systemUrl;
 
     @Override
-    public NotifySendResponse send(String sendAccount, String sendContent, String type, String jumpUrl) {
+    public NotifySendResponse send(String sendAccount, String sendContent, String type, String jumpUrl, String title) {
         NotifySendResponse notifySendResponse = new NotifySendResponse();
         notifySendResponse.setSendContent(sendContent);
         notifySendResponse.setStatus(1);
@@ -78,7 +78,7 @@ public class DingtalkSendServiceImpl implements DingtalkSendApi {
             }
             DingTalkMsgParams dingTalkMsgParams = new DingTalkMsgParams();
             dingTalkMsgParams.setMessageUrl(jumpUrl);
-            dingTalkMsgParams.setTitle("DeepOil-PMS消息提醒");
+            dingTalkMsgParams.setTitle(title);
             dingTalkMsgParams.setPicUrl(systemUrl + "images/logo.png");
             OapiMessageCorpconversationAsyncsendV2Request.Msg msg = this.createOapiMessageMsg(dingTalkMsgParams, sendContent, type);
             req.setMsg(msg);