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 String auditFlag;
/**
* 审批时间
*/
private Date auditTime;
/**
* 审批人
*/
private String auditBy;
/** /**
* 操作标识(Y/N) * 操作标识(Y/N)
*/ */
private String operateFlag; private String operateFlag;
/**
* 报告时间(operate_flag = Y 时记录)
*/
private Date reportTime;
/**
* 报告人(operate_flag = Y 时记录)
*/
private String reportBy;
/** /**
* 是否强制锁定标识(Y/N) * 是否强制锁定标识(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("buNo") String buNo,
@Param("orderNo") String orderNo, @Param("orderNo") String orderNo,
@Param("seqNo") String seqNo, @Param("seqNo") String seqNo,
@Param("messageSourceLike") String messageSourceLike);
@Param("messageSourceLike") String messageSourceLike,
@Param("reportBy") String reportBy);
int markTodoAudited(@Param("site") String site, int markTodoAudited(@Param("site") String site,
@Param("buNo") String buNo, @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); 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())) { || !StringUtils.hasText(inData.getOrderNo()) || !StringUtils.hasText(inData.getSeqNo())) {
return; return;
} }
String reportBy = resolveTodoOperator(inData);
int updatedRows = scheduleTodoMessageMapper.markLatestAuditedLockTodoOperated( int updatedRows = scheduleTodoMessageMapper.markLatestAuditedLockTodoOperated(
inData.getSite(), inData.getSite(),
inData.getBuNo(), inData.getBuNo(),
inData.getOrderNo(), inData.getOrderNo(),
inData.getSeqNo(), inData.getSeqNo(),
TODO_MSG_SOURCE_PREFIX + "%");
TODO_MSG_SOURCE_PREFIX + "%",
reportBy);
if (updatedRows <= 0) { if (updatedRows <= 0) {
return; return;
} }
@ -3758,7 +3760,8 @@ public class ScheduleServiceImpl implements ScheduleService {
if (!StringUtils.hasText(site) || !StringUtils.hasText(buNo) || !StringUtils.hasText(infoCode)) { if (!StringUtils.hasText(site) || !StringUtils.hasText(buNo) || !StringUtils.hasText(infoCode)) {
throw new XJException("审核参数不完整"); 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) { 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 : ""; 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) { private boolean needMatchRoleForBadge(Map<String, Object> inData) {
String matchRoleOnly = trimToEmpty(inData == null ? null : inData.get("matchRoleOnly")); String matchRoleOnly = trimToEmpty(inData == null ? null : inData.get("matchRoleOnly"));
return FLAG_Y.equalsIgnoreCase(matchRoleOnly) || "true".equalsIgnoreCase(matchRoleOnly); return FLAG_Y.equalsIgnoreCase(matchRoleOnly) || "true".equalsIgnoreCase(matchRoleOnly);
@ -4150,11 +4190,21 @@ public class ScheduleServiceImpl implements ScheduleService {
entity.setInfoCode(transNo.getNewTransNo()); entity.setInfoCode(transNo.getNewTransNo());
entity.setSeqNo(inData.getSeqNo()); entity.setSeqNo(inData.getSeqNo());
entity.setOrderNo(inData.getOrderNo()); 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.setMessageSource(buildTodoMessageSource(inData.getFunctionName()));
entity.setAuditFlag(audited ? FLAG_Y : FLAG_N); entity.setAuditFlag(audited ? FLAG_Y : FLAG_N);
entity.setOperateFlag(operated ? FLAG_Y : FLAG_N); entity.setOperateFlag(operated ? FLAG_Y : FLAG_N);
entity.setLockFlag(lockRequired ? 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); entity.setResponsibilityDept(StringUtils.hasText(responsibilityDept) ? responsibilityDept : null);
scheduleTodoMessageMapper.insertTodoMessage(entity); scheduleTodoMessageMapper.insertTodoMessage(entity);
} }

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

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

Loading…
Cancel
Save