From 0d06048c5d560e301bf17fad476975c8ffffcb56 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期五, 05 九月 2025 16:07:31 +0800
Subject: [PATCH] 添加三级保养工作计划单生成规则

---
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceWorkPlanSheetService.java         |   28 ++++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java               |    8 -
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java                     |   40 +++++-
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceWorkPlanSheetServiceImpl.java |  103 +++++++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java                |    2 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceWorkPlanSheet.java                  |   25 ++--
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java                               |   45 -------
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java                     |    1 
 lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java                                                   |   66 ++++++++++
 9 files changed, 246 insertions(+), 72 deletions(-)

diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
index c702b27..97fb3a2 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
@@ -11,6 +11,7 @@
 import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.TimeZone;
+import java.util.function.Consumer;
 
 import org.jeecg.common.constant.SymbolConstant;
 import org.springframework.util.StringUtils;
@@ -795,4 +796,67 @@
         calendar.add(Calendar.YEAR, year);
         return calendar.getTime();
     }
-}
\ No newline at end of file
+
+    /**
+     * 妫�鏌ユ棩鏈熸槸鍚﹀湪浠婂ぉ鎴栦箣鍓嶏紙蹇界暐鏃堕棿閮ㄥ垎锛�
+     */
+    public static boolean isBeforeOrEqualToday(Date targetDate) {
+        if (targetDate == null) return false;
+
+        Calendar calTarget = Calendar.getInstance();
+        calTarget.setTime(targetDate);
+        clearTime(calTarget);
+
+        Calendar calToday = Calendar.getInstance();
+        clearTime(calToday);
+
+        return !calTarget.after(calToday);
+    }
+
+    private static void clearTime(Calendar cal) {
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+    }
+
+    public static void calculateMaintenanceDates(Date nextDate, Integer periodYears,
+                                           Consumer<Date> setNextMaintenance,
+                                           Consumer<Date> setLatestMaintenance) {
+        if (nextDate == null || periodYears == null || periodYears <= 0) {
+            return;
+        }
+
+        // 杞崲涓篔ava 8鏃ユ湡绫诲瀷
+        LocalDate nextLocal = nextDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        LocalDate today = LocalDate.now();
+
+        // 纭繚鏈夋晥鐨勮绠楀懆鏈�
+        int period = Math.max(1, periodYears); // 闃叉浼犲叆0鎴栬礋鍊�
+
+        if (nextLocal.isAfter(today)) {
+            // 鏈繃鏈燂細璁$畻鏈�杩戠淮鎶ゆ棩鏈�
+            setLatestMaintenance.accept(
+                    Date.from(nextLocal.minusYears(period).atStartOfDay()
+                            .atZone(ZoneId.systemDefault()).toInstant())
+            );
+        } else {
+            // 宸茶繃鏈燂細璁$畻鏂扮殑涓嬫缁存姢鏃ユ湡
+            while (!nextLocal.isAfter(today)) {
+                nextLocal = nextLocal.plusYears(period);
+            }
+
+            // 璁剧疆鏂版棩鏈�
+            setNextMaintenance.accept(
+                    Date.from(nextLocal.atStartOfDay()
+                            .atZone(ZoneId.systemDefault()).toInstant())
+            );
+
+            // 璁$畻鏈�杩戠淮鎶ゆ棩鏈�
+            setLatestMaintenance.accept(
+                    Date.from(nextLocal.minusYears(period).atStartOfDay()
+                            .atZone(ZoneId.systemDefault()).toInstant())
+            );
+        }
+    }
+}
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceWorkPlanSheet.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceWorkPlanSheet.java
index f1f770c..27dc3e5 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceWorkPlanSheet.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceWorkPlanSheet.java
@@ -34,41 +34,42 @@
     @ApiModelProperty(value = "涓婚敭")
 	private java.lang.String id;
 	/**鍒涘缓浜�*/
