Kaynağa Gözat

设备之系统——消息提醒 V1.0
根据任务ID发送消息提醒

hyq 1 yıl önce
ebeveyn
işleme
38dc9c6567

+ 13 - 4
bs-common/src/main/java/com/rongwei/safecommon/fegin/CXCommonFeginClient.java

@@ -3,12 +3,15 @@ package com.rongwei.safecommon.fegin;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.vo.MailDo;
 import com.rongwei.rwcommonentity.commonservers.vo.SysNotifyAnnounceVo;
-import org.apache.ibatis.annotations.Param;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.http.MediaType;
 import org.springframework.scheduling.annotation.Async;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+import java.util.Map;
 
 @FeignClient(value = "rw-common-server",fallback = CXHysitx.class,contextId = "commonFeign")
 public interface CXCommonFeginClient {
@@ -21,4 +24,10 @@ public interface CXCommonFeginClient {
 
     @PostMapping("ws/socket/push/app")
     R pushToWeb(@RequestParam String cid, @RequestParam(required = false) String message);
+
+    @RequestMapping("sys/sysnotifyannounce/list")
+    R list(@RequestParam Map<String, Object> params);
+
+    @PostMapping("sys/sysnotifyannounce/delete")
+    R delete(@RequestBody List<String> ids);
 }

+ 15 - 1
bs-common/src/main/java/com/rongwei/safecommon/fegin/CXHysitx.java

@@ -6,7 +6,9 @@ import com.rongwei.rwcommonentity.commonservers.vo.SysNotifyAnnounceVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
-import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * Hysitx class
@@ -34,4 +36,16 @@ public class CXHysitx implements CXCommonFeginClient {
         log.error("发送websocket通知失败!通知内容为:{}", message);
         return R.error();
     }
+
+    @Override
+    public R list(Map<String, Object> params) {
+        log.error("查询提醒失败,数据为{}",params);
+        return R.error();
+    }
+
+    @Override
+    public R delete(List<String> ids) {
+        log.error("删除提醒失败,数据为{}",ids);
+        return R.error();
+    }
 }

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

@@ -124,6 +124,11 @@ public class SaveConstans {
          * 点巡检
          */
         public static final String INSPECTION = "inspection";
+
+        /**
+         * 保养检修
+         */
+        public static final String MAINTAIN = "maintain";
     }
 
     public static class NotifyTitle {
@@ -179,6 +184,11 @@ public class SaveConstans {
          * 隐患跟踪任务确认提醒标题
          */
         public static final String AFFIRM_MAIL_TITLE = "隐患跟踪任务确认提醒";
+        /**
+         * 保养检修工单提醒标题
+         */
+        public static final String MAINTAIN_SYSTEM_TITLE = "保养任务";
+
 
     }
 
@@ -233,5 +243,9 @@ public class SaveConstans {
          * 点巡检任务提醒
          */
         public static final String INSPECTION_CONTENT = "%s的%s任务请及时完成";
+        /**
+         * 保养检修工单提醒内容
+         */
+        public static final String MAINTAIN_SYSTEM_CONTENT = "请及时执行%s的%s的%s( %s )-%s的保养任务并登记保养结果,负责人:%s,其他保养工程师:%s";
     }
 }

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

@@ -0,0 +1,22 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.rongwei.rwcommon.base.R;
+
+/**
+ * @author shangmi
+ * @title EquipmentSendNotifyService
+ * @date 2024/1/18 17:19
+ * @description 消息提醒业务类
+ */
+public interface EquipmentSendNotifyService {
+    /**
+     * 根据任务ID发送 提醒
+     *
+     * @param id 保养任务ID
+     * @return {@link R}
+     * @date 2024/1/18 17:16
+     * @author shangmi
+     *
+     */
+    R maintainCreateTaskNotify(String id);
+}

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

