Browse Source

2026-07-20

异常规则配置
master
fengyuan_yang 2 months ago
parent
commit
bf57792104
  1. 20
      src/main/java/com/gaotao/modules/schedule/entity/ScheduleTodoMessageEntity.java
  2. 6
      src/main/java/com/gaotao/modules/schedule/mapper/ScheduleTodoMessageMapper.java
  3. 56
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java
  4. 24
      src/main/resources/mapper/schedule/ScheduleTodoMessageMapper.xml

20
src/main/java/com/gaotao/modules/schedule/entity/ScheduleTodoMessageEntity.java

@ -59,11 +59,31 @@ public class ScheduleTodoMessageEntity implements Serializable {
*/
private String auditFlag;
/**
* 审批时间
*/
private Date auditTime;
/**
* 审批人
*/
private String auditBy;
/**
* 操作标识Y/N
*/
private String operateFlag;
/**
* 报告时间operate_flag = Y 时记录
*/
private Date reportTime;
/**
* 报告人operate_flag = Y 时记录
*/
private String reportBy;
/**
* 是否强制锁定标识Y/N
*/

6
src/main/java/com/gaotao/modules/schedule/mapper/ScheduleTodoMessageMapper.java

@ -22,11 +22,13 @@ public interface ScheduleTodoMessageMapper {
@Param("buNo") String buNo,
@Param("orderNo") String orderNo,
@Param("seqNo") String seqNo,
@Param("messageSourceLike") String messageSourceLike);
@Param("messageSourceLike") String messageSourceLike,
@Param("reportBy") String reportBy);
int markTodoAudited(@Param("site") String site,
@Param("buNo") String buNo,
@Param("infoCode") String infoCode);
@Param("infoCode") String infoCode,
@Param("auditBy") String auditBy);
List<Map<String, Object>> searchTodoCenterList(@Param("query") Map<String, Object> query);

56
src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java