-	@Excel(name = "鍒涘缓浜�", width = 15)
     @ApiModelProperty(value = "鍒涘缓浜�")
 	private java.lang.String createBy;
 	/**鍒涘缓鏃堕棿*/
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
 	private java.util.Date createTime;
 	/**鏇存柊浜�*/
-	@Excel(name = "鏇存柊浜�", width = 15)
     @ApiModelProperty(value = "鏇存柊浜�")
 	private java.lang.String updateBy;
 	/**鏇存柊鏃堕棿*/
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
 	private java.util.Date updateTime;
 	/**鍒犻櫎鏍囪*/
-	@Excel(name = "鍒犻櫎鏍囪", width = 15)
     @ApiModelProperty(value = "鍒犻櫎鏍囪")
 	private java.lang.Integer delFlag;
-	/**璁惧缁熶竴缂栧彿*/
-	@Excel(name = "璁惧缁熶竴缂栧彿", width = 15)
-    @ApiModelProperty(value = "璁惧缁熶竴缂栧彿")
-	private java.lang.String equipmentCode;
+	/**浣跨敤閮ㄩ棬*/
+	@Excel(name = "鐢熶骇鍗曚綅", width = 15,dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
+	@ApiModelProperty(value = "鐢熶骇鍗曚綅")
+	@Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
+	private java.lang.String factoryOrgCode;
+
 	/**璁惧鍚嶇О*/
 	@Excel(name = "璁惧鍚嶇О", width = 15)
     @ApiModelProperty(value = "璁惧鍚嶇О")
 	private java.lang.String equipmentName;
-	/**浣跨敤閮ㄩ棬*/
-	@Excel(name = "浣跨敤閮ㄩ棬", width = 15)
-    @ApiModelProperty(value = "浣跨敤閮ㄩ棬")
-	@Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
-	private java.lang.String factoryOrgCode;
+
 	/**璁惧鍨嬪彿*/
 	@Excel(name = "璁惧鍨嬪彿", width = 15)
     @ApiModelProperty(value = "璁惧鍨嬪彿")
 	private java.lang.String equipmentModel;
+	/**缁熶竴缂栧彿*/
+	@Excel(name = "缁熶竴缂栧彿", width = 15)
+	@ApiModelProperty(value = "缁熶竴缂栧彿")
+	private java.lang.String equipmentCode;
+
 	/**淇濆吇鏃ユ湡*/
+	@Excel(name = "淇濆吇鏃ユ湡", width = 15,format = "yyyy-MM-dd")
     @ApiModelProperty(value = "淇濆吇鏃ユ湡")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceWorkPlanSheetService.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceWorkPlanSheetService.java
index 87781a3..9a84e74 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceWorkPlanSheetService.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceWorkPlanSheetService.java
@@ -1,7 +1,10 @@
 package org.jeecg.modules.eam.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.entity.EamEquipment;
 import org.jeecg.modules.eam.entity.EamThirdMaintenanceWorkPlanSheet;
+
+import java.util.Date;
 
 /**
  * @Description: 鈥滀笁绾т繚鍏诲伐浣滆鍒掑崟
@@ -12,9 +15,34 @@
 public interface IEamThirdMaintenanceWorkPlanSheetService extends IService<EamThirdMaintenanceWorkPlanSheet> {
 
     /**
+     * 閫氳繃璁惧缂栧彿锛屼繚鍏绘棩鏈熸煡璇�
+     * @param equipmentCode,maintenanceDate
+     * @return
+     */
+    EamThirdMaintenanceWorkPlanSheet getByEquipmentCodeAndMaintenanceDate(String equipmentCode, Date maintenanceDate);
+
+    /**
      * 鏂板
      * @param eamThirdMaintenanceWorkPlanSheet
      * @return
      */
     boolean add(EamThirdMaintenanceWorkPlanSheet eamThirdMaintenanceWorkPlanSheet);
+
+    /**
+     * existsByEquipmentAndDate
+     * @param equipmentCode
+     * @param maintenanceDate
+     * @return
+     */
+    boolean existsByEquipmentAndDate(String equipmentCode, Date maintenanceDate);
+
+    /**
+     * 澶勭悊淇濆吇鏃ユ湡鍙樻洿锛堝鍒犳敼鏌ワ級
+     */
+    void processMaintenanceDateChange(EamEquipment equipment, Date oldDate, Date newDate);
+
+    /**
+     * 鍒涘缓淇濆吇璁″垝
+     */
+    void createMaintenancePlan(EamEquipment equipment, Date maintenanceDate);
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java
index f75386d..a9c8e0e 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java
@@ -113,12 +113,8 @@
         }
 
         EamEquipment eamEquipment = eamEquipmentMapper.selectById(equipmentId);
