From bf577921045a4a924cd93d57b86b51eec9799dd9 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Mon, 20 Jul 2026 13:42:55 +0800 Subject: [PATCH] =?UTF-8?q?2026-07-20=20=E5=BC=82=E5=B8=B8=E8=A7=84?= =?UTF-8?q?=E5=88=99=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/ScheduleTodoMessageEntity.java | 20 +++++++ .../mapper/ScheduleTodoMessageMapper.java | 6 +- .../service/impl/ScheduleServiceImpl.java | 56 ++++++++++++++++++- .../schedule/ScheduleTodoMessageMapper.xml | 24 +++++++- 4 files changed, 99 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/gaotao/modules/schedule/entity/ScheduleTodoMessageEntity.java b/src/main/java/com/gaotao/modules/schedule/entity/ScheduleTodoMessageEntity.java index 9e078d5..91a5fa9 100644 --- a/src/main/java/com/gaotao/modules/schedule/entity/ScheduleTodoMessageEntity.java +++ b/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) */ diff --git a/src/main/java/com/gaotao/modules/schedule/mapper/ScheduleTodoMessageMapper.java b/src/main/java/com/gaotao/modules/schedule/mapper/ScheduleTodoMessageMapper.java index 6a3d9a6..6c5889a 100644 --- a/src/main/java/com/gaotao/modules/schedule/mapper/ScheduleTodoMessageMapper.java +++ b/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> searchTodoCenterList(@Param("query") Map query); diff --git a/src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java b/src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java index 6b7532c..82a7438 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java +++ b/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 buildTodoCenterQuery(Map 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 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 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); } diff --git a/src/main/resources/mapper/schedule/ScheduleTodoMessageMapper.xml b/src/main/resources/mapper/schedule/ScheduleTodoMessageMapper.xml index ca6cfc2..18b0b9d 100644 --- a/src/main/resources/mapper/schedule/ScheduleTodoMessageMapper.xml +++ b/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 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 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