From 640ab25e5e26cae7f5a9d1f83a6b571a25690c26 Mon Sep 17 00:00:00 2001 From: zangchenhao Date: Sun, 6 Jul 2025 22:15:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(dms):=20=E4=BC=98=E5=8C=96=E4=BF=9D?= =?UTF-8?q?=E5=85=BB=E5=B7=A5=E5=8D=95=E5=AE=8C=E6=88=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在完成保养工单时增加状态检查,确保只有在保养中状态才能完成保养 - 修复了可能导致非保养中状态也能完成保养的逻辑漏洞 --- .../dromara/dms/controller/DmsMobileController.java | 10 +++++----- .../service/impl/DmsBillsMaintInstanceServiceImpl.java | 3 +++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsMobileController.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsMobileController.java index 14f12d7..f21f2d1 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsMobileController.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsMobileController.java @@ -456,11 +456,11 @@ public class DmsMobileController extends BaseController { public AjaxResult getBillsFaultInstance4Repair(@PathVariable("repairInstanceId") Long repairInstanceId) { // DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.queryById(repairInstanceId); DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.selectDmsBillsFaultInstanceByRepairInstanceId(repairInstanceId); - + // 【调试日志】输出查询结果 - log.info("PDA获取工单详情,repairInstanceId: {}, outsourcingId: {}", + log.info("PDA获取工单详情,repairInstanceId: {}, outsourcingId: {}", repairInstanceId, billsFaultInstance.getOutsourcingId()); - + // 使用MapstructUtils进行高性能对象转换,避免时间字段序列化问题 DmsBillsFaultInstanceMobile mobileInstance = MapstructUtils.convert(billsFaultInstance, DmsBillsFaultInstanceMobile.class); billsFaultInstance.setDeviceCode(mobileInstance.getMachineCode()); @@ -470,10 +470,10 @@ public class DmsMobileController extends BaseController { billsFaultInstance.setDeviceSpec(mobileInstance.getMachineSpec()); // 手动格式化时间字段,确保PDA客户端兼容性 formatTimeFields(mobileInstance, billsFaultInstance); - + // 【调试日志】输出转换后的结果 log.info("PDA转换后结果,outsrcId: {}", mobileInstance.getOutsrcId()); - + return AjaxResult.success(mobileInstance); } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java index 12f7e36..2ea100d 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java @@ -521,6 +521,9 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS @Override @GlobalTransactional(rollbackFor = Exception.class) public int completeMaint(DmsBillsMaintDetail dmsBillsMaintDetail) { + if(!dmsBillsMaintDetail.getMaintStatus().equals(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_MAINTING)){ + throw new ServiceException("非保养中状态,不能完成保养"); + } // 获取保养工单明细中的项目列表 List dmsBillsMaintDetailProjects = dmsBillsMaintDetail.getDmsBillsMaintDetailProjectList(); // 获取保养实例ID