-        EamThirdMaintenanceWorkPlanSheet eamThirdMaintenanceWorkPlanSheet=new EamThirdMaintenanceWorkPlanSheet();
-        BeanUtils.copyProperties(eamEquipment,eamThirdMaintenanceWorkPlanSheet);
-        eamThirdMaintenanceWorkPlanSheet.setId(null);
-        eamThirdMaintenanceWorkPlanSheet.setMaintenanceDate(eamEquipment.getLatestThirdMaintenance());
-        eamThirdMaintenanceWorkPlanSheetService.add(eamThirdMaintenanceWorkPlanSheet);
-
+        eamThirdMaintenanceWorkPlanSheetService.createMaintenancePlan(eamEquipment, entity.getLatestThirdMaintenance());
+        eamThirdMaintenanceWorkPlanSheetService.createMaintenancePlan(eamEquipment, entity.getNextThirdMaintenance());
         return this.getBaseMapper().updateById(entity) > 0;
     }
 
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
index a3d1f87..452d3ab 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -68,6 +68,8 @@
     private IBaseFactoryService baseFactoryService;
     @Autowired
     private IEamThirdMaintenanceWorkPlanSheetService eamThirdMaintenanceWorkPlanSheetService;
+    @Autowired
+    private IEamEquipmentExtendService iEamEquipmentExtendService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -88,12 +90,9 @@
         eamEquipmentExtend.setRepairStatus(EquipmentRepairStatus.NORMAL.name());
         equipmentExtendService.save(eamEquipmentExtend);
 
-        //涓変繚
-        EamThirdMaintenanceWorkPlanSheet eamThirdMaintenanceWorkPlanSheet=new EamThirdMaintenanceWorkPlanSheet();
-        BeanUtils.copyProperties(eamEquipment,eamThirdMaintenanceWorkPlanSheet);
-        eamThirdMaintenanceWorkPlanSheet.setId(null);
-        eamThirdMaintenanceWorkPlanSheet.setMaintenanceDate(eamEquipment.getLatestThirdMaintenance());
-        eamThirdMaintenanceWorkPlanSheetService.add(eamThirdMaintenanceWorkPlanSheet);
+        // 澶勭悊涓変繚淇濆吇璁″垝锛堜笉鍐嶈繘琛屾棩鏈熸瘮杈冿級
+        eamThirdMaintenanceWorkPlanSheetService.createMaintenancePlan(eamEquipment, eamEquipment.getLatestThirdMaintenance());
+        eamThirdMaintenanceWorkPlanSheetService.createMaintenancePlan(eamEquipment, eamEquipment.getNextThirdMaintenance());
 
         //鎻掑叆璁惧灞ュ巻   @EquipmentHistoryLog
         return eamEquipment;
