Pārlūkot izejas kodu

[task-2126] 日常记录未填写时的提醒范围调整

Li Yuan 1 gadu atpakaļ
vecāks
revīzija
7214cc0077

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

@@ -1,11 +1,13 @@
 package com.lc.ibps.platform.plan.job;
 
+import com.lc.ibps.base.core.constants.StringPool;
 import com.lc.ibps.base.core.util.AppUtil;
 import com.lc.ibps.base.core.util.BeanUtils;
 import com.lc.ibps.base.core.util.JacksonUtil;
 import com.lc.ibps.base.framework.table.ICommonDao;
 import com.lc.ibps.cloud.message.util.MessageQueueProductorUtil;
 import com.lc.ibps.components.quartz.BaseJob2;
+import org.apache.commons.lang3.StringUtils;
 import org.quartz.JobDataMap;
 import org.quartz.JobExecutionContext;
 import org.slf4j.Logger;
@@ -42,8 +44,8 @@ public class DeviceToDoRemindJob extends BaseJob2 {
                 Map<String,Object> total = commonDao.queryOne("select count(1) total from t_mjsbwhbyjlby where ji_hua_shi_jian_=current_date and bian_zhi_bu_men_ ='"+deptId+"'");
                 long count = (long)total.get("total");
                 if (count>0){
-                    // 发系统消息给对应的专业组组长
-                    this.sendLeaders(deptId,"设备维护保养提醒","您的专业组有"+count+"条待处理的设备维护保养记录,请通知相关人员及时处理!");
+                    // 发系统消息给对应的专业组组长和设备管理小组负责人
+                    this.sendLeaders(deptId,"设备维护保养提醒","%s有"+count+"条待处理的设备维护保养记录,请通知相关人员及时处理!","sbglxzfzr");
                 }
             }
         }
@@ -59,17 +61,41 @@ public class DeviceToDoRemindJob extends BaseJob2 {
                 Map<String,Object> total = commonDao.queryOne("select count(1) total from v_facs_summary_daily where bian_zhi_bu_men_ ='"+deptId+"'");
                 long count = (long)total.get("total");
                 if (count>0){
-                    // 发系统消息给对应的专业组组长
-                    this.sendLeaders(deptId,taskName+"待处理提醒","您的专业组有"+count+"条待处理的"+taskName+"记录,请通知相关人员及时处理!");
+                    // 发系统消息给对应的专业组组长和安全管理小组负责人
+                    this.sendLeaders(deptId,taskName+"待处理提醒","%s有"+count+"条待处理的"+taskName+"记录,请通知相关人员及时处理!","aqglxzfzr");
                 }
             }
         }
     }
 
-    private void sendLeaders(String deptId,String subject ,String content){
-        String SQL2 = "select *from v_professional_leader where id_ in(select id_ from ibps_party_employee where positions_ like '%%%s%%')";
-        SQL2 = String.format(SQL2,deptId);
-        List<Map<String, Object>> leads = (List<Map<String, Object>>)commonDao.query(SQL2);
+    private void sendLeaders(String deptId,String subject ,String content,String roleString){
+        // 获取地点和专业组名称
+        String sql1 = " SELECT name_,path_ FROM `ibps_party_entity` WHERE party_type_='position' AND id_ LIKE '%%%s%%'";
+        sql1 = String.format(sql1,deptId);
+        Map<String, Object> entity = (Map<String, Object>)commonDao.queryOne(sql1);
+        if(entity == null) return;
+        String deptName = entity.get("name_").toString();
+        content = String.format(content,deptName);
+        String path = entity.get("path_").toString();
+        String diDian = "";
+        try{
+            diDian = path.split(StringPool.BACK_SLASH+StringPool.DOT)[1];
+        }catch (Exception e){
+            diDian = path.split(StringPool.BACK_SLASH+StringPool.DOT)[0];
+        }
+        // 推送提醒到专业组组长
+        String sql2 = "SELECT ID_ " +
+                "FROM ibps_party_employee " +
+                "WHERE positions_ LIKE '%%%s%%' " +
+                " AND 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 `ibps_party_role`.`ROLE_ALIAS_` = 'zhsfzr'))";
+        sql2 = String.format(sql2,deptId);
+        List<Map<String, Object>> leads = (List<Map<String, Object>>)commonDao.query(sql2);
         if (BeanUtils.isNotEmpty(leads)){
             for (Map<String,Object> lead : leads){
                 List<String> receiver = new ArrayList<>();
@@ -78,6 +104,30 @@ public class DeviceToDoRemindJob extends BaseJob2 {
                 //TODO 消息模版
             }
         }
+        //推送提醒到其他负责人
+        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, null);
+                }
+            }
+        }
     }