Bläddra i källkod

[bug-1919] 设备管理模块—设备检定校准到期提醒功能验证

Li Yuan 1 år sedan
förälder
incheckning
e5dc4c15cb

+ 40 - 24
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/DeviceToDoRemindJob.java

@@ -141,6 +141,7 @@ public class DeviceToDoRemindJob extends BaseJob2 {
     }
     }
 
 
     private void sendLeaders(String deptId,String subject ,String content,String roleString,String routeString,String leader){
     private void sendLeaders(String deptId,String subject ,String content,String roleString,String routeString,String leader){
+
         Map<String, Object> map2 = new HashMap<>();
         Map<String, Object> map2 = new HashMap<>();
         map2.put("skipTypeMsg","{\"skipType\": 3,\"pathInfo\": \""+routeString+"\"}");
         map2.put("skipTypeMsg","{\"skipType\": 3,\"pathInfo\": \""+routeString+"\"}");
 
 
@@ -159,6 +160,31 @@ public class DeviceToDoRemindJob extends BaseJob2 {
         }catch (Exception e){
         }catch (Exception e){
             diDian = path.split(StringPool.BACK_SLASH+StringPool.DOT)[0];
             diDian = path.split(StringPool.BACK_SLASH+StringPool.DOT)[0];
         }
         }
+
+        List<String> leadList = new ArrayList<>();
+        //获取科室相关负责人
+        if(StringUtils.isNotBlank(roleString)){
+            String sql3 = "SELECT ID_ " +
+                    "FROM IBPS_PARTY_EMPLOYEE C  " +
+                    "WHERE ID_  IN  " +
+                    "    (SELECT `ibps_party_user_role`.`USER_ID_` " +
+                    "    FROM `ibps_party_user_role` " +
+                    "    WHERE `ibps_party_user_role`.`ROLE_ID_` IN " +
+                    "        (SELECT `ibps_party_role`.`ID_` " +
+                    "        FROM `ibps_party_role` " +
+                    "        WHERE FIND_IN_SET(`ibps_party_role`.`ROLE_ALIAS_` , '%s'))) " +
+                    " AND EXISTS ( " +
+                    " SELECT 1  FROM ibps_party_entity d  WHERE " +
+                    " FIND_IN_SET( d.id_, c.positions_ )  AND  d.path_ LIKE '%%%s%%' )";
+            sql3 = String.format(sql3,roleString,diDian);
+            List<Map<String, Object>> lead2 = (List<Map<String, Object>>)commonDao.query(sql3);
+            if (BeanUtils.isNotEmpty(lead2)){
+                for (Map<String,Object> lead : lead2){
+                    leadList.add(lead.get("ID_").toString());
+                }
+            }
+        }
+
         // 推送提醒
         // 推送提醒
         String sql2 = "SELECT ID_ " +
         String sql2 = "SELECT ID_ " +
                 "FROM ibps_party_employee " +
                 "FROM ibps_party_employee " +
@@ -174,36 +200,26 @@ public class DeviceToDoRemindJob extends BaseJob2 {
         List<Map<String, Object>> leads = (List<Map<String, Object>>)commonDao.query(sql2);
         List<Map<String, Object>> leads = (List<Map<String, Object>>)commonDao.query(sql2);
         if (BeanUtils.isNotEmpty(leads)){
         if (BeanUtils.isNotEmpty(leads)){
             for (Map<String,Object> lead : leads){
             for (Map<String,Object> lead : leads){
+                String l = lead.get("ID_").toString();
+                //去除重复发送消息
+                if(leadList.contains(l)){
+                    continue;
+                }
                 List<String> receiver = new ArrayList<>();
                 List<String> receiver = new ArrayList<>();
-                receiver.add(lead.get("ID_").toString());
+                receiver.add(l);
                 MessageQueueProductorUtil.send("DeviceToDoRemindJob", "DeviceToDoRemindJob" ,
                 MessageQueueProductorUtil.send("DeviceToDoRemindJob", "DeviceToDoRemindJob" ,
                         "inner" , receiver,null , subject, content, null, null, map2);
                         "inner" , receiver,null , subject, content, null, null, map2);
             }
             }
         }
         }
+
+
         //推送提醒到科室相关负责人
         //推送提醒到科室相关负责人
-        if(StringUtils.isNotBlank(roleString)){
-            String sql3 = "SELECT ID_ " +
-                    "FROM IBPS_PARTY_EMPLOYEE C  " +
-                    "WHERE ID_  IN  " +
-                    "    (SELECT `ibps_party_user_role`.`USER_ID_` " +
-                    "    FROM `ibps_party_user_role` " +
-                    "    WHERE `ibps_party_user_role`.`ROLE_ID_` IN " +
-                    "        (SELECT `ibps_party_role`.`ID_` " +
-                    "        FROM `ibps_party_role` " +
-                    "        WHERE FIND_IN_SET(`ibps_party_role`.`ROLE_ALIAS_` , '%s'))) " +
-                    " AND EXISTS ( " +
-                    " SELECT 1  FROM ibps_party_entity d  WHERE " +
-                    " FIND_IN_SET( d.id_, c.positions_ )  AND  d.path_ LIKE '%%%s%%' )";
-            sql3 = String.format(sql3,roleString,diDian);
-            List<Map<String, Object>> lead2 = (List<Map<String, Object>>)commonDao.query(sql3);
-            if (BeanUtils.isNotEmpty(lead2)){
-                for (Map<String,Object> lead : lead2){
-                    List<String> receiver = new ArrayList<>();
-                    receiver.add(lead.get("ID_").toString());
-                    MessageQueueProductorUtil.send("DeviceToDoRemindJob", "DeviceToDoRemindJob" ,
-                            "inner" , receiver,null , subject, content, null, null, map2);
-                }
-            }
+        for (String leaderString :
+                leadList) {
+            List<String> receiver = new ArrayList<>();
+            receiver.add(leaderString);
+            MessageQueueProductorUtil.send("DeviceToDoRemindJob", "DeviceToDoRemindJob" ,
+                    "inner" , receiver,null , subject, content, null, null, map2);
         }
         }
     }
     }