Explorar o código

设备之系统——消息提醒 V3.1 BUG
任务指派时,未考虑多选情况

hyq hai 1 ano
pai
achega
f0887c2d96

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

@@ -1,11 +1,10 @@
 package com.rongwei.bscommon.sys.service.impl;
-import cn.hutool.core.io.resource.ClassPathResource;
+
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.rongwei.bscommon.sys.dao.CommonDao;
 import com.rongwei.bscommon.sys.excel.EquLubricationTaskManagementTemplate;
 import com.rongwei.bscommon.sys.excel.EquMaintenanceTaskTemplate;
@@ -28,7 +27,6 @@ import com.rongwei.rwcommonentity.commonservers.domain.SysFileItemDo;
 import com.rongwei.safecommon.fegin.CXCommonFeginClient;
 import com.rongwei.safecommon.utils.CXCommonUtils;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,13 +35,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import static com.rongwei.safecommon.utils.SaveConstans.FileName.DEVICE_REPEATEDLY_FAILS_FILE_NAME;
 import static com.rongwei.safecommon.utils.SaveConstans.FileName.PLANNING_TASK_FILE_NAME;
 import static com.rongwei.safecommon.utils.SaveConstans.NotifyContent.*;
 import static com.rongwei.safecommon.utils.SaveConstans.NotifyTitle.*;
@@ -89,49 +85,54 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
     /**
      * 根据任务ID发送 提醒
      *
-     * @param id 保养任务ID
+     * @param ids 保养任务ID
      * @return {@link R}
      * @date 2024/1/18 17:16
      * @author shangmi
      */
     @Override
