Переглянути джерело

角色对应车间或工厂下的人员

DLC 1 рік тому
батько
коміт
94067f3ee9

+ 10 - 0
bs-common/src/main/java/com/rongwei/safecommon/utils/SaveConstans.java

@@ -217,6 +217,11 @@ public class SaveConstans {
          * 大修任务超期提醒标题
          */
         public static final String PLANNING_TASK_TITLE = "大修任务超期提醒";
+
+        /**
+         * 设备报废申请审批通过通知
+         */
+        public static final String EQU_SCRAP_TITLE = "设备报废申请审批通过通知";
     }
 
     public static class NotifyContent {
@@ -289,5 +294,10 @@ public class SaveConstans {
          * 大修任务超期提醒内容
          */
         public static final String PLANNING_TASK_CONTENT = "【%s】年【%s】大修任务有【%s】个大修任务现已超期未完成,请各车间相关负责人及时跟进处理并调促督协尽快完成,具体任务详见附件清单。";
+
+        /**
+         * 设备报废申请审批通过提醒内容
+         */
+        public static final String EQU_SCRAP_CONTENT = "设备报废申请审批通过通知";
     }
 }

+ 15 - 0
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/dao/CommonDao.java

@@ -100,4 +100,19 @@ public interface CommonDao {
      * @param model
      */
     void insertFile(@Param("model") SysFileItemDo model);
+
+    /**
+     * 获取对应角色下指定工厂或者指定车间的人
+     * @param
+     * @return
+     */
+    @Select("SELECT su.ID -- ,sr.NAME\n" +
+            "FROM sys_role sr \n" +
+            "LEFT JOIN sys_user_role sur ON sr.ID = sur.ROLEID and sur.DELETED = 0 \n" +
+            "LEFT JOIN sys_user su ON sur.USERID = su.ID and su.DELETED = 0 \n" +
+            "LEFT JOIN sys_user_org suo ON suo.USERID = su.ID AND suo.DELETED = 0 \n" +
+            "LEFT JOIN sys_organization so ON suo.ORGID = so.ID AND so.DELETED = 0 \n" +
+            "WHERE sr.NAME in(${roles}) AND ${whr}")
+    List<String> getRoleUserIds(@Param("roles") String roles,@Param("whr") String whr);
+
 }

+ 3 - 0
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/service/EquipmentSendNotifyService.java

@@ -1,6 +1,7 @@
 package com.rongwei.bscommon.sys.service;
 
 import com.rongwei.bsentity.domain.EquLubricationTaskManagementDo;
+import com.rongwei.bsentity.dto.EquipmentDisposeDTO;
 import com.rongwei.rwcommon.base.R;
 
 import java.util.List;
@@ -57,4 +58,6 @@ public interface EquipmentSendNotifyService {
      * @param fileItemId
      */
     void sendPlanningTasksNotify(String planyear, String belongfactory, Integer taskquantity, String fileItemId);
+
+    void equScrapAuditNotify(EquipmentDisposeDTO equipmentDisposeDTO);
 }

+ 11 - 0
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/service/impl/EquipmentArchivesServiceImpl.java

@@ -1,6 +1,7 @@
 package com.rongwei.bscommon.sys.service.impl;
 
 import com.rongwei.bscommon.sys.service.*;
+import com.rongwei.bscommon.sys.utils.ExceptionUtils;
 import com.rongwei.bsentity.domain.AspCheckItemsAreaDo;
 import com.rongwei.bsentity.dto.EquipmentDisposeDTO;
 import com.rongwei.rwcommon.base.R;
@@ -37,6 +38,9 @@ public class EquipmentArchivesServiceImpl implements EquipmentArchivesService {
     @Autowired
     private AspCheckItemsAreaService checkItemsAreaService;
 
+    @Autowired
+    private EquipmentSendNotifyService sendNotifyService;
+
     /**
      * 更新设备库
      *
@@ -60,6 +64,13 @@ public class EquipmentArchivesServiceImpl implements EquipmentArchivesService {
             if (isObject) {
                 aspCheckItemsService.updateStateById(equipmentId,newDate);
                 lubricationPlanService.updateStateByEquId(equipmentId);
+
+                //设备报废审批通过生成一条提醒任务
+                try {
+                    sendNotifyService.equScrapAuditNotify(equipmentDisposeDTO);
+                }catch (Exception e){
+                    ExceptionUtils.printExceptionDetail(e,"发送设备报废审批通过提醒异常");
+                }
             } else {
                 equFrockListService.updateStateById(equipmentId,newDate);
             }

+ 45 - 9
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/service/impl/EquipmentSendNotifyServiceImpl.java

@@ -1,10 +1,14 @@
 package com.rongwei.bscommon.sys.service.impl;
 
+import com.rongwei.bscommon.sys.dao.CommonDao;
+import com.rongwei.bscommon.sys.service.AspCheckItemsService;
 import com.rongwei.bscommon.sys.service.EquLubricationTaskManagementService;
 import com.rongwei.bscommon.sys.service.EquMaintenanceTaskService;
 import com.rongwei.bscommon.sys.service.EquipmentSendNotifyService;
+import com.rongwei.bsentity.domain.AspCheckItems;
 import com.rongwei.bsentity.domain.EquLubricationTaskManagementDo;
 import com.rongwei.bsentity.domain.EquMaintenanceTaskDo;
+import com.rongwei.bsentity.dto.EquipmentDisposeDTO;
 import com.rongwei.rwadmincommon.system.domain.SysDictDo;
 import com.rongwei.rwadmincommon.system.service.SysDictService;
 import com.rongwei.rwcommon.base.R;
@@ -16,11 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import static com.rongwei.safecommon.utils.SaveConstans.NotifyContent.*;
 import static com.rongwei.safecommon.utils.SaveConstans.NotifyTitle.*;
@@ -48,6 +50,12 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
     @Autowired
     private EquLubricationTaskManagementService equLubricationTaskManagementService;
 
+    @Autowired
+    private AspCheckItemsService aspCheckItemsService;
+
+    @Autowired
+    private CommonDao commonDao;
+
     /**
      * 根据任务ID发送 提醒
      *
@@ -89,7 +97,7 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
                 maintenanceTaskDo.getWorkshop(), maintenanceTaskDo.getEquipmentname(), maintenanceTaskDo.getEquipmentnumber(),
                 maintenanceTaskDo.getMaintenancesite(), maintenanceTaskDo.getPrincipal(), maintenanceTaskDo.getOtherengineers());
         //删除提醒
-        CXCommonUtils.deleteSendNotify("maintain",id);
+        CXCommonUtils.deleteSendNotify("maintain", id);
 
         //发送提醒
         CXCommonUtils.sendNotify(title, context, null, userId.stream().distinct().collect(Collectors.toList()),
@@ -127,7 +135,7 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
                 maintenanceTaskDo.getOtherengineers());
 
         //删除提醒
-        CXCommonUtils.deleteSendNotify("maintain",id);
+        CXCommonUtils.deleteSendNotify("maintain", id);
 
         CXCommonUtils.sendNotify(ACCEPTANCE_SYSTEM_TITLE, context, null, userId.stream().distinct().collect(Collectors.toList()),
                 maintenanceTaskDo.getId(), ACCEPTMAINTAINTASK, false);
@@ -157,7 +165,7 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
             // 发送消息提醒
             CXCommonUtils.sendNotify(LUBRICATION_TASK_TITLE,
                     String.format(LUBRICATION_TASK_CONTENT, info.getYear(), info.getMonth(), taskfrequency,
-                            info.getEquipmentworkshop(),info.getEquipment(), info.getEquipmentnumber(), info.getLubricator()),
+                            info.getEquipmentworkshop(), info.getEquipment(), info.getEquipmentnumber(), info.getLubricator()),
                     null, Arrays.asList(info.getLubricatorid().split(",")), info.getId(), LUBRICATION_TASK, false);
         });
         // 发送消息提醒
@@ -167,7 +175,7 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
     @Override
     public R sendLubricationTaskNotifyByIds(Map<String, Object> parameter) {
         String taskIds = parameter.get("taskIds").toString();
-        if(StringUtils.isNotBlank(taskIds)){
+        if (StringUtils.isNotBlank(taskIds)) {
             String[] idArray = taskIds.split(",");
             List<EquLubricationTaskManagementDo> equLubricationTaskManagementDos = new ArrayList<>(equLubricationTaskManagementService.listByIds(Arrays.asList(idArray)));
             sendLubricationTaskNotify(equLubricationTaskManagementDos);
@@ -177,11 +185,39 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
 
     @Override
     public void sendPlanningTasksNotify(String planyear, String belongfactory, Integer taskquantity, String fileItemId) {
-        CXCommonUtils.deleteSendNotify("mobilePlanningTask",fileItemId);
+        CXCommonUtils.deleteSendNotify("mobilePlanningTask", fileItemId);
         // 发送消息提醒
         CXCommonUtils.sendNotify(PLANNING_TASK_TITLE,
                 String.format(PLANNING_TASK_CONTENT, planyear, belongfactory, taskquantity),
                 null, Arrays.asList("7144ec7b69484007a07f2542cc1d90c7".split(",")), fileItemId, MOBILE_PLANNING_TASK, true);
     }
+
+    @Override
+    public void equScrapAuditNotify(EquipmentDisposeDTO equipmentDisposeDTO) {
+        String equid = equipmentDisposeDTO.getEquipmentId();
+        AspCheckItems aspCheckItems = aspCheckItemsService.getById(equid);
+
+        if (null == aspCheckItems) {
+            log.info("无法通过id:{}获取到设备信息", equid);
+            return;
+        }
+
+        // 发送人
+        List<String> userId = new ArrayList<>();
+        List<String> useDeptRoleUserIds = commonDao.getRoleUserIds("'车间主任','车间维修主管','车间保养主管'", "so.ID='" + aspCheckItems.getUsedeptid() + "'");
+        List<String> factoryRoleUserIds = commonDao.getRoleUserIds("'设备部部门长'", "(so.FULLPID like '," + aspCheckItems.getTenantid() + "%' or so.ID='" + aspCheckItems.getTenantid() + "')");
+        if (useDeptRoleUserIds.size() > 0 && factoryRoleUserIds.size() > 0) {
+            userId = Stream.of(useDeptRoleUserIds, factoryRoleUserIds).flatMap(Collection::stream).distinct().collect(Collectors.toList());
+        } else if (useDeptRoleUserIds.size() == 0) {
+            userId = factoryRoleUserIds;
+        } else {
+            userId = useDeptRoleUserIds;
+        }
+
+        if (userId.isEmpty()) {
+            log.info("id为{}的任务无提醒人", equipmentDisposeDTO.getId());
+            return;
+        }
+    }
 }
 

+ 15 - 0
cx-equipment/cx-equipment-entity/src/main/java/com/rongwei/bsentity/dto/EquipmentDisposeDTO.java

@@ -53,4 +53,19 @@ public class EquipmentDisposeDTO implements Serializable {
      */
     private String rollInLocation;
 
+    /**
+     *equ_disposal_request id
+     */
+    private String id;
+
+    /**
+     *申请人
+     */
+    private String proposer;
+
+    /**
+     *申请时间
+     */
+    private String applicationtime;
+
 }