From 94967ea1b3e7fb7069f2030f49dfbdb253bea409 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Thu, 6 Nov 2025 09:45:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(dms):=20=E6=96=B0=E5=A2=9E=E6=95=85?= =?UTF-8?q?=E9=9A=9C=E5=AE=9E=E4=BE=8B=E5=AD=97=E6=AE=B5=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=99=84=E4=BB=B6=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 DmsBillsFaultInstance 实体中新增 designOperations 和 faultDescription 字段- 更新 XML 映射文件以支持新字段的查询、插入和更新操作 -为首步操作记录自动回填申请人和申请时间 - 新增批量插入操作前后附件的方法,提升附件处理效率 - 在 DmsFaultInstanceActivity 中增加 updateBy 和 updateTime 字段映射与持久化支持 --- .../DmsBillsFaultInstanceServiceImpl.java | 52 ++++++++++++++++++- .../dms/DmsBillsFaultInstanceMapper.xml | 19 ++++++- .../dms/DmsFaultInstanceActivityMapper.xml | 8 +++ 3 files changed, 77 insertions(+), 2 deletions(-) diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java index 29561ae..cd4ca5a 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java +++ b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java @@ -62,13 +62,23 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS dmsBillsFaultInstance.setDmsInstanceFiles(instanceFiles); } - // 为每个操作记录加载附件 + // 为每个操作记录加载附件,并回填首步记录的操作人和时间 List activityList = dmsBillsFaultInstance.getDmsFaultInstanceActivityList(); if (!CollectionUtils.isEmpty(activityList)) { for (DmsFaultInstanceActivity activity : activityList) { List activityFiles = loadActivityFiles(activity.getInstanceActivityId()); activity.setFileCount(activityFiles.size()); activity.setDmsInstanceFiles(activityFiles); + + // 首步记录(processStepOrder=1)回填操作人和时间 + if (activity.getProcessStepOrder() != null && activity.getProcessStepOrder() == 1) { + if (activity.getHandleBy() == null || activity.getHandleBy().isEmpty()) { + activity.setHandleBy(dmsBillsFaultInstance.getApplyUser()); + } + if (activity.getHandleTime() == null) { + activity.setHandleTime(dmsBillsFaultInstance.getApplyTime()); + } + } } } @@ -565,6 +575,46 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS return 1; } + private void batchInsertInstanceFiles(List fileUrls, Long instanceActivityId) { + if (CollectionUtils.isEmpty(fileUrls) || instanceActivityId == null) { + return; + } + List dmsInstanceFiles = new ArrayList<>(fileUrls.size()); + for (String fileUrl : fileUrls) { + if (StringUtils.isBlank(fileUrl)) { + continue; + } + DmsInstanceFile dmsInstanceFile = new DmsInstanceFile(); + dmsInstanceFile.setTargetId(instanceActivityId); + dmsInstanceFile.setTargetType(DmsConstants.DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY); + dmsInstanceFile.setFilePath(fileUrl); + dmsInstanceFiles.add(dmsInstanceFile); + } + if (!dmsInstanceFiles.isEmpty()) { + dmsInstanceFileMapper.batchDmsInstanceFile(dmsInstanceFiles); + } + } + + private void batchInsertInstanceAfterFiles(List fileUrls, Long instanceActivityId) { + if (CollectionUtils.isEmpty(fileUrls) || instanceActivityId == null) { + return; + } + List dmsInstanceFiles = new ArrayList<>(fileUrls.size()); + for (String fileUrl : fileUrls) { + if (StringUtils.isBlank(fileUrl)) { + continue; + } + DmsInstanceFile dmsInstanceFile = new DmsInstanceFile(); + dmsInstanceFile.setTargetId(instanceActivityId); + dmsInstanceFile.setTargetType(DmsConstants.DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY_AFTER); + dmsInstanceFile.setFilePath(fileUrl); + dmsInstanceFiles.add(dmsInstanceFile); + } + if (!dmsInstanceFiles.isEmpty()) { + dmsInstanceFileMapper.batchDmsInstanceFile(dmsInstanceFiles); + } + } + /** * 加载指定操作记录的所有附件(含开始/完成阶段) */ diff --git a/aucma-dms/src/main/resources/mapper/dms/DmsBillsFaultInstanceMapper.xml b/aucma-dms/src/main/resources/mapper/dms/DmsBillsFaultInstanceMapper.xml index e187f69..c431b18 100644 --- a/aucma-dms/src/main/resources/mapper/dms/DmsBillsFaultInstanceMapper.xml +++ b/aucma-dms/src/main/resources/mapper/dms/DmsBillsFaultInstanceMapper.xml @@ -43,6 +43,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -80,7 +82,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select repair_instance_id, fault_source_type, fault_source_id, bills_fault_code, bills_status, apply_user, apply_user_phone, apply_time, real_begin_time, real_end_time, require_end_time, instance_type, is_flag, remark, create_by, create_time, update_by, update_time, device_id, APPROVESTATUS AS approveStatus, knowledge_repair_id, verify_method, repair_confirm, confirm_user from dms_bills_fault_instance + select repair_instance_id, fault_source_type, + fault_source_id, bills_fault_code, bills_status, apply_user, + apply_user_phone, apply_time, real_begin_time, real_end_time, require_end_time, + instance_type, is_flag, remark, create_by, create_time, update_by, update_time, device_id, + approveStatus, knowledge_repair_id, verify_method, repair_confirm, + confirm_user, + design_operations, + fault_description + from dms_bills_fault_instance