@@ -105,9 +104,34 @@
      */
     @Override
     public EamEquipment updateEquipment(EamEquipment eamEquipment){
-        if (eamEquipment == null) {
-            return null;
+        if (eamEquipment == null) return null;
+
+        if (eamEquipment.getNextThirdMaintenance() != null &&
+                eamEquipment.getThirdMaintenancePeriod() != null) {
+
+            org.jeecg.common.util.DateUtils.calculateMaintenanceDates(
+                    eamEquipment.getNextThirdMaintenance(),
+                    eamEquipment.getThirdMaintenancePeriod(),
+                    newDate -> eamEquipment.setNextThirdMaintenance(newDate),
+                    latestDate -> eamEquipment.setLatestThirdMaintenance(latestDate)
+            );
         }
+
+        // 鑾峰彇鏃ф暟鎹�
+        EamEquipmentExtend old = iEamEquipmentExtendService.getById(eamEquipment.getId());
+        if (old == null) return null;
+
+        // 鎻愬彇鏂版棫鏃ユ湡閬垮厤閲嶅璁块棶
+        Date newLatest = eamEquipment.getLatestThirdMaintenance();
+        Date newNext = eamEquipment.getNextThirdMaintenance();
+        Date oldLatest = old.getLatestThirdMaintenance();
+        Date oldNext = old.getNextThirdMaintenance();
+
+        // 澶勭悊淇濆吇鏃ユ湡鍙樻洿
+        eamThirdMaintenanceWorkPlanSheetService.processMaintenanceDateChange(eamEquipment, oldLatest, newLatest);
+        eamThirdMaintenanceWorkPlanSheetService.processMaintenanceDateChange(eamEquipment, oldNext, newNext);
+
+        // 鏇存柊涓昏〃鍜屾墿灞曡〃
         eamEquipmentMapper.updateById(eamEquipment);
         EamEquipmentExtend eamEquipmentExtend = new EamEquipmentExtend();
         BeanUtils.copyProperties(eamEquipment, eamEquipmentExtend);
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceWorkPlanSheetServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceWorkPlanSheetServiceImpl.java
index a5da189..0801543 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceWorkPlanSheetServiceImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceWorkPlanSheetServiceImpl.java
@@ -1,8 +1,12 @@
 package org.jeecg.modules.eam.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.modules.eam.constant.HfTemplateCategoryEnum;
 import org.jeecg.modules.eam.entity.EamBaseHFCode;
+import org.jeecg.modules.eam.entity.EamEquipment;
 import org.jeecg.modules.eam.entity.EamThirdMaintenanceWorkPlanSheet;
 import org.jeecg.modules.eam.mapper.EamThirdMaintenanceWorkPlanSheetMapper;
 import org.jeecg.modules.eam.service.IEamBaseHFCodeService;
@@ -11,6 +15,9 @@
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * @Description: 鈥滀笁绾т繚鍏诲伐浣滆鍒掑崟
@@ -25,6 +32,21 @@
     private IEamBaseHFCodeService hfCodeService;
 
     /**
+     * 閫氳繃璁惧缂栧彿锛屼繚鍏绘棩鏈熸煡璇�
+     * @param equipmentCode,maintenanceDate
+     * @return
+     */
+    @Override
+    public EamThirdMaintenanceWorkPlanSheet getByEquipmentCodeAndMaintenanceDate(String equipmentCode, java.util.Date maintenanceDate){
+        List<EamThirdMaintenanceWorkPlanSheet> list = this.baseMapper.selectList(new QueryWrapper<EamThirdMaintenanceWorkPlanSheet>()
+                .eq("equipment_code",equipmentCode).eq("maintenance_date",maintenanceDate));
+        if(list == null || list.isEmpty()) {
+            return null;
+        }else {
+            return list.get(0);
+        }
+    }
+    /**
      * 鏂板
      * @param eamThirdMaintenanceWorkPlanSheet
      * @return
@@ -37,6 +59,87 @@
             throw new JeecgBootException("鏈厤缃笁绾т繚鍏诲伐浣滆鍒掑崟鐨凥F缂栫爜锛屾坊鍔犲け璐ワ紒");
         }
         eamThirdMaintenanceWorkPlanSheet.setHfCode(eamBaseHFCode.getHfCode());
+        eamThirdMaintenanceWorkPlanSheet.setDelFlag(0);
         return super.save(eamThirdMaintenanceWorkPlanSheet);
     }
+
+    /**
+     * existsByEquipmentAndDate
+     * @param equipmentCode
+     * @param maintenanceDate
+     * @return
+     */
+    @Override
+    public boolean existsByEquipmentAndDate(String equipmentCode, Date maintenanceDate){
+        List<EamThirdMaintenanceWorkPlanSheet> list = this.baseMapper.selectList(new QueryWrapper<EamThirdMaintenanceWorkPlanSheet>()
+                .eq("equipment_code",equipmentCode).eq("maintenance_date",maintenanceDate));
+        return list != null && !list.isEmpty();
+    }
+
+    /**
+     * 澶勭悊淇濆吇鏃ユ湡鍙樻洿锛堝鍒犳敼鏌ワ級
+     */
+    @Override
+    public void processMaintenanceDateChange(EamEquipment equipment, Date oldDate, Date newDate) {
+        String equipmentCode = equipment.getEquipmentCode();
+        //鏃ユ湡浠庢湁鍊煎彉涓簄ull 鈫� 鍒犻櫎璁″垝
+        if (oldDate != null && newDate == null) {
+            deleteMaintenancePlan(equipmentCode, oldDate);
+        }
+        //鏃ユ湡浠巒ull鍙樹负鏈夊�� 鈫� 鏂板璁″垝
+        else if (oldDate == null && newDate != null) {
+            createMaintenancePlan(equipment, newDate);
+        }
+        //鏃ユ湡鍊煎彂鐢熷彉鍖� 鈫� 鏇存柊璁″垝鏃ユ湡
+        else if (oldDate != null && !oldDate.equals(newDate)) {
+            updateMaintenancePlanDate(equipmentCode, oldDate, newDate,equipment);
+        }
+    }
+
+    /**
+     * 鍒涘缓淇濆吇璁″垝
+     */
+    @Override
+    public void createMaintenancePlan(EamEquipment equipment, Date maintenanceDate) {
+        if (maintenanceDate == null) return;
+        // 閬垮厤閲嶅鍒涘缓
+        if (this.existsByEquipmentAndDate(
+                equipment.getEquipmentCode(), maintenanceDate)) {
+            return;
+        }
+        EamThirdMaintenanceWorkPlanSheet plan = new EamThirdMaintenanceWorkPlanSheet();
+        plan.setEquipmentCode(equipment.getEquipmentCode());
+        plan.setEquipmentName(equipment.getEquipmentName());
+        plan.setFactoryOrgCode(equipment.getFactoryOrgCode());
+        plan.setEquipmentModel(equipment.getEquipmentModel());
+        plan.setMaintenanceDate(maintenanceDate);
+        this.add(plan);
+    }
+
+    /**
+     * 鏇存柊淇濆吇璁″垝鏃ユ湡
+     */
+    private void updateMaintenancePlanDate(String equipmentCode, Date oldDate, Date newDate,EamEquipment equipment) {
+        EamThirdMaintenanceWorkPlanSheet plan = this
+                .getByEquipmentCodeAndMaintenanceDate(equipmentCode, oldDate);
+
+        if (plan != null) {
+            plan.setMaintenanceDate(newDate);
+            this.updateById(plan);
+        }else {
+            createMaintenancePlan(equipment, newDate);
+        }
+    }
+
+    /**
+     * 鍒犻櫎淇濆吇璁″垝
+     */
+    private void deleteMaintenancePlan(String equipmentCode, Date date) {
+        EamThirdMaintenanceWorkPlanSheet plan = this
+                .getByEquipmentCodeAndMaintenanceDate(equipmentCode, date);
+
+        if (plan != null) {
+            this.removeById(plan.getId());
+        }
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
index bc124a6..4351669 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -336,7 +336,7 @@
                     if (eamEquipment.getNextThirdMaintenance() != null &&
                             eamEquipment.getThirdMaintenancePeriod() != null) {
 
-                        calculateMaintenanceDates(
+                        org.jeecg.common.util.DateUtils.calculateMaintenanceDates(
                                 eamEquipment.getNextThirdMaintenance(),
                                 eamEquipment.getThirdMaintenancePeriod(),
                                 newDate -> eamEquipment.setNextThirdMaintenance(newDate),
@@ -348,7 +348,7 @@
                     if (eamEquipment.getNextTechnologyCheck() != null &&
                             eamEquipment.getTechnologyCheckPeriod() != null) {
 
-                        calculateMaintenanceDates(
+                        org.jeecg.common.util.DateUtils.calculateMaintenanceDates(
                                 eamEquipment.getNextTechnologyCheck(),
                                 eamEquipment.getTechnologyCheckPeriod(),
                                 newDate -> eamEquipment.setNextTechnologyCheck(newDate),
@@ -445,47 +445,6 @@
             return Result.OK(items);
         }catch (Exception e) {
             return Result.error("鏁版嵁杞瘧澶辫触锛�");
-        }
-    }
-
-    // 鏃ユ湡璁$畻宸ュ叿鏂规硶
-    private void calculateMaintenanceDates(Date nextDate, Integer periodYears,
-                                           Consumer<Date> setNextMaintenance,
-                                           Consumer<Date> setLatestMaintenance) {
-        if (nextDate == null || periodYears == null || periodYears <= 0) {
-            return;
-        }
-
-        // 杞崲涓篔ava 8鏃ユ湡绫诲瀷
-        LocalDate nextLocal = nextDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
-        LocalDate today = LocalDate.now();
-
-        // 纭繚鏈夋晥鐨勮绠楀懆鏈�
-        int period = Math.max(1, periodYears); // 闃叉浼犲叆0鎴栬礋鍊�
-
-        if (nextLocal.isAfter(today)) {
-            // 鏈繃鏈燂細璁$畻鏈�杩戠淮鎶ゆ棩鏈�
-            setLatestMaintenance.accept(
-                    Date.from(nextLocal.minusYears(period).atStartOfDay()
-                            .atZone(ZoneId.systemDefault()).toInstant())
-            );
-        } else {
-            // 宸茶繃鏈燂細璁$畻鏂扮殑涓嬫缁存姢鏃ユ湡
-            while (!nextLocal.isAfter(today)) {
-                nextLocal = nextLocal.plusYears(period);
-            }
-
-            // 璁剧疆鏂版棩鏈�
-            setNextMaintenance.accept(
-                    Date.from(nextLocal.atStartOfDay()
-                            .atZone(ZoneId.systemDefault()).toInstant())
-            );
-
-            // 璁$畻鏈�杩戠淮鎶ゆ棩鏈�
-            setLatestMaintenance.accept(
-                    Date.from(nextLocal.minusYears(period).atStartOfDay()
-                            .atZone(ZoneId.systemDefault()).toInstant())
-            );
         }
     }
 
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
index db0db28..bf01e42 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
@@ -20,7 +20,6 @@
 import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
 
 import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
-import org.jeecg.modules.eam.service.IEamEquipmentService;
 import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
 import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo;
 import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
index 229d553..ce3fc7b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -877,7 +877,7 @@
                 eamThirdMaintenanceOrderIPage=this.baseMapper.queryPageList(page,queryWrapper.clone().like("maintenance_date", nextNextMonth));
                 break;
             default:
-                break;
+                return eamThirdMaintenanceOrderIPage;
         }
         eamThirdMaintenanceOrderIPage.getRecords().forEach(eamThirdMaintenanceOrder -> {
             eamThirdMaintenanceOrder.setTechnologyStatus(eamEquipmentExtendService.getById(eamThirdMaintenanceOrder.getEquipmentId()).getTechnologyStatus());

--
Gitblit v1.9.3