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/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java |  105 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 94 insertions(+), 11 deletions(-)

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 a2233c6..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
@@ -24,12 +24,13 @@
 import org.jeecg.modules.eam.request.EamEquipmentQuery;
 import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
 import org.jeecg.modules.eam.service.IEamEquipmentService;
+import org.jeecg.modules.eam.service.IEamThirdMaintenanceWorkPlanSheetService;
 import org.jeecg.modules.eam.vo.EamEquipmentTree;
 import org.jeecg.modules.eam.vo.EquipmentSearchResult;
-//import org.jeecg.modules.mdc.entity.MdcEquipment;
-//import org.jeecg.modules.mdc.service.IMdcEquipmentService;
 import org.jeecg.modules.system.entity.BaseFactory;
+import org.jeecg.modules.system.entity.EamBaseRepairDepart;
 import org.jeecg.modules.system.service.IBaseFactoryService;
+import org.jeecg.modules.system.service.IEamBaseRepairDepartService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -41,15 +42,16 @@
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
-
+import org.apache.commons.lang3.time.DateUtils;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.text.ParseException;
+import java.util.*;
+import java.util.function.Consumer;
 import java.util.stream.Collectors;
+import java.time.LocalDate;
+import java.time.ZoneId;
 
 /**
  * @Description: 璁惧鍙拌处
@@ -77,7 +79,8 @@
     private TranslateDictTextUtils translateDictTextUtils;
     @Autowired
     private IBaseFactoryService baseFactoryService;
-
+    @Autowired
+    private IEamBaseRepairDepartService eamBaseRepairDepartService;
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
      *
@@ -227,6 +230,19 @@
         equipmentList.forEach(item -> {
             EamEquipmentDto eamEquipmentDto = new EamEquipmentDto();
             BeanUtils.copyProperties(item,eamEquipmentDto);
+            if (eamEquipmentDto.getFactoryOrgCode().length()==12){
+                eamEquipmentDto.setFactoryOrgCode(
+                        baseFactoryService.factoryDataNameByOrgCode(eamEquipmentDto.getZxfactoryOrgCode())
+                        +"/"+baseFactoryService.factoryDataNameByOrgCode(eamEquipmentDto.getGqfactoryOrgCode())+"/"+
+                                baseFactoryService.factoryDataNameByOrgCode(eamEquipmentDto.getFactoryOrgCode()));
+            }else {
+                eamEquipmentDto.setFactoryOrgCode(
+                        baseFactoryService.factoryDataNameByOrgCode(eamEquipmentDto.getZxfactoryOrgCode())
+                                +"/"+ baseFactoryService.factoryDataNameByOrgCode(eamEquipmentDto.getFactoryOrgCode()));
+            }
+            if (eamEquipmentDto.getEquipmentWeight()!=null){
+                eamEquipmentDto.setEquipmentWeightStr(eamEquipmentDto.getEquipmentWeight().toEngineeringString());
+            }
             eamEquipmentDtos.add(eamEquipmentDto);
         });
         // Step.3 AutoPoi 瀵煎嚭Excel
@@ -287,12 +303,67 @@
                     }else {
                         eamEquipment.setFactoryOrgCode(baseFactory.getOrgCode());
                     }
+                    EamBaseRepairDepart eamBaseRepairDepart=eamBaseRepairDepartService.searchCenterByKeyWord(eamEquipment.getRepairDepartOrgCode());
+                    if(eamBaseRepairDepart==null){
+                        sb.append(String.format("缁翠慨鐝粍淇℃伅[%s]涓嶅瓨鍦紝鏃犳硶瀵煎叆\n\r", eamEquipment.getRepairDepartOrgCode()));
+                        continue;
+                    }else {
+                        eamEquipment.setRepairDepartOrgCode(eamBaseRepairDepart.getOrgCode());
+                    }
+                    // 瀛楁鏍¢獙涓庡~鍏�
+                    if (StringUtils.isNotBlank(eamEquipment.getLeaveFactory())) {
+                        String leaveFactoryStr = eamEquipment.getLeaveFactory();
+                        try {
+                            // 瀹氫箟鏀寔瑙f瀽鐨勬棩鏈熸牸寮�
+                            String[] parsePatterns = {
+                                    "yyyy/MM/dd", "yyyy-MM-dd", "yyyyMMdd"
+                            };
+                            // 鏍煎紡1: 鍖呭惈鍒嗛殧绗︾殑鏃ユ湡鏍煎紡 (濡�2025/07/30, 2025-07-30绛�)
+                            if (leaveFactoryStr.contains("/") || leaveFactoryStr.contains("-") ||
+                                    (leaveFactoryStr.length() == 8 && leaveFactoryStr.matches("\\d{8}"))) {
+
+                                // 浣跨敤鎸囧畾鐨勬牸寮忔暟缁勮В鏋愭棩鏈�
+                                Date leaveFactoryDate = DateUtils.parseDate(leaveFactoryStr, parsePatterns);
+                                eamEquipment.setLeaveFactoryDate(leaveFactoryDate);
+                            } else {
+                                log.warn("绂诲紑宸ュ巶鏃ユ湡鏍煎紡鏃犳晥: {}", leaveFactoryStr);
+                            }
+                        } catch (ParseException e) {
+                            log.error("鏃ユ湡瑙f瀽澶辫触: {}", leaveFactoryStr, e);
+                        }
+                    }
+                    // 璁$畻涓変繚鏃ユ湡
+                    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)
+                        );
+                    }
+
+                    // 璁$畻鎶�鏈姸鎬侀壌瀹氭棩鏈�
+                    if (eamEquipment.getNextTechnologyCheck() != null &&
+                            eamEquipment.getTechnologyCheckPeriod() != null) {
+
+                        org.jeecg.common.util.DateUtils.calculateMaintenanceDates(
+                                eamEquipment.getNextTechnologyCheck(),
+                                eamEquipment.getTechnologyCheckPeriod(),
+                                newDate -> eamEquipment.setNextTechnologyCheck(newDate),
+                                latestDate -> eamEquipment.setLatestTechnologyCheck(latestDate)
+                        );
+                    }
                     EamEquipment equipment = eamEquipmentService.saveEquipment(eamEquipment);
                     if (equipment == null) {
                         //淇濆瓨澶辫触锛岃烦杩囨湰娆″惊鐜�
                         sb.append(String.format("璁惧缂栫爜[%s]淇濆瓨澶辫触锛屾棤娉曞鍏n\r", eamEquipment.getEquipmentCode()));
                         continue;
                     }
+                    EamEquipmentExtend eamEquipmentExtend=new EamEquipmentExtend();
+                    BeanUtils.copyProperties(eamEquipmentExtend,equipment);
+                    eamEquipmentExtendService.save(eamEquipmentExtend);
                 }
                 log.info("娑堣�楁椂闂�" + (System.currentTimeMillis() - start) + "姣");
                 //update-end-author:taoyan date:20190528 for:鎵归噺鎻掑叆鏁版嵁
@@ -360,9 +431,21 @@
     @GetMapping(value = "/asyncLoadEquipment")
     public Result<?> asyncLoadEquipment(@RequestParam(name="keyword",required = false) String keyword,
                                         @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize,
-                                        @RequestParam(name="id",required = false) String id) {
-        List<EquipmentSearchResult> resultList = eamEquipmentService.asyncLoadEquipment(keyword, pageSize, id);
-        return Result.ok(resultList);
+                                        @RequestParam(name="id",required = false) String id,
+                                        @RequestParam(name="factoryOrgCode",required = false) String factoryOrgCode) {
+        List<EquipmentSearchResult> resultList = eamEquipmentService.asyncLoadEquipment(keyword, pageSize, id, factoryOrgCode);
+        List<JSONObject> items = new ArrayList<>();
+        try {
+            for(EquipmentSearchResult vo : resultList) {
+                String json = objectMapper.writeValueAsString(vo);
+                JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
+                translateDictTextUtils.translateField("factoryOrgCode", vo.getFactoryOrgCode(), item, "eam_base_factory,factory_name,org_code");
+                items.add(item);
+            }
+            return Result.OK(items);
+        }catch (Exception e) {
+            return Result.error("鏁版嵁杞瘧澶辫触锛�");
+        }
     }
 
 }

--
Gitblit v1.9.3