feat(dms): 新增故障实例字段并优化附件处理逻辑

- 在 DmsBillsFaultInstance 实体中新增 designOperations 和 faultDescription 字段- 更新 XML 映射文件以支持新字段的查询、插入和更新操作
-为首步操作记录自动回填申请人和申请时间
- 新增批量插入操作前后附件的方法,提升附件处理效率
- 在 DmsFaultInstanceActivity 中增加 updateBy 和 updateTime 字段映射与持久化支持
master
zangch@mesnac.com 2 months ago
parent fb63bc0069
commit 94967ea1b3

@ -62,13 +62,23 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
dmsBillsFaultInstance.setDmsInstanceFiles(instanceFiles);
}
// 为每个操作记录加载附件
// 为每个操作记录加载附件,并回填首步记录的操作人和时间
List<DmsFaultInstanceActivity> activityList = dmsBillsFaultInstance.getDmsFaultInstanceActivityList();
if (!CollectionUtils.isEmpty(activityList)) {
for (DmsFaultInstanceActivity activity : activityList) {
List<DmsInstanceFile> 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<String> fileUrls, Long instanceActivityId) {
if (CollectionUtils.isEmpty(fileUrls) || instanceActivityId == null) {
return;
}
List<DmsInstanceFile> 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<String> fileUrls, Long instanceActivityId) {
if (CollectionUtils.isEmpty(fileUrls) || instanceActivityId == null) {
return;
}
List<DmsInstanceFile> 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);
}
}
/**
* /
*/

@ -43,6 +43,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="processHandleResolution" column="process_handle_resolution" />
<result property="knowledgeRepairId" column="knowledge_repair_id" />
<result property="verifyMethod" column="verify_method" />
<result property="designOperations" column="design_operations" />
<result property="faultDescription" column="fault_description" />
</resultMap>
<resultMap id="DmsBillsFaultInstanceDmsFaultInstanceActivityResult" type="DmsBillsFaultInstance" extends="DmsBillsFaultInstanceResult">
@ -80,7 +82,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectDmsBillsFaultInstanceVo">
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
</sql>
<select id="selectDmsBillsFaultInstanceList" parameterType="DmsBillsFaultInstance" resultMap="DmsBillsFaultInstanceResult">
@ -125,6 +135,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="applyUser != null">apply_user,</if>
<if test="applyUserPhone != null">apply_user_phone,</if>
<if test="faultLevel != null">fault_level,</if>
<if test="faultDescription != null">fault_description,</if>
<if test="designOperations != null">design_operations,</if>
<if test="applyTime != null">apply_time,</if>
<if test="realBeginTime != null">real_begin_time,</if>
<if test="realEndTime != null">real_end_time,</if>
@ -151,6 +163,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="applyUser != null">#{applyUser},</if>
<if test="applyUserPhone != null">#{applyUserPhone},</if>
<if test="faultLevel != null">#{faultLevel},</if>
<if test="faultDescription != null">#{faultDescription},</if>
<if test="designOperations != null">#{designOperations},</if>
<if test="applyTime != null">#{applyTime},</if>
<if test="realBeginTime != null">#{realBeginTime},</if>
<if test="realEndTime != null">#{realEndTime},</if>
@ -180,6 +194,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="applyUser != null">apply_user = #{applyUser},</if>
<if test="applyUserPhone != null">apply_user_phone = #{applyUserPhone},</if>
<if test="faultLevel != null">fault_level = #{faultLevel},</if>
<if test="faultDescription != null">fault_description = #{faultDescription},</if>
<if test="designOperations != null">design_operations = #{designOperations},</if>
<if test="applyTime != null">apply_time = #{applyTime},</if>
<if test="realBeginTime != null">real_begin_time = #{realBeginTime},</if>
<if test="realEndTime != null">real_end_time = #{realEndTime},</if>
@ -277,6 +293,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
b.process_handle_status as sub_process_handle_status, b.process_step_order as sub_process_step_order,
b.start_time as sub_start_time, b.end_time as sub_end_time, b.handle_user_id as sub_handle_user_id,
b.handle_by as sub_handle_by, b.handle_time as sub_handle_time,
b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time,
b.repair_content as sub_repair_content, b.protected_method as sub_protected_method,
b.repairer as sub_repairer, b.repair_confirm as sub_repair_confirm, b.confirm_time as sub_confirm_time,
-- 将第1步的关键字段固定从首步别名表中读取避免被后续步骤的空值覆盖

@ -34,6 +34,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="repairConfirm" column="repair_confirm" />
<result property="confirmTime" column="confirm_time" />
<result property="componentsPartsId" column="components_parts_id" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectDmsFaultInstanceActivityVo">
@ -109,6 +111,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="repairConfirm != null">repair_confirm,</if>
<if test="confirmTime != null">confirm_time,</if>
<if test="componentsPartsId != null">components_parts_id,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{instanceActivityId},
@ -140,6 +144,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="repairConfirm != null">#{repairConfirm},</if>
<if test="confirmTime != null">#{confirmTime},</if>
<if test="componentsPartsId != null">#{componentsPartsId},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<insert id="insertParts" parameterType="java.util.List">
@ -181,6 +187,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="repairConfirm != null">repair_confirm = #{repairConfirm},</if>
<if test="confirmTime != null">confirm_time = #{confirmTime},</if>
<if test="componentsPartsId != null">components_parts_id = #{componentsPartsId},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime}</if>
</trim>
where instance_activity_id = #{instanceActivityId}
</update>

Loading…
Cancel
Save