2 次代碼提交 5bf7b433fd ... 38dc9c6567

作者 SHA1 備註 提交日期
  hyq 38dc9c6567 设备之系统——消息提醒 V1.0 1 年之前
  hyq 132c0c318b 设备之系统——服务 BUG 1 年之前

+ 6 - 2
bs-common/src/main/java/com/rongwei/safecommon/config/BsMetaObjectHandler.java

@@ -11,15 +11,19 @@ import org.apache.ibatis.reflection.MetaObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Component;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.*;
-import java.util.stream.Collectors;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 @Component
+@Primary
 public class BsMetaObjectHandler implements MetaObjectHandler {
 
     private static final Logger logger = LoggerFactory.getLogger(BsMetaObjectHandler.class);

+ 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";
     }
 }

+ 6 - 0
cx-equipment/cx-equipment-common/pom.xml

@@ -78,5 +78,11 @@
             <artifactId>easypoi-annotation</artifactId>
             <version>4.3.0</version>
         </dependency>
+        <dependency>
+            <groupId>com.rongwei</groupId>
+            <artifactId>bs-common</artifactId>
+            <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 </project>

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

@@ -1,7 +0,0 @@
-package com.rongwei.bscommon.sys.dao;
-
-import com.rongwei.rwadmincommon.system.domain.PagePartDo;
-import com.rongwei.rwcommon.base.BaseDao;
-
-public interface PagePartDao extends BaseDao<PagePartDo> {
-}

+ 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);
+}

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

@@ -1,10 +0,0 @@
-package com.rongwei.bscommon.sys.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.rongwei.rwadmincommon.system.domain.PagePartDo;
-
-/**
- * @author zdz
- */
-public interface PagePartService extends IService<PagePartDo> {
-}

+ 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();
+    }
+}
+

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

@@ -1,16 +0,0 @@
-package com.rongwei.bscommon.sys.service.impl;
-
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-import com.rongwei.bscommon.sys.dao.PagePartDao;
-import com.rongwei.bscommon.sys.service.PagePartService;
-import com.rongwei.rwadmincommon.system.domain.PagePartDo;
-import org.springframework.stereotype.Service;
-
-/**
- * @author zhou
- */
-@Service("pagePartService")
-public class PagePartServiceImpl extends ServiceImpl<PagePartDao, PagePartDo> implements PagePartService {
-}

+ 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());
+        }
+
+    };
+
+}