!92 czh-20260725-增强自我排除逻辑并统一fastjson2
* Merge branch 'master' of gitee.com:sz_30/supervison-java into feature/… * czh-20260725-增强自我排除逻辑并统一fastjson2 * czh-20260724-即时通API接口改为sendBatch * czh-20260724-增加即时通请求体日志 * czh-20260724-IM模块统一使用fastjson2 * czh-20260724-添加bundle到gitignore * czh-20260724-增补意见即时通推送和回显功能
This commit is contained in:
+2
-1
@@ -59,7 +59,8 @@ public class KsimApiClient {
|
|||||||
headers.add("imOpenApiToken", token);
|
headers.add("imOpenApiToken", token);
|
||||||
|
|
||||||
String bodyJson = JSON.toJSONString(dto);
|
String bodyJson = JSON.toJSONString(dto);
|
||||||
String url = ksimProperties.getHost() + "/api-open/v1/msg/send";
|
String url = ksimProperties.getHost() + "/api-open/v1/msg/sendBatch";
|
||||||
|
log.info("【即时通推送-消息发送】请求体: {}", bodyJson);
|
||||||
|
|
||||||
ResponseEntity<JSONObject> resp = RestUtil.request(url, HttpMethod.POST, headers, null,
|
ResponseEntity<JSONObject> resp = RestUtil.request(url, HttpMethod.POST, headers, null,
|
||||||
JSON.parseObject(bodyJson), JSONObject.class);
|
JSON.parseObject(bodyJson), JSONObject.class);
|
||||||
|
|||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package org.jeecg.modules.ksim.controller;
|
package org.jeecg.modules.ksim.controller;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.jeecg.common.util.RestUtil;
|
import org.jeecg.common.util.RestUtil;
|
||||||
@@ -103,7 +103,7 @@ public class KsimTestController {
|
|||||||
dto.setLinkUrl(linkUrl);
|
dto.setLinkUrl(linkUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
String msgUrl = host + "/api-open/v1/msg/send";
|
String msgUrl = host + "/api-open/v1/msg/sendBatch";
|
||||||
requestInfo.put("msgRequestUrl", msgUrl);
|
requestInfo.put("msgRequestUrl", msgUrl);
|
||||||
requestInfo.put("msgRequestBody", dto);
|
requestInfo.put("msgRequestBody", dto);
|
||||||
|
|
||||||
|
|||||||
+25
-10
@@ -104,7 +104,7 @@ public class TaskApprovalOpinionServiceImpl extends ServiceImpl<TaskApprovalOpin
|
|||||||
: getBizTitle(opinion.getTaskTaskId(), opinion.getProcessInstId());
|
: getBizTitle(opinion.getTaskTaskId(), opinion.getProcessInstId());
|
||||||
String content = "所领导" + (oConvertUtils.isNotEmpty(loginUser.getRealname()) ? loginUser.getRealname() : loginUser.getUsername())
|
String content = "所领导" + (oConvertUtils.isNotEmpty(loginUser.getRealname()) ? loginUser.getRealname() : loginUser.getUsername())
|
||||||
+ "增补意见:" + opinionText;
|
+ "增补意见:" + opinionText;
|
||||||
List<String> handlerNames = getDistinctHandlerNames(opinion.getProcessInstId(), loginUser.getUsername());
|
List<String> handlerNames = getDistinctHandlerNames(opinion.getProcessInstId(), loginUser.getUsername(), loginUser.getRealname());
|
||||||
pushResult.put("pushed", !handlerNames.isEmpty());
|
pushResult.put("pushed", !handlerNames.isEmpty());
|
||||||
pushResult.put("toUsers", handlerNames);
|
pushResult.put("toUsers", handlerNames);
|
||||||
pushResult.put("content", content);
|
pushResult.put("content", content);
|
||||||
@@ -287,7 +287,7 @@ public class TaskApprovalOpinionServiceImpl extends ServiceImpl<TaskApprovalOpin
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getDistinctHandlerNames(String processInstId, String excludeUserName) {
|
private List<String> getDistinctHandlerNames(String processInstId, String excludeUserId, String excludeRealName) {
|
||||||
if (jdbcTemplate == null || oConvertUtils.isEmpty(processInstId)) {
|
if (jdbcTemplate == null || oConvertUtils.isEmpty(processInstId)) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
@@ -295,19 +295,34 @@ public class TaskApprovalOpinionServiceImpl extends ServiceImpl<TaskApprovalOpin
|
|||||||
List<Map<String, Object>> rows = jdbcTemplate.queryForList(
|
List<Map<String, Object>> rows = jdbcTemplate.queryForList(
|
||||||
"select distinct op_user_id, op_user_name from task_approval_opinion where process_inst_id = ?",
|
"select distinct op_user_id, op_user_name from task_approval_opinion where process_inst_id = ?",
|
||||||
processInstId);
|
processInstId);
|
||||||
Set<String> names = new LinkedHashSet<>();
|
Set<String> userIds = new LinkedHashSet<>();
|
||||||
for (Map<String, Object> row : rows) {
|
for (Map<String, Object> row : rows) {
|
||||||
Object nameVal = row.get("op_user_name");
|
|
||||||
Object idVal = row.get("op_user_id");
|
Object idVal = row.get("op_user_id");
|
||||||
if (nameVal != null) {
|
Object nameVal = row.get("op_user_name");
|
||||||
String name = String.valueOf(nameVal).trim();
|
if (idVal == null) {
|
||||||
String userId = idVal != null ? String.valueOf(idVal).trim() : "";
|
continue;
|
||||||
if (!name.isEmpty() && !userId.equals(excludeUserName)) {
|
|
||||||
names.add(name);
|
|
||||||
}
|
}
|
||||||
|
String userId = String.valueOf(idVal).trim();
|
||||||
|
if (userId.isEmpty()) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
String name = nameVal != null ? String.valueOf(nameVal).trim() : "";
|
||||||
|
|
||||||
|
// 主判断:工号匹配则排除(最可靠)
|
||||||
|
if (userId.equals(excludeUserId)) {
|
||||||
|
log.info("【增补意见-即时通推送】排除本人(工号匹配), userId: {}, name: {}", userId, name);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
return names.stream().collect(Collectors.toList());
|
// 辅助判断:姓名匹配则排除(防止工号异常等边界情况)
|
||||||
|
if (oConvertUtils.isNotEmpty(excludeRealName) && name.equals(excludeRealName)) {
|
||||||
|
log.info("【增补意见-即时通推送】排除本人(姓名匹配), name: {}, userId: {}", name, userId);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
userIds.add(userId);
|
||||||
|
}
|
||||||
|
log.info("【增补意见-即时通推送】查询经办人完成, processInstId: {}, DB记录数: {}, 排除后: {}",
|
||||||
|
processInstId, rows.size(), userIds.size());
|
||||||
|
return userIds.stream().collect(Collectors.toList());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.debug("查询经办人失败, processInstId={}", processInstId, e);
|
log.debug("查询经办人失败, processInstId={}", processInstId, e);
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
|
|||||||
Reference in New Issue
Block a user