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