From b390f63fa53e1874348df7a25f2cb55e87f0fd47 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Wed, 14 Jan 2026 19:06:03 +0800 Subject: [PATCH] =?UTF-8?q?fix(dms):=20=E4=BF=AE=E5=A4=8D=E7=BB=B4?= =?UTF-8?q?=E4=BF=AE=E5=AE=8C=E6=88=90=E5=8A=9F=E8=83=BD=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9B=B4=E6=96=B0=E9=97=AE=E9=A2=98=EF=BC=88?= =?UTF-8?q?=E4=BF=AE=E6=8F=8F=E8=BF=B0=E3=80=81=E7=BB=B4=E4=BF=AE=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E3=80=81=E5=AE=89=E5=85=A8=E9=98=B2=E6=8A=A4=E6=8E=AA?= =?UTF-8?q?=E6=96=BD=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 LambdaQueryWrapper 用于查询条件构建 - 增加调试日志输出以追踪 Service 层接收的数据 - 修复使用 PDA 传入的旧 ID 问题,改为查询最新的活动记录进行更新 - 添加查询验证逻辑,确保维修活动记录存在 - 完善维修相关字段的传递和更新机制 - 增加数据库更新前的调试日志输出 --- .../DmsBillsFaultInstanceServiceImpl.java | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java index 3ac2e04a..b4ed2013 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java @@ -2,6 +2,7 @@ package org.dromara.dms.service.impl; import cn.dev33.satoken.stp.StpUtil; import com.alibaba.ttl.TtlRunnable; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -509,12 +510,53 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS @Override @GlobalTransactional(rollbackFor = Exception.class) public int completeRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity, List files) { + // 【调试日志】打印Service层接收到的数据 + log.info("===== completeRepair Service层接收到的数据 ====="); + log.info("repairInstanceId: {}", dmsFaultInstanceActivity.getRepairInstanceId()); + log.info("PDA传入instanceActivityId: {}", dmsFaultInstanceActivity.getInstanceActivityId()); + log.info("processHandleResolution: {}", dmsFaultInstanceActivity.getProcessHandleResolution()); + log.info("repairContent: {}", dmsFaultInstanceActivity.getRepairContent()); + log.info("protectedMethod: {}", dmsFaultInstanceActivity.getProtectedMethod()); + log.info("======================================="); + + // 【关键修复】查询最新的活动记录(process_step_order=2),而不是使用PDA传入的旧ID + // PDA传入的instanceActivityId是第一步的ID,我们需要更新第二步的记录 + DmsFaultInstanceActivity latestActivity = dmsFaultInstanceActivityMapper.selectOne( + new LambdaQueryWrapper() + .eq(DmsFaultInstanceActivity::getRepairInstanceId, dmsFaultInstanceActivity.getRepairInstanceId()) + .eq(DmsFaultInstanceActivity::getProcessStepOrder, 2L) + ); + + if (latestActivity == null) { + throw new ServiceException("未找到维修活动记录,请先开始维修"); + } + + log.info("查询到最新的活动记录,instanceActivityId: {}", latestActivity.getInstanceActivityId()); + // 更新 dms_fault_instance_activity 表 DmsFaultInstanceActivity activity = new DmsFaultInstanceActivity(); - activity.setInstanceActivityId(dmsFaultInstanceActivity.getInstanceActivityId()); + activity.setInstanceActivityId(latestActivity.getInstanceActivityId()); // 使用查询到的最新ID activity.setProcessHandleStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_ACTIVITY_HANDLE_STATUS_FINISH); activity.setEndTime(new Date()); activity.setRepairer(LoginHelper.getLoginUser() == null ? LoginHelper.getUsername() : LoginHelper.getLoginUser().getNickname()); + // 【修复】设置维修相关字段(从Bo对象传递到Entity) + activity.setProcessHandleResolution(dmsFaultInstanceActivity.getProcessHandleResolution()); + activity.setRepairContent(dmsFaultInstanceActivity.getRepairContent()); + activity.setProtectedMethod(dmsFaultInstanceActivity.getProtectedMethod()); + // 同时更新其他可能被修改的字段 + activity.setDesignOperations(dmsFaultInstanceActivity.getDesignOperations()); + activity.setFaultType(dmsFaultInstanceActivity.getFaultType()); + activity.setRepairType(dmsFaultInstanceActivity.getRepairType()); + activity.setOutsourcingId(dmsFaultInstanceActivity.getOutsourcingId()); + + // 【调试日志】打印即将更新到数据库的值 + log.info("===== 即将更新到数据库的值 ====="); + log.info("instanceActivityId: {}", activity.getInstanceActivityId()); + log.info("processHandleResolution: {}", activity.getProcessHandleResolution()); + log.info("repairContent: {}", activity.getRepairContent()); + log.info("protectedMethod: {}", activity.getProtectedMethod()); + log.info("================================"); + dmsFaultInstanceActivityMapper.updateById(activity); // 批量保存处理的零部件