From cf74cf76707710a08ffcdfc13c46706966f12803 Mon Sep 17 00:00:00 2001 From: shicf <shi_chongfu@163.com> Date: 星期四, 21 十一月 2024 17:35:45 +0800 Subject: [PATCH] 预警发送用户取当前人 --- src/main/java/com/product/administration/service/EarlyWarningManagerService.java | 145 +++++++++++++++++++++++++++++++---------------- 1 files changed, 95 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/product/administration/service/EarlyWarningManagerService.java b/src/main/java/com/product/administration/service/EarlyWarningManagerService.java index b3c34e0..971f0c0 100644 --- a/src/main/java/com/product/administration/service/EarlyWarningManagerService.java +++ b/src/main/java/com/product/administration/service/EarlyWarningManagerService.java @@ -27,6 +27,7 @@ import com.product.org.admin.service.StaffManagerService; import com.product.quartz.service.impl.SysJobService; import com.product.util.BaseUtil; +import com.product.util.SystemParamReplace; import org.apache.commons.codec.binary.Base64; import org.quartz.SchedulerException; import org.springframework.beans.factory.annotation.Autowired; @@ -170,32 +171,37 @@ */ @Transactional public String addWarning(FieldSetEntity fse) throws BaseException, SchedulerException, TaskException { - FieldSetEntity fseJob = new FieldSetEntity(); - fseJob.setTableName("product_sys_timed_task"); - fseJob.setValue("concurrent", 1); - fseJob.setValue("job_name", fse.getString("config_name")); - fseJob.setValue("cron_expression", fse.getString("execution_frequency")); - fseJob.setValue("invoke_target", "warnTask.triggerSingleWarningTask('null')"); - fseJob.setValue("job_group", "system"); - fseJob.setValue("misfire_policy", 2); - fseJob.setValue("remark", ""); - if (fse.getInteger("config_status") == 0) { - fseJob.setValue("status", 0); - } else { - fseJob.setValue("status", 1); - } - fseJob.setValue("is_conceal", 1); - sysJobService.insertJob(fseJob); - - fse.setValue("time_task_uuid", fseJob.getUUID()); fse.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id()); fse.setValue(CmnConst.CREATED_UTC_DATETIME, new Date()); - String uuid = baseDao.add(fse); + if (fse.getString("type").equals("0")){ + FieldSetEntity fseJob = new FieldSetEntity(); + fseJob.setTableName("product_sys_timed_task"); + fseJob.setValue("concurrent", 1); + fseJob.setValue("job_name", fse.getString("config_name")); + fseJob.setValue("cron_expression", fse.getString("execution_frequency")); + fseJob.setValue("invoke_target", "warnTask.triggerSingleWarningTask('null')"); + fseJob.setValue("job_group", "system"); + fseJob.setValue("misfire_policy", 2); + fseJob.setValue("remark", ""); + if (fse.getInteger("config_status") == 0) { + fseJob.setValue("status", 0); + } else { + fseJob.setValue("status", 1); + } + fseJob.setValue("is_conceal", 1); + sysJobService.insertJob(fseJob); - fseJob.setValue("invoke_target", "warnTask.triggerSingleWarningTask('" + fse.getUUID() + "')"); - sysJobService.updateJob(fseJob); + fse.setValue("time_task_uuid", fseJob.getUUID()); - return uuid; + String uuid = baseDao.add(fse); + + fseJob.setValue("invoke_target", "warnTask.triggerSingleWarningTask('" + fse.getUUID() + "')"); + sysJobService.updateJob(fseJob); + return uuid; + }else { + return baseDao.add(fse); + + } } /** @@ -209,26 +215,27 @@ */ @Transactional public boolean updateWarning(FieldSetEntity fse) throws BaseException, SchedulerException, TaskException { - FieldSetEntity fseJob = new FieldSetEntity(); - fseJob.setTableName("product_sys_timed_task"); - fseJob.setValue("concurrent", 1); - fseJob.setValue("job_name", fse.getString("config_name")); - fseJob.setValue("cron_expression", fse.getString("execution_frequency")); - fseJob.setValue("invoke_target", "warnTask.triggerSingleWarningTask('" + fse.getUUID() + "')"); - fseJob.setValue("job_group", "system"); - fseJob.setValue("misfire_policy", 2); - fseJob.setValue("remark", ""); - if (fse.getInteger("config_status") == 0) { - fseJob.setValue("status", 0); - sysJobService.pauseJob(fse.getString("time_task_uuid")); - } else { - fseJob.setValue("status", 1); - sysJobService.resumeJob(fse.getString("time_task_uuid")); + if (fse.getString("type").equals("0")) { + FieldSetEntity fseJob = new FieldSetEntity(); + fseJob.setTableName("product_sys_timed_task"); + fseJob.setValue("concurrent", 1); + fseJob.setValue("job_name", fse.getString("config_name")); + fseJob.setValue("cron_expression", fse.getString("execution_frequency")); + fseJob.setValue("invoke_target", "warnTask.triggerSingleWarningTask('" + fse.getUUID() + "')"); + fseJob.setValue("job_group", "system"); + fseJob.setValue("misfire_policy", 2); + fseJob.setValue("remark", ""); + if (fse.getInteger("config_status") == 0) { + fseJob.setValue("status", 0); + sysJobService.pauseJob(fse.getString("time_task_uuid")); + } else { + fseJob.setValue("status", 1); + sysJobService.resumeJob(fse.getString("time_task_uuid")); + } + fseJob.setValue("is_conceal", 1); + fseJob.setValue("uuid", fse.getString("time_task_uuid")); + sysJobService.updateJob(fseJob); } - fseJob.setValue("is_conceal", 1); - fseJob.setValue("uuid", fse.getString("time_task_uuid")); - sysJobService.updateJob(fseJob); - fse.setValue(CmnConst.UPDATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id()); fse.setValue(CmnConst.UPDATED_UTC_DATETIME, new Date()); return baseDao.update(fse); @@ -299,21 +306,23 @@ * @return */ public boolean conditionCheck(String mainTableName, String warnCondition) { - Map<String, String> tableNameAndAlias = new HashMap<>(); //鐩稿叧琛ㄥ悕-->琛ㄥ埆鍚�,tableName-->tableName1 - Map<String, String> fieldAndAlias = new HashMap<>(); //鐩稿叧瀛楁-->瀛楁鍒悕,tableName.fieldName-->tableName1fieldName - Map<String, String> fieldReference = new HashMap<>(); //缁勫悎鐩稿叧瀛楁鐨勫弬鐓�,tableName1fieldName-->referenceName - StringBuilder concatField = new StringBuilder(); //缁勫悎鐩稿叧瀛楁,tableName1.fieldName tableName1fieldName + Map<String, String> tableNameAndAlias = new HashMap<>();//鐩稿叧琛ㄥ悕-->琛ㄥ埆鍚�,tableName-->tableName1 + Map<String, String> fieldAndAlias = new HashMap<>(); //鐩稿叧瀛楁-->瀛楁鍒悕,tableName.fieldName-->tableName1fieldName + Map<String, String> fieldReference = new HashMap<>(); //缁勫悎鐩稿叧瀛楁鐨勫弬鐓�,tableName1fieldName-->referenceName + StringBuilder concatField = new StringBuilder(); //缁勫悎鐩稿叧瀛楁,tableName1.fieldName tableName1fieldName earlyWarningServer.parseWarningContent(warnCondition, concatField, tableNameAndAlias, fieldAndAlias, fieldReference); + // 鏇挎崲绯荤粺鍙傛暟 + warnCondition = SystemParamReplace.systemParamsReplace(warnCondition); //鐢熸垚涓诲瓙琛ㄥ叧鑱擲QL String relationSQL = earlyWarningServer.createTableRelation(tableNameAndAlias, mainTableName); StringBuilder serviceSQL = new StringBuilder(); - serviceSQL.append(" SELECT "); - serviceSQL.append(concatField.subSequence(1, concatField.length())); - serviceSQL.append(" FROM "); + serviceSQL.append("\nSELECT \n"); + serviceSQL.append(StringUtils.isEmpty(concatField) ? "*" : concatField.subSequence(1, concatField.length())); + serviceSQL.append("\nFROM \n"); serviceSQL.append(relationSQL); - serviceSQL.append(" WHERE "); + serviceSQL.append("\nWHERE \n"); serviceSQL.append(earlyWarningServer.parseWarnCondition(warnCondition, tableNameAndAlias)); try { baseDao.listTable(serviceSQL.toString(), new Object[]{}); @@ -329,6 +338,8 @@ StaffManagerService staffManagerService; public void sendWarnFeedBackMessage(FieldSetEntity fse) throws BaseException { + String userId = String.valueOf(SpringMVCContextHolder.getCurrentUser().getUser_id()); + fse.setValue( CmnConst.USER_ID,userId);//褰撳墠浜轰綔涓烘秷鎭彂閫佷汉锛屽叾瀹冮璀︽帴鏀朵汉浣滀负鏀舵秷鎭汉 String parent_uuid = fse.getString("puuid"); Set<String> receiverSet = this.getReceiver(fse.getString("parent_uuid")); if (StringUtils.isEmpty(parent_uuid)) { @@ -337,7 +348,6 @@ if (!StringUtils.isEmpty(leaderUserId)) { receiverSet.add(leaderUserId); } - String userId = String.valueOf(SpringMVCContextHolder.getCurrentUser().getUser_id()); receiverSet.remove(userId); if(receiverSet.isEmpty()){ logger.error("鍙戦�佹秷鎭�,澶辫触"); @@ -492,4 +502,39 @@ } return dte; } + + /** + * 杞彂 + * @param fse + */ + @Override + public void transmit(FieldSetEntity fse) { + String uuid = fse.getUUID(); + String messageAccepter = fse.getString("user"); + FieldSetEntity warnMsgFse = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_EARLY_WARNING_INFO, uuid, false); + String preReceiver = warnMsgFse.getString(CmnConst.RECEIVER); + Set<String> preReceiverSet = Sets.newHashSet(preReceiver.split(",")); + if (StringUtils.isEmpty(messageAccepter)) { + throw new BaseException(SystemCode.WARN_TRANSMIT_USER_IS_NULL); + } + Set<String> transmitUserSet = Sets.newHashSet(messageAccepter.split(",")); + transmitUserSet.forEach(transmitUser -> { + if (preReceiverSet.contains(transmitUser)) { + FieldSetEntity transmitUserFse = baseDao.getFieldSetByFilter(CmnConst.PRODUCT_SYS_USERS, "user_id=?", new Object[]{transmitUser}, false); + throw new BaseException(SystemCode.WARN_TRANSMIT_USER_REPEAT.getValue(), String.format("%s:%s", SystemCode.WARN_TRANSMIT_USER_REPEAT.getText(), transmitUserFse.getString(CmnConst.USER_NAME))); + } + }); + // 鏇存柊棰勮淇℃伅琛� + warnMsgFse.setValue(CmnConst.RECEIVER, preReceiver + "," + messageAccepter); + baseDao.saveFieldSetEntity(warnMsgFse); + + // 鍙戦�佹秷鎭粰杞彂浜� + SystemUser curUser = SpringMVCContextHolder.getCurrentUser(); + FieldSetEntity msgFse = baseDao.getFieldSetByFilter(CmnConst.PRODUCT_SYS_MESSAGE, "source_table=? and source_uuid=?", new Object[]{CmnConst.PRODUCT_SYS_EARLY_WARNING_INFO, uuid}, false); + String title = String.format("%s鍚戞偍杞彂浜嗛璀︽秷鎭��%s銆�", curUser.getUser_name(), msgFse.getString(CmnConst.TITLE)); + String content = msgFse.getString("content"); + WebsocketMesssageServiceThread.getInstance().appendMessage(messageAccepter, content, title, curUser.getUser_id(), + "31", CmnConst.BUTTON_URL_WARN_MESSAGE_INFO + "?uuid=" + fse.getUUID(), + CmnConst.PRODUCT_SYS_EARLY_WARNING_INFO, fse.getUUID(), curUser.getUser_id(), 0, 0, null); + } } -- Gitblit v1.9.2