@@ -0,0 +1,105 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONUtil;
+import com.rongwei.bscommon.sys.service.EquMaintenanceTaskService;
+import com.rongwei.bscommon.sys.service.EquipmentSendNotifyService;
+import com.rongwei.bsentity.domain.EquMaintenanceTaskDo;
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.safecommon.fegin.CXCommonFeginClient;
+import com.rongwei.safecommon.utils.CXCommonUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static com.rongwei.safecommon.utils.SaveConstans.NotifyContent.MAINTAIN_SYSTEM_CONTENT;
+import static com.rongwei.safecommon.utils.SaveConstans.NotifyTitle.MAINTAIN_SYSTEM_TITLE;
+import static com.rongwei.safecommon.utils.SaveConstans.NotifyType.MAINTAIN;
+
+/**
+ * @author shangmi
+ * @title EquipmentSendNotifyServiceImpl
+ * @date 2024/1/18 17:20
+ * @description 设备消息提醒业务实现类
+ */
+@Service
+@Slf4j
+public class EquipmentSendNotifyServiceImpl implements EquipmentSendNotifyService {
+
+    @Autowired
+    private EquMaintenanceTaskService maintenanceTaskService;
+
+    @Autowired
+    private CXCommonFeginClient commonFeginClient;
+
+    /**
+     * 根据任务ID发送 提醒
+     *
+     * @param id 保养任务ID
+     * @return {@link R}
+     * @date 2024/1/18 17:16
+     * @author shangmi
+     */
+    @Override
+    public R maintainCreateTaskNotify(String id) {
+        if (StringUtils.isBlank(id)) {
+            log.info("任务ID为空");
+            return R.ok();
+        }
+        EquMaintenanceTaskDo maintenanceTaskDo = maintenanceTaskService.getById(id);
+
+        if (null == maintenanceTaskDo) {
+            log.info("无法通过id:{}获取到任务列表", id);
+            return R.ok();
+        }
+
+        // 发送人
+        List<String> userId = new ArrayList<>();
+        // 发送内容
+        String context = null;
+        // 发送标题
+        String title = null;
+        if (maintenanceTaskDo.getPrincipalid() != null){
+            userId.addAll(Arrays.asList(maintenanceTaskDo.getPrincipalid().split(",")));
+        }
+        if (maintenanceTaskDo.getOtherengineersid() != null){
+            userId.addAll(Arrays.asList(maintenanceTaskDo.getOtherengineersid().split(",")));
+        }
+
+        if (userId.isEmpty()){
+            log.info("id为{}的任务无提醒人",id);
+            return R.ok();
+        }
+        title = MAINTAIN_SYSTEM_TITLE;
+        context = String.format(MAINTAIN_SYSTEM_CONTENT,
+                maintenanceTaskDo.getPlanyear()+"-"+maintenanceTaskDo.getMonth(),
+                maintenanceTaskDo.getWorkshop(),
+                maintenanceTaskDo.getEquipmentname(),
+                maintenanceTaskDo.getEquipmentnumber(),
+                maintenanceTaskDo.getMaintenancesite(),
+                maintenanceTaskDo.getPrincipal(),
+                maintenanceTaskDo.getOtherengineers()
+                );
+
+        JSONArray data = JSONUtil.parseArray( commonFeginClient.list(new HashMap<String, Object>() {{
+            this.put("NOTIFYTYPE", "maintain");
+            this.put("ROPTION", id);
+        }}).getData());
+        if (!data.isEmpty()){
+            List<String> ids = data.stream().map(info -> JSONUtil.parseObj(info).get("id").toString()).collect(Collectors.toList());
+            commonFeginClient.delete(ids);
+        }
+
+        CXCommonUtils.sendNotify(title,
+                context,null,userId.stream().distinct().collect(Collectors.toList()),maintenanceTaskDo.getId(),MAINTAIN);
+        return R.ok();
+    }
+}
+

+ 1 - 1
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/utils/BusinessExcelUtil.java

@@ -4,8 +4,8 @@ import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.rongwei.bscommon.sys.dao.CommonDao;
-import com.rongwei.bscommon.sys.service.PagePartService;
 import com.rongwei.rwadmincommon.system.domain.PagePartDo;
+import com.rongwei.rwadmincommon.system.service.PagePartService;
 import lombok.SneakyThrows;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;

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

@@ -26,7 +26,7 @@ public class EquipmentArchivesController {
     private EquipmentArchivesService archivesService;
 
     /**
-     * 更新设备库
+     * 处置申请后更新设备库
      *
      * @param equipmentDisposeDTO
      * @return {@link R}

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

@@ -0,0 +1,52 @@
+package com.rongwei.bsserver.sys.controller;
+
+import com.rongwei.bscommon.sys.service.EquipmentSendNotifyService;
+import com.rongwei.bscommon.sys.utils.ExceptionUtils;
+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.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author shangmi
+ * @title EquipmentSendNotifyController
+ * @date 2024/1/18 16:03
+ * @description 设备提醒
+ */
+@RestController
+@RequestMapping("/send-notify")
+@Slf4j
+public class EquipmentSendNotifyController {
+
+    @Autowired
+    private EquipmentSendNotifyService sendNotifyService;
+
+
+    /**
+     * 根据任务ID发送 提醒
+     *
+     * @param idGeneralDTO 保养任务ID
+     * @return {@link R}
+     * @date 2024/1/18 17:16
+     * @author shangmi
+     *
+     */
+
+    @PostMapping("/maintainCreateTaskNotify")
+    public R maintainCreateTaskNotify(@RequestBody IdGeneralDTO idGeneralDTO){
+        try {
+            log.info("进入接口:/send-notify/maintainCreateTaskNotify;入参为:{}",idGeneralDTO);
+            return sendNotifyService.maintainCreateTaskNotify(idGeneralDTO.getId());
+        }catch (Exception e){
+            ExceptionUtils.printExceptionDetail(e,"发送消息提醒失败,异常为:");
+            log.info(e.getMessage());
+            return R.error(e.getMessage());
+        }
+
+    };
+
+}