@ -3702,12 +3702,14 @@ public class ScheduleServiceImpl implements ScheduleService {
|| !StringUtils.hasText(inData.getOrderNo()) || !StringUtils.hasText(inData.getSeqNo())) {
return;
}
String reportBy = resolveTodoOperator(inData);
int updatedRows = scheduleTodoMessageMapper.markLatestAuditedLockTodoOperated(
inData.getSite(),
inData.getBuNo(),
inData.getOrderNo(),
inData.getSeqNo(),
TODO_MSG_SOURCE_PREFIX + "%");
TODO_MSG_SOURCE_PREFIX + "%",
reportBy);
if (updatedRows <= 0) {
return;
}
@ -3758,7 +3760,8 @@ public class ScheduleServiceImpl implements ScheduleService {
if (!StringUtils.hasText(site) || !StringUtils.hasText(buNo) || !StringUtils.hasText(infoCode)) {
throw new XJException("审核参数不完整");
}
scheduleTodoMessageMapper.markTodoAudited(site, buNo, infoCode);
String auditBy = resolveTodoOperator(inData);
scheduleTodoMessageMapper.markTodoAudited(site, buNo, infoCode, auditBy);
}
private Map<String, Object> buildTodoCenterQuery(Map<String, Object> inData, boolean includePaging) {
@ -3808,6 +3811,43 @@ public class ScheduleServiceImpl implements ScheduleService {
return StringUtils.hasText(text) ? text : "";
}
private String resolveTodoOperator(SearchScheduleData inData) {
if (inData == null) {
return null;
}
String operator = trimToEmpty(inData.getOperatorId());
if (!StringUtils.hasText(operator)) {
operator = trimToEmpty(inData.getUsername());
}
if (!StringUtils.hasText(operator)) {
operator = trimToEmpty(inData.getUserName());
}
if (!StringUtils.hasText(operator)) {
operator = trimToEmpty(inData.getCreatedBy());
}
return StringUtils.hasText(operator) ? truncate(operator, 50) : null;
}
private String resolveTodoOperator(Map<String, Object> inData) {
if (inData == null || inData.isEmpty()) {
return null;
}
String operator = trimToEmpty(inData.get("auditBy"));
if (!StringUtils.hasText(operator)) {
operator = trimToEmpty(inData.get("operatorId"));
}
if (!StringUtils.hasText(operator)) {
operator = trimToEmpty(inData.get("username"));
}
if (!StringUtils.hasText(operator)) {
operator = trimToEmpty(inData.get("userName"));
}
if (!StringUtils.hasText(operator)) {
operator = trimToEmpty(inData.get("createdBy"));
}
return StringUtils.hasText(operator) ? truncate(operator, 50) : null;
}
private boolean needMatchRoleForBadge(Map<String, Object> inData) {
String matchRoleOnly = trimToEmpty(inData == null ? null : inData.get("matchRoleOnly"));
return FLAG_Y.equalsIgnoreCase(matchRoleOnly) || "true".equalsIgnoreCase(matchRoleOnly);
@ -4150,11 +4190,21 @@ public class ScheduleServiceImpl implements ScheduleService {
entity.setInfoCode(transNo.getNewTransNo());
entity.setSeqNo(inData.getSeqNo());
entity.setOrderNo(inData.getOrderNo());
entity.setCreatedBy(StringUtils.hasText(inData.getOperatorId()) ? inData.getOperatorId() : inData.getCreatedBy());
String operator = resolveTodoOperator(inData);
entity.setCreatedBy(operator);
entity.setMessageSource(buildTodoMessageSource(inData.getFunctionName()));
entity.setAuditFlag(audited ? FLAG_Y : FLAG_N);
entity.setOperateFlag(operated ? FLAG_Y : FLAG_N);
entity.setLockFlag(lockRequired ? FLAG_Y : FLAG_N);
Date now = new Date();
if (audited) {
entity.setAuditTime(now);
entity.setAuditBy(operator);
}
if (operated) {
entity.setReportTime(now);
entity.setReportBy(operator);
}
entity.setResponsibilityDept(StringUtils.hasText(responsibilityDept) ? responsibilityDept : null);
scheduleTodoMessageMapper.insertTodoMessage(entity);
}

24
src/main/resources/mapper/schedule/ScheduleTodoMessageMapper.xml

@ -13,7 +13,11 @@
created_time,
message_source,
audit_flag,
audit_time,
audit_by,
operate_flag,
report_time,
report_by,
lock_flag,
responsibility_dept
) VALUES (
@ -26,7 +30,11 @@
GETDATE(),
#{messageSource},
#{auditFlag},
#{auditTime,jdbcType=TIMESTAMP},
#{auditBy,jdbcType=VARCHAR},
#{operateFlag},
#{reportTime,jdbcType=TIMESTAMP},
#{reportBy,jdbcType=VARCHAR},
#{lockFlag},
#{responsibilityDept}
)
@ -43,7 +51,11 @@
created_time AS createdTime,
message_source AS messageSource,
audit_flag AS auditFlag,
audit_time AS auditTime,
audit_by AS auditBy,
operate_flag AS operateFlag,
report_time AS reportTime,
report_by AS reportBy,
lock_flag AS lockFlag,
responsibility_dept AS responsibilityDept
FROM schedule_todo_message
@ -59,7 +71,9 @@
<update id="markLatestAuditedLockTodoOperated">
UPDATE schedule_todo_message
SET operate_flag = 'Y'
SET operate_flag = 'Y',
report_time = GETDATE(),
report_by = #{reportBy}
WHERE site = #{site}
AND bu_no = #{buNo}
AND info_code = (
@ -79,7 +93,9 @@
<update id="markTodoAudited">
UPDATE schedule_todo_message
SET audit_flag = 'Y'
SET audit_flag = 'Y',
audit_time = GETDATE(),
audit_by = #{auditBy}
WHERE site = #{site}
AND bu_no = #{buNo}
AND info_code = #{infoCode}
@ -170,7 +186,11 @@
stm.created_time AS createdTime,
stm.message_source AS messageSource,
stm.audit_flag AS auditFlag,
stm.audit_time AS auditTime,
stm.audit_by AS auditBy,
stm.operate_flag AS operateFlag,
stm.report_time AS reportTime,
stm.report_by AS reportBy,
stm.lock_flag AS lockFlag,
stm.responsibility_dept AS responsibilityDept,
ISNULL(sr.role_name, stm.responsibility_dept) AS responsibilityDeptName

Loading…
Cancel
Save