-    public R maintainCreateTaskNotify(String id) {
-        if (StringUtils.isBlank(id)) {
+    public R maintainCreateTaskNotify(String ids) {
+        if (StringUtils.isBlank(ids)) {
             log.info("任务ID为空");
             return R.ok();
         }
-        EquMaintenanceTaskDo maintenanceTaskDo = maintenanceTaskService.getById(id);
+        String[] idList = ids.split(",");
+        for (String id : idList) {
 
-        if (null == maintenanceTaskDo) {
-            log.info("无法通过id:{}获取到任务列表", id);
-            return R.ok();
-        }
 
-        // 发送人
-        List<String> userId = new ArrayList<>();
-        if (maintenanceTaskDo.getPrincipalid() != null) {
-            userId.addAll(Arrays.asList(maintenanceTaskDo.getPrincipalid().split(",")));
-        }
-        if (maintenanceTaskDo.getOtherengineersid() != null) {
-            userId.addAll(Arrays.asList(maintenanceTaskDo.getOtherengineersid().split(",")));
-        }
+            EquMaintenanceTaskDo maintenanceTaskDo = maintenanceTaskService.getById(id);
 
-        if (userId.isEmpty()) {
-            log.info("id为{}的任务无提醒人", id);
-            return R.ok();
-        }
-        // 发送标题
-        String title = MAINTAIN_SYSTEM_TITLE;
-        // 发送内容
-        String context = String.format(MAINTAIN_SYSTEM_CONTENT, maintenanceTaskDo.getPlanyear() + "-" + maintenanceTaskDo.getMonth(),
-                maintenanceTaskDo.getWorkshop(), maintenanceTaskDo.getEquipmentname(), maintenanceTaskDo.getEquipmentnumber(),
-                maintenanceTaskDo.getMaintenancesite(), maintenanceTaskDo.getPrincipal(), maintenanceTaskDo.getOtherengineers());
-        //删除提醒
-        CXCommonUtils.deleteSendNotify("maintain", id);
+            if (null == maintenanceTaskDo) {
+                log.info("无法通过id:{}获取到任务列表", id);
+                return R.ok();
+            }
+
+            // 发送人
+            List<String> userId = new ArrayList<>();
+            if (maintenanceTaskDo.getPrincipalid() != null) {
+                userId.addAll(Arrays.asList(maintenanceTaskDo.getPrincipalid().split(",")));
+            }
+            if (maintenanceTaskDo.getOtherengineersid() != null) {
+                userId.addAll(Arrays.asList(maintenanceTaskDo.getOtherengineersid().split(",")));
+            }
 
-        //发送提醒
-        CXCommonUtils.sendNotify(title, context, null, userId.stream().distinct().collect(Collectors.toList()),
-                maintenanceTaskDo.getId(), MAINTAIN, false);
+            if (userId.isEmpty()) {
+                log.info("id为{}的任务无提醒人", id);
+                return R.ok();
+            }
+            // 发送标题
+            String title = MAINTAIN_SYSTEM_TITLE;
+            // 发送内容
+            String context = String.format(MAINTAIN_SYSTEM_CONTENT, maintenanceTaskDo.getPlanyear() + "-" + maintenanceTaskDo.getMonth(),
+                    maintenanceTaskDo.getWorkshop(), maintenanceTaskDo.getEquipmentname(), maintenanceTaskDo.getEquipmentnumber(),
+                    maintenanceTaskDo.getMaintenancesite(), maintenanceTaskDo.getPrincipal(), maintenanceTaskDo.getOtherengineers());
+            // 删除提醒
+            CXCommonUtils.deleteSendNotify("maintain", id);
+
+            // 发送提醒
+            CXCommonUtils.sendNotify(title, context, null, userId.stream().distinct().collect(Collectors.toList()),
+                    maintenanceTaskDo.getId(), MAINTAIN, false);
+        }
         return R.ok();
     }
 
@@ -164,7 +165,7 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
                 maintenanceTaskDo.getMaintenancesite(), simpleDateFormat.format(maintenanceTaskDo.getTaskendtime()), maintenanceTaskDo.getPrincipal(),
                 maintenanceTaskDo.getOtherengineers());
 
-        //删除提醒
+        // 删除提醒
         CXCommonUtils.deleteSendNotify("maintain", id);
 
         CXCommonUtils.sendNotify(ACCEPTANCE_SYSTEM_TITLE, context, null, userId.stream().distinct().collect(Collectors.toList()),
@@ -214,18 +215,18 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
     }
 
     @Override
-    public void sendPlanningTasksNotify(String planyear, String belongfactory, Integer taskquantity, String taskId,List<String> userId,String fileItemId) {
+    public void sendPlanningTasksNotify(String planyear, String belongfactory, Integer taskquantity, String taskId, List<String> userId, String fileItemId) {
         String notifyId = SecurityUtil.getUUID();
-        String formatFileNameAndId = PLANNING_TASK_FILE_NAME+"-;-"+fileItemId;
+        String formatFileNameAndId = PLANNING_TASK_FILE_NAME + "-;-" + fileItemId;
         CXCommonUtils.deleteSendNotify("mobilePlanningTask", null);
         // 发送消息提醒
-        CXCommonUtils.sendNotify(notifyId,PLANNING_TASK_TITLE,
-                String.format(PLANNING_TASK_CONTENT, planyear, belongfactory, taskquantity),formatFileNameAndId
+        CXCommonUtils.sendNotify(notifyId, PLANNING_TASK_TITLE,
+                String.format(PLANNING_TASK_CONTENT, planyear, belongfactory, taskquantity), formatFileNameAndId
                 , userId.stream().distinct().collect(Collectors.toList()), taskId, MOBILE_PLANNING_TASK, true);
         SysFileItemDo sysFileItemDo = new SysFileItemDo();
         sysFileItemDo.setId(fileItemId);
         sysFileItemDo.setRelationid(notifyId);
-        sysFileItemDo.setFilename(StringUtil.insertSpecificCharacter(PLANNING_TASK_FILE_NAME,TimeUtils.formatDayNumeral(new Date())));
+        sysFileItemDo.setFilename(StringUtil.insertSpecificCharacter(PLANNING_TASK_FILE_NAME, TimeUtils.formatDayNumeral(new Date())));
         sysFileItemDo.setModifydate(new Date());
         sysFileItemDo.setModifyusername("系统操作");
         sysFileItemDo.setModifyuserid("0");
@@ -271,7 +272,6 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
     }
 
 
-
     /**
      * 故障停机提醒
      *
@@ -318,7 +318,7 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
      */
     @Override
     public R deviceRepeatedlyFailsNotify() {
-        //查询维修单汇总数据:根据故障发生时间自动查询每个工厂近3个月内 (以本月在往前倒推三个月至当前时间)所有
+        // 查询维修单汇总数据:根据故障发生时间自动查询每个工厂近3个月内 (以本月在往前倒推三个月至当前时间)所有
         // 除去 无需维修、已关闭  且  维修对象分类 为 档案设备、工装 的 维修任务记录中,
         // 然后根据所属工厂、设备类型、发生部位 分组查询对应分组类型的 数量记录 中 > 1的记录
         List<EquMaintenanceOrderSumDTO> list = equMaintenanceOrderService.selectOrderSummaryData();
@@ -326,12 +326,12 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
             log.info("记录为空,则不生成附件,也不生成提醒信息");
             return R.ok();
         }
-        //消息提醒id
+        // 消息提醒id
         String noticeId = SecurityUtil.getUUID();
-        //生成附件返回对象
+        // 生成附件返回对象
         String fileNameAndId = equMaintenanceOrderService.generateDeviceRepeatedlyFailsExcel(list, noticeId);
 
-        //3.消息提醒
+        // 3.消息提醒
         // 3.1发送人  取车间维修主管、设备部部长、设备部维修主管 角色中所有人员
         List<String> userId = equMaintenanceOrderService.selectRoleList();
         if (userId.isEmpty()) {
@@ -347,55 +347,53 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
     }
 
 
-
     /**
      * 保养/润滑跨月未完成提醒
      *
      * @return {@link R}
      * @date 2024/1/30 15:08
      * @author shangmi
-     *
      */
     @Override
     public R previousUnfinishedTaskNotify() {
-        //时间处理
+        // 时间处理
         Calendar calendar = Calendar.getInstance();
         Date date = new Date();
         calendar.setTime(date);
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         String newDate = simpleDateFormat.format(date);
-        calendar.set(Calendar.MONTH,-12);
+        calendar.set(Calendar.MONTH, -12);
         String oldDate = simpleDateFormat.format(calendar.getTime());
-        //查询距近一年时间内未完成保养/润滑任务
-        List<EquMaintenanceTaskDo> maintenanceTaskDoList =  maintenanceTaskService.getListByTimeQuantum(newDate,oldDate);
+        // 查询距近一年时间内未完成保养/润滑任务
+        List<EquMaintenanceTaskDo> maintenanceTaskDoList = maintenanceTaskService.getListByTimeQuantum(newDate, oldDate);
         List<EquLubricationTaskManagementDo> lubricationTaskManagementDoList = equLubricationTaskManagementService
-                .getListByTimeQuantum(newDate,oldDate);
-        if (maintenanceTaskDoList.size()+lubricationTaskManagementDoList.size()==0){
+                .getListByTimeQuantum(newDate, oldDate);
+        if (maintenanceTaskDoList.size() + lubricationTaskManagementDoList.size() == 0) {
             return R.ok();
         }
         List<String> lubricationIds = lubricationTaskManagementDoList.stream().map(EquLubricationTaskManagementDo::getId).collect(Collectors.toList());
         List<EquLubricationTaskDetailDo> lubricationTaskDetailDoList = lubricationTaskDetailService.getDetailByMasterId(lubricationIds);
 
-        //删除提醒
-        CXCommonUtils.deleteSendNotify(PREVIOUS_UNFINISHED_TASK,null);
-        //遍历三个工厂 分别给每个工厂发送提醒
-        for (PlantEnum plantEnum : PlantEnum.values()){
+        // 删除提醒
+        CXCommonUtils.deleteSendNotify(PREVIOUS_UNFINISHED_TASK, null);
+        // 遍历三个工厂 分别给每个工厂发送提醒
+        for (PlantEnum plantEnum : PlantEnum.values()) {
             ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
             // String fileUrl="E:\\Desktop\\test.xlsx";
             String plantId = plantEnum.getId();
-            //赛选出该工厂保养任务信息
+            // 赛选出该工厂保养任务信息
             List<EquMaintenanceTaskDo> maintenanceTaskList = maintenanceTaskDoList.stream()
                     .filter(info -> info.getTenantid().equals(plantId)).collect(Collectors.toList());
-            //赛选出该工厂润滑任务信息
+            // 赛选出该工厂润滑任务信息
             List<EquLubricationTaskManagementDo> lubricationTaskManagementList = lubricationTaskManagementDoList.stream()
                     .filter(info -> plantId.equals(info.getTenantid())).collect(Collectors.toList());
-            //赛选出该工厂下的润滑任务信息
+            // 赛选出该工厂下的润滑任务信息
             List<EquLubricationTaskDetailDo> lubricationTaskDetailList = lubricationTaskDetailDoList.stream()
                     .filter(info -> plantId.equals(info.getTenantid())).collect(Collectors.toList());
-            if (maintenanceTaskList.size()+lubricationTaskDetailList.size()==0){
+            if (maintenanceTaskList.size() + lubricationTaskDetailList.size() == 0) {
                 continue;
             }
-            List<String> userIdList = extractUsersByTask(maintenanceTaskList, lubricationTaskManagementList,plantId);
+            List<String> userIdList = extractUsersByTask(maintenanceTaskList, lubricationTaskManagementList, plantId);
             // 发送内容
             String context = String.format(PREVIOUS_UNFINISHED_TASK_CONTENT,
                     plantEnum.getName(),
@@ -403,30 +401,32 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
                     lubricationTaskDetailList.size());
 
             ExcelWriter excelWriter = EasyExcel.write(byteArrayOutputStream).build();
+            // ExcelWriter excelWriter = EasyExcel.write(fileUrl).build();
 
             List<EquMaintenanceTaskTemplate> equMaintenanceTaskTemplates = maintainDeriveDate(plantEnum, maintenanceTaskList);
-            List<EquLubricationTaskManagementTemplate> lubricationTaskManagementTemplates = lubricationDeriveDate(plantEnum,lubricationTaskManagementList,lubricationTaskDetailList);
-            generateExcel(excelWriter,equMaintenanceTaskTemplates,lubricationTaskManagementTemplates,Boolean.TRUE);
+            List<EquLubricationTaskManagementTemplate> lubricationTaskManagementTemplates = lubricationDeriveDate(plantEnum, lubricationTaskManagementList, lubricationTaskDetailList);
+            generateExcel(excelWriter, equMaintenanceTaskTemplates, lubricationTaskManagementTemplates, Boolean.TRUE);
 
             excelWriter.finish();
 
             byte[] byteArray = byteArrayOutputStream.toByteArray();
 
-            MultipartFile multipartFile = new MockMultipartFile("file", newDate+"-保养/润滑跨月未完成.xlsx"  , "application/vnd.ms-excel", byteArray);
+            MultipartFile multipartFile = new MockMultipartFile("file", newDate + "-保养/润滑跨月未完成.xlsx", "application/vnd.ms-excel", byteArray);
 
-            //消息提醒id
+            // 消息提醒id
             String noticeId = SecurityUtil.getUUID();
 
-            R upload = CXCommonUtils.upload(multipartFile,noticeId);
+            R upload = CXCommonUtils.upload(multipartFile, noticeId);
             String fileItemId = "";
-            if ("200".equals(upload.getCode())){
+            if ("200".equals(upload.getCode())) {
                 JSONObject jsonObject = JSONUtil.parseObj(upload.getData());
                 // Map<String,String> map = (Map<String, String>) JSON.parse(upload.getData().toString());
-                fileItemId =jsonObject.get("filename").toString() + "-;-" + jsonObject.get("id").toString();;
+                fileItemId = jsonObject.get("filename").toString() + "-;-" + jsonObject.get("id").toString();
+                ;
             }
 
 
-            CXCommonUtils.sendNotify(noticeId,PREVIOUS_UNFINISHED_TASK_TITLE, context,plantId , userIdList.stream().distinct().collect(Collectors.toList()),
+            CXCommonUtils.sendNotify(noticeId, PREVIOUS_UNFINISHED_TASK_TITLE, context, plantId, userIdList.stream().distinct().collect(Collectors.toList()),
                     fileItemId, PREVIOUS_UNFINISHED_TASK, true);
         }
 
@@ -436,44 +436,44 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
     @Override
     public R endUnfinishedTaskNotify() {
 
-        //时间处理
+        // 时间处理
         Calendar calendar = Calendar.getInstance();
         Date date = new Date();
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         calendar.setTime(date);
         String newDate = simpleDateFormat.format(date);
         // int sky = calendar.get(Calendar.DAY_OF_MONTH)-1;
-        calendar.set(Calendar.DAY_OF_MONTH,1);
+        calendar.set(Calendar.DAY_OF_MONTH, 1);
         String oldDate = simpleDateFormat.format(calendar.getTime());
-        //查询距近一年时间内未完成保养/润滑任务
-        List<EquMaintenanceTaskDo> maintenanceTaskDoList =  maintenanceTaskService.getListByTimeQuantum(newDate,oldDate);
+        // 查询距近一年时间内未完成保养/润滑任务
+        List<EquMaintenanceTaskDo> maintenanceTaskDoList = maintenanceTaskService.getListByTimeQuantum(newDate, oldDate);
         List<EquLubricationTaskManagementDo> lubricationTaskManagementDoList = equLubricationTaskManagementService
-                .getListByTimeQuantum(newDate,oldDate);
-        if (maintenanceTaskDoList.size()+lubricationTaskManagementDoList.size()==0){
+                .getListByTimeQuantum(newDate, oldDate);
+        if (maintenanceTaskDoList.size() + lubricationTaskManagementDoList.size() == 0) {
             return R.ok();
         }
         List<String> lubricationIds = lubricationTaskManagementDoList.stream().map(EquLubricationTaskManagementDo::getId).collect(Collectors.toList());
         List<EquLubricationTaskDetailDo> lubricationTaskDetailDoList = lubricationTaskDetailService.getDetailByMasterId(lubricationIds);
-        //删除提醒
-        CXCommonUtils.deleteSendNotify(END_UNFINISHED_TASK,null);
-        //遍历三个工厂 分别给每个工厂发送提醒
-        for (PlantEnum plantEnum : PlantEnum.values()){
+        // 删除提醒
+        CXCommonUtils.deleteSendNotify(END_UNFINISHED_TASK, null);
+        // 遍历三个工厂 分别给每个工厂发送提醒
+        for (PlantEnum plantEnum : PlantEnum.values()) {
             ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
             // String fileUrl="E:\\Desktop\\test.xlsx";
             String plantId = plantEnum.getId();
-            //赛选出该工厂保养任务信息
+            // 赛选出该工厂保养任务信息
             List<EquMaintenanceTaskDo> maintenanceTaskList = maintenanceTaskDoList.stream()
                     .filter(info -> info.getTenantid().equals(plantId)).collect(Collectors.toList());
-            //赛选出该工厂润滑任务信息
+            // 赛选出该工厂润滑任务信息
             List<EquLubricationTaskManagementDo> lubricationTaskManagementList = lubricationTaskManagementDoList.stream()
                     .filter(info -> plantId.equals(info.getTenantid())).collect(Collectors.toList());
-            //赛选出该工厂下的润滑任务信息
+            // 赛选出该工厂下的润滑任务信息
             List<EquLubricationTaskDetailDo> lubricationTaskDetailList = lubricationTaskDetailDoList.stream()
                     .filter(info -> plantId.equals(info.getTenantid())).collect(Collectors.toList());
-            if (maintenanceTaskList.size()+lubricationTaskDetailList.size()==0){
+            if (maintenanceTaskList.size() + lubricationTaskDetailList.size() == 0) {
                 continue;
             }
-            List<String> userIdList = extractUsersByTask(maintenanceTaskList, lubricationTaskManagementList,plantId);
+            List<String> userIdList = extractUsersByTask(maintenanceTaskList, lubricationTaskManagementList, plantId);
             // 发送内容
             String context = String.format(END_UNFINISHED_TASK_CONTENT,
                     newDate,
@@ -484,25 +484,26 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
             ExcelWriter excelWriter = EasyExcel.write(byteArrayOutputStream).build();
 
             List<EquMaintenanceTaskTemplate> equMaintenanceTaskTemplates = maintainDeriveDate(plantEnum, maintenanceTaskList);
-            List<EquLubricationTaskManagementTemplate> lubricationTaskManagementTemplates = lubricationDeriveDate(plantEnum,lubricationTaskManagementList,lubricationTaskDetailList);
-            generateExcel(excelWriter,equMaintenanceTaskTemplates,lubricationTaskManagementTemplates,Boolean.TRUE);
+            List<EquLubricationTaskManagementTemplate> lubricationTaskManagementTemplates = lubricationDeriveDate(plantEnum, lubricationTaskManagementList, lubricationTaskDetailList);
+            generateExcel(excelWriter, equMaintenanceTaskTemplates, lubricationTaskManagementTemplates, Boolean.TRUE);
 
             excelWriter.finish();
 
             byte[] byteArray = byteArrayOutputStream.toByteArray();
 
-            MultipartFile multipartFile = new MockMultipartFile("file", newDate+"-保养/润滑月末未完成.xlsx"  , "application/vnd.ms-excel", byteArray);
+            MultipartFile multipartFile = new MockMultipartFile("file", newDate + "-保养/润滑月末未完成.xlsx", "application/vnd.ms-excel", byteArray);
 
-            //消息提醒id
+            // 消息提醒id
             String noticeId = SecurityUtil.getUUID();
 
-            R upload = CXCommonUtils.upload(multipartFile,noticeId);
+            R upload = CXCommonUtils.upload(multipartFile, noticeId);
             String fileItemId = "";
-            if ("200".equals(upload.getCode())){
+            if ("200".equals(upload.getCode())) {
                 JSONObject jsonObject = JSONUtil.parseObj(upload.getData());
-                fileItemId =jsonObject.get("filename").toString() + "-;-" + jsonObject.get("id").toString();;
+                fileItemId = jsonObject.get("filename").toString() + "-;-" + jsonObject.get("id").toString();
+                ;
             }
-            CXCommonUtils.sendNotify(noticeId,END_UNFINISHED_TASK_TITLE, context, plantId, userIdList.stream().distinct().collect(Collectors.toList()),
+            CXCommonUtils.sendNotify(noticeId, END_UNFINISHED_TASK_TITLE, context, plantId, userIdList.stream().distinct().collect(Collectors.toList()),
                     fileItemId, END_UNFINISHED_TASK, true);
         }
 
@@ -510,48 +511,45 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
     }
 
 
-
-
     /**
      * 润滑任务导出数据迁移
      *
-     * @param plantEnum 工厂
+     * @param plantEnum                     工厂
      * @param lubricationTaskManagementList 润滑主表
-     * @param lubricationTaskDetailList 润滑明细(部位)
+     * @param lubricationTaskDetailList     润滑明细(部位)
      * @return {@link List<EquLubricationTaskManagementTemplate>}
      * @date 2024/1/31 16:55
      * @author shangmi
-     *
      */
 
     private List<EquLubricationTaskManagementTemplate> lubricationDeriveDate(
             PlantEnum plantEnum,
             List<EquLubricationTaskManagementDo> lubricationTaskManagementList,
             List<EquLubricationTaskDetailDo> lubricationTaskDetailList) {
-        //模板数据
+        // 模板数据
         List<EquLubricationTaskManagementTemplate> equLubricationTaskManagementTemplates = new ArrayList<>();
-        //遍历主表
-        for (EquLubricationTaskManagementDo lubricationTaskManagementDo : lubricationTaskManagementList){
+        // 遍历主表
+        for (EquLubricationTaskManagementDo lubricationTaskManagementDo : lubricationTaskManagementList) {
             List<EquLubricationTaskDetailDo> lubricationTaskDetailDoList = lubricationTaskDetailList.stream()
                     .filter(info -> lubricationTaskManagementDo.getId().equals(info.getMasterid())).collect(Collectors.toList());
             String[] split = lubricationTaskManagementDo.getTaskfrequency().split(",");
             StringBuilder taskfrequency = new StringBuilder();
-            //遍历润滑周期
+            // 遍历润滑周期
             for (int i = 0; i < split.length; i++) {
                 taskfrequency.append(LubricationFrequencyEnum.massageOf(split[i]));
-                if (i!=split.length-1){
+                if (i != split.length - 1) {
                     taskfrequency.append(',');
                 }
             }
 
             equLubricationTaskManagementTemplates.addAll(
-                    //遍历子表转移数据
-                    lubricationTaskDetailDoList.stream().map(info ->{
+                    // 遍历子表转移数据
+                    lubricationTaskDetailDoList.stream().map(info -> {
                         EquLubricationTaskManagementTemplate lubricationTaskTemplate = new EquLubricationTaskManagementTemplate();
-                        BeanUtils.copyProperties(lubricationTaskManagementDo,lubricationTaskTemplate);
-                        BeanUtils.copyProperties(info,lubricationTaskTemplate);
+                        BeanUtils.copyProperties(lubricationTaskManagementDo, lubricationTaskTemplate);
+                        BeanUtils.copyProperties(info, lubricationTaskTemplate);
                         lubricationTaskTemplate.setPlant(PlantEnum.nameOf(plantEnum.getId()));
-                        lubricationTaskTemplate.setIslubricationcompleted("y".equals(info.getIslubricationcompleted())?"是":"否");
+                        lubricationTaskTemplate.setIslubricationcompleted("y".equals(info.getIslubricationcompleted()) ? "是" : "否");
                         lubricationTaskTemplate.setFrequency(taskfrequency.toString());
                         return lubricationTaskTemplate;
                     }).collect(Collectors.toList())
@@ -563,32 +561,31 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
     /**
      * 获得提醒用户ID
      *
-     * @param maintenanceTaskList               保养任务
-     * @param lubricationTaskManagementList     润滑任务
+     * @param maintenanceTaskList           保养任务
+     * @param lubricationTaskManagementList 润滑任务
      * @return {@link List<String>}
      * @date 2024/1/31 11:32
      * @author shangmi
-     *
      */
 
     public List<String> extractUsersByTask(List<EquMaintenanceTaskDo> maintenanceTaskList,
                                            List<EquLubricationTaskManagementDo> lubricationTaskManagementList,
-                                           String plantId){
+                                           String plantId) {
 
-        //车间ID
+        // 车间ID
         StringBuilder stringBuilder = new StringBuilder();
-        //赛选出所以车间 并去重
+        // 赛选出所以车间 并去重
         List<String> workshops = Stream.concat(maintenanceTaskList.stream().map(EquMaintenanceTaskDo::getWorkshopid),
                         lubricationTaskManagementList.stream().map(EquLubricationTaskManagementDo::getEquipmentworkshopid))
                 .distinct().collect(Collectors.toList());
-        //拼接车间信息
+        // 拼接车间信息
         for (int i = 0; i < workshops.size(); i++) {
             stringBuilder.append("'").append(workshops.get(i)).append("'");
-            if (i!= workshops.size()-1){
+            if (i != workshops.size() - 1) {
                 stringBuilder.append(",");
             }
         }
-        //需接收提醒用户ID
+        // 需接收提醒用户ID
         List<String> userIds = commonDao.getRoleUserIds(
                 "'车间主任','车间保养主管'", "so.ID IN (" + stringBuilder + ")"
         );
@@ -605,44 +602,42 @@ public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyServic
     /**
      * 为sheep页塞数据
      *
-     * @param excelWriter 表格
+     * @param excelWriter                        表格
      * @param equMaintenanceTaskTemplates
      * @param lubricationTaskManagementTemplates
      * @return
      * @date 2024/1/31 16:58
      * @author shangmi
-     *
      */
 
     public void generateExcel(
             ExcelWriter excelWriter,
             List<EquMaintenanceTaskTemplate> equMaintenanceTaskTemplates,
             List<EquLubricationTaskManagementTemplate> lubricationTaskManagementTemplates,
-            Boolean isTrue){
+            Boolean isTrue) {
 
-        WriteSheet maintainSheet = EasyExcel.writerSheet(0, isTrue?"保养任务跨月未完成":"保养任务月末未完成")
+        WriteSheet maintainSheet = EasyExcel.writerSheet(0, isTrue ? "保养任务跨月未完成" : "保养任务月末未完成")
                 .head(EquMaintenanceTaskTemplate.class).build();
-        WriteSheet lubricationSheet = EasyExcel.writerSheet(1, isTrue?"润滑任务跨月未完成":"润滑任务月末未完成")
+        WriteSheet lubricationSheet = EasyExcel.writerSheet(1, isTrue ? "润滑任务跨月未完成" : "润滑任务月末未完成")
                 .head(EquLubricationTaskManagementTemplate.class).build();
-        excelWriter.write(equMaintenanceTaskTemplates,maintainSheet);
-        excelWriter.write(lubricationTaskManagementTemplates,lubricationSheet);
+        excelWriter.write(equMaintenanceTaskTemplates, maintainSheet);
+        excelWriter.write(lubricationTaskManagementTemplates, lubricationSheet);
     }
 
     /**
      * 保养任务导出数据迁移
      *
-     * @param plantEnum 工厂枚举
+     * @param plantEnum           工厂枚举
      * @param maintenanceTaskList 任务数据
      * @return {@link List<EquMaintenanceTaskTemplate>}
      * @date 2024/1/31 15:49
      * @author shangmi
-     *
      */
 
-    public List<EquMaintenanceTaskTemplate> maintainDeriveDate(PlantEnum plantEnum, List<EquMaintenanceTaskDo> maintenanceTaskList){
-        return maintenanceTaskList.stream().map(info ->{
+    public List<EquMaintenanceTaskTemplate> maintainDeriveDate(PlantEnum plantEnum, List<EquMaintenanceTaskDo> maintenanceTaskList) {
+        return maintenanceTaskList.stream().map(info -> {
             EquMaintenanceTaskTemplate equMaintenanceTaskTemplate = new EquMaintenanceTaskTemplate();
-            BeanUtils.copyProperties(info,equMaintenanceTaskTemplate);
+            BeanUtils.copyProperties(info, equMaintenanceTaskTemplate);
 
             equMaintenanceTaskTemplate.setPlant(plantEnum.getName());
             equMaintenanceTaskTemplate.setMaintenancetype(MaintenanceTypeEnum.messageOf(info.getMaintenancetype()));

+ 3 - 0
cx-equipment/cx-equipment-server/src/main/java/com/rongwei/bsserver/sys/controller/EquipmentSendNotifyController.java

@@ -6,6 +6,7 @@ import com.rongwei.bsentity.dto.IdGeneralDTO;
 import com.rongwei.rwcommon.base.R;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -142,6 +143,7 @@ public class EquipmentSendNotifyController {
      * @date 2024/1/30 15:08
      * @author shangmi
      */
+    @Scheduled(cron = "0 0 4 * * 1,3 ")
     @PostMapping("/previousUnfinishedTaskNotify")
     public R previousUnfinishedTaskNotify() {
         try {
@@ -161,6 +163,7 @@ public class EquipmentSendNotifyController {
      * @date 2024/1/30 15:08
      * @author shangmi
      */
+    @Scheduled(cron = "0 10 4 25/1 * ? ")
     @PostMapping("/endUnfinishedTaskNotify")
     public R endUnfinishedTaskNotify() {
         try {

+ 1 - 1
cx-equipment/cx-equipment-server/src/main/java/com/rongwei/bsserver/sys/controller/MaintenanceController.java

@@ -78,7 +78,7 @@ public class MaintenanceController {
      *
      */
 
-    @Scheduled(cron = "0 0 22 10/1 * *")
+    @Scheduled(cron = "0 0 22 28/1 * *")
     @PostMapping("batchSavePlansTiming")
     public R batchSavePlansTiming(){
         try {