From 106cf48305b24feb145654e425334467c9702f85 Mon Sep 17 00:00:00 2001 From: yangk Date: Wed, 17 Jun 2026 15:42:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(asset):=20=E6=B7=BB=E5=8A=A0=E8=B5=84?= =?UTF-8?q?=E4=BA=A7=E7=BB=B4=E4=BF=9D=E6=97=A5=E6=9C=9F=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96=E7=BB=B4=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增updateAssetMaintenanceDate方法用于更新资产上次维保日期 - 在维修订单完成后自动更新资产的last_maintenance_date字段 - 修复维修订单中的受控字段重置逻辑问题 - 优化维修完成时间验证逻辑,支持按天比较而非精确到秒 - 调整维修相关页面的时间显示格式为年月日 --- .../ruoyi/asset/mapper/AmsAssetMapper.java | 14 +++++++++++++ .../impl/AmsRepairOrderServiceImpl.java | 20 +++++++++++++------ .../resources/mapper/asset/AmsAssetMapper.xml | 8 ++++++++ .../templates/asset/repair/view.html | 6 +++--- 4 files changed, 39 insertions(+), 9 deletions(-) diff --git a/ruoyi-asset/src/main/java/com/ruoyi/asset/mapper/AmsAssetMapper.java b/ruoyi-asset/src/main/java/com/ruoyi/asset/mapper/AmsAssetMapper.java index 76dc7f4..b561884 100644 --- a/ruoyi-asset/src/main/java/com/ruoyi/asset/mapper/AmsAssetMapper.java +++ b/ruoyi-asset/src/main/java/com/ruoyi/asset/mapper/AmsAssetMapper.java @@ -134,6 +134,20 @@ public interface AmsAssetMapper @Param("updateBy") String updateBy, @Param("updateTime") Date updateTime); + /** + * 更新资产上次维保日期 + * + * @param assetId 资产ID + * @param lastMaintenanceDate 上次维保日期 + * @param updateBy 更新人 + * @param updateTime 更新时间 + * @return 结果 + */ + public int updateAssetMaintenanceDate(@Param("assetId") Long assetId, + @Param("lastMaintenanceDate") Date lastMaintenanceDate, + @Param("updateBy") String updateBy, + @Param("updateTime") Date updateTime); + /** * 删除资产台账 * diff --git a/ruoyi-asset/src/main/java/com/ruoyi/asset/service/impl/AmsRepairOrderServiceImpl.java b/ruoyi-asset/src/main/java/com/ruoyi/asset/service/impl/AmsRepairOrderServiceImpl.java index 52dc78f..80869bf 100644 --- a/ruoyi-asset/src/main/java/com/ruoyi/asset/service/impl/AmsRepairOrderServiceImpl.java +++ b/ruoyi-asset/src/main/java/com/ruoyi/asset/service/impl/AmsRepairOrderServiceImpl.java @@ -110,7 +110,7 @@ public class AmsRepairOrderServiceImpl implements IAmsRepairOrderService amsRepairOrder.setCreateTime(now); // 重置受控的维修中及维修完成字段,以防篡改 - amsRepairOrder.setRepairerType(REPAIRER_TYPE_INTERNAL); + amsRepairOrder.setRepairerType(null); amsRepairOrder.setRepairUserId(null); amsRepairOrder.setRepairUserName(null); amsRepairOrder.setRepairOrgName(null); @@ -160,8 +160,7 @@ public class AmsRepairOrderServiceImpl implements IAmsRepairOrderService amsRepairOrder.setUpdateTime(DateUtils.getNowDate()); // 重置受控字段 - amsRepairOrder.setRepairerType(StringUtils.isEmpty(current.getRepairerType()) - ? REPAIRER_TYPE_INTERNAL : current.getRepairerType()); + amsRepairOrder.setRepairerType(current.getRepairerType()); amsRepairOrder.setRepairUserId(null); amsRepairOrder.setRepairUserName(null); amsRepairOrder.setRepairOrgName(null); @@ -400,9 +399,14 @@ public class AmsRepairOrderServiceImpl implements IAmsRepairOrderService { throw new ServiceException("维修完成时间不能为空"); } - if (order.getRepairStartTime() != null && amsRepairOrder.getRepairFinishTime().before(order.getRepairStartTime())) + if (order.getRepairStartTime() != null) { - throw new ServiceException("维修完成时间不能早于维修开始时间"); + Date startZero = DateUtils.truncate(order.getRepairStartTime(), java.util.Calendar.DATE); + Date finishZero = DateUtils.truncate(amsRepairOrder.getRepairFinishTime(), java.util.Calendar.DATE); + if (finishZero.before(startZero)) + { + throw new ServiceException("维修完成时间不能早于维修开始时间"); + } } // 3. 悲观锁锁定资产 @@ -417,7 +421,11 @@ public class AmsRepairOrderServiceImpl implements IAmsRepairOrderService assetStatusTransitionService.finishRepair(order.getAssetId(), order.getBeforeAssetStatus(), context); - // 5. 填充完成属性 + // 5. 使用维修完成时间更新资产的上次维保日期last_maintenance_date + amsAssetMapper.updateAssetMaintenanceDate(order.getAssetId(), amsRepairOrder.getRepairFinishTime(), + operateContext.getOperateLoginName(), DateUtils.getNowDate()); + + // 6. 填充完成属性 order.setRepairFinishTime(amsRepairOrder.getRepairFinishTime()); order.setRepairResult(StringUtils.trim(amsRepairOrder.getRepairResult())); order.setRepairCost(amsRepairOrder.getRepairCost()); diff --git a/ruoyi-asset/src/main/resources/mapper/asset/AmsAssetMapper.xml b/ruoyi-asset/src/main/resources/mapper/asset/AmsAssetMapper.xml index b6478d6..f8e96c1 100644 --- a/ruoyi-asset/src/main/resources/mapper/asset/AmsAssetMapper.xml +++ b/ruoyi-asset/src/main/resources/mapper/asset/AmsAssetMapper.xml @@ -313,6 +313,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and epc_code = #{epcCode} + + update ams_asset + set last_maintenance_date = #{lastMaintenanceDate}, + update_by = #{updateBy}, + update_time = #{updateTime} + where asset_id = #{assetId} and del_flag = '0' + + update ams_asset set del_flag = '1' where asset_id = #{assetId} diff --git a/ruoyi-asset/src/main/resources/templates/asset/repair/view.html b/ruoyi-asset/src/main/resources/templates/asset/repair/view.html index 35644ec..3e90e56 100644 --- a/ruoyi-asset/src/main/resources/templates/asset/repair/view.html +++ b/ruoyi-asset/src/main/resources/templates/asset/repair/view.html @@ -108,7 +108,7 @@
-

+

@@ -201,7 +201,7 @@
-

+

@@ -209,7 +209,7 @@
-

+