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}
+