From b47429d951a5bdea2d81cdc011251f68eefb4964 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期四, 05 六月 2025 13:38:39 +0800
Subject: [PATCH] refactor(eims): 优化设备维护计划导入功能

---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintPlanServiceImpl.java |  115 +++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 78 insertions(+), 37 deletions(-)

diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintPlanServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintPlanServiceImpl.java
index 1343ecc..85b0b39 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintPlanServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintPlanServiceImpl.java
@@ -233,7 +233,11 @@
             EasyExcelCellListener readYearListener = new EasyExcelCellListener(2, 3);
             EasyExcel.read(is.getInputStream(), readYearListener).headRowNumber(0).sheet().doReadSync();
             String yearStr = readYearListener.getCellValue();
+            if (yearStr == null || yearStr.isEmpty()) {
+                yearStr = "";
+            }
             String year = yearStr.replaceAll("[^\\d]", ""); // 鍘婚櫎闈炴暟瀛楀瓧绗�
+
             year = (year.length() == 4) ? year : DateUtils.getDate().substring(0,4);
 
             QueryWrapper<EimsEqu> queryWrapper = new QueryWrapper<>();
@@ -263,47 +267,78 @@
                     failureNum++;
                     continue;
                 }
+                if (period.length() == 1) {
+                    period = "1"+period;
+                }
 
                 try {
                     if (period.length() > 1) {
                         String num = period.replaceAll("[^\\d]", "");
-                        maintPlanBo.setMaintCycle(Long.parseLong(num));
-                        String substring = period.replace(num, "");
-                        // 杞崲鍛ㄦ湡鍗曚綅锛孧杞崲涓�3锛孌杞崲涓�1锛孻杞崲涓�5锛學杞崲涓�2锛孮杞崲涓�4
-                        switch (substring) {
-                            case "M":
-                                substring = "3";
-                                break;
-                            case "D":
-                                substring = "1";
-                                break;
-                            case "Y":
-                                substring = "5";
-                                break;
-                            case "W":
-                                substring = "2";
-                                break;
-                            case "Q":
-                                substring = "4";
-                                break;
-                            case "涓湀":
-                                substring = "3";
-                                break;
-                            case "澶�":
-                                substring = "1";
-                                break;
-                            case "骞�":
-                                substring = "5";
-                                break;
-                            case "鍛�":
-                                substring = "2";
-                                break;
-                            case "瀛e害":
-                                substring = "4";
-                                break;
-                            default:
+                        if ("".equals(num)) {
+                            switch (period) {
+                                case "涓�涓湀":
+                                    maintPlanBo.setMaintCycle(1L);
+                                    maintPlanBo.setMaintCycleUnit("3");
+                                    break;
+                                case "涓や釜鏈�":
+                                    maintPlanBo.setMaintCycle(2L);
+                                    maintPlanBo.setMaintCycleUnit("3");
+                                    break;
+                                case "浜屼釜鏈�":
+                                    maintPlanBo.setMaintCycle(2L);
+                                    maintPlanBo.setMaintCycleUnit("3");
+                                    break;
+                                case "涓変釜鏈�":
+                                    maintPlanBo.setMaintCycle(3L);
+                                    maintPlanBo.setMaintCycleUnit("3");
+                                    break;
+                                case "鍏釜鏈�":
+                                    maintPlanBo.setMaintCycle(6L);
+                                    maintPlanBo.setMaintCycleUnit("3");
+                                    break;
+                                default:
+                                    break;
+                            }
+                        }else {
+
+                            maintPlanBo.setMaintCycle(Long.parseLong(num));
+                            String substring = period.replace(num, "");
+                            // 杞崲鍛ㄦ湡鍗曚綅锛孧杞崲涓�3锛孌杞崲涓�1锛孻杞崲涓�5锛學杞崲涓�2锛孮杞崲涓�4
+                            switch (substring) {
+                                case "M":
+                                    substring = "3";
+                                    break;
+                                case "D":
+                                    substring = "1";
+                                    break;
+                                case "Y":
+                                    substring = "5";
+                                    break;
+                                case "W":
+                                    substring = "2";
+                                    break;
+                                case "Q":
+                                    substring = "4";
+                                    break;
+                                case "涓湀":
+                                    substring = "3";
+                                    break;
+                                case "澶�":
+                                    substring = "1";
+                                    break;
+                                case "骞�":
+                                    substring = "5";
+                                    break;
+                                case "鍛�":
+                                    substring = "2";
+                                    break;
+                                case "瀛e害":
+                                    substring = "4";
+                                    break;
+                                default:
+                            }
+                            maintPlanBo.setMaintCycleUnit(substring);
                         }
-                        maintPlanBo.setMaintCycleUnit(substring);
                     } else {
                         maintPlanBo.setMaintCycle(Long.parseLong(period));
                         maintPlanBo.setMaintCycleUnit("");
@@ -362,7 +397,13 @@
                 }
             }
 
-            return is.getOriginalFilename() + " 瀵煎叆鎴愬姛锛�" + successNum + "鏉★紝瀵煎叆澶辫触锛�" + failureNum + "鏉�";
+            // 濡傛灉澶辫触鏉′欢灏忎簬1鍒欎笉鎵撳嵃淇℃伅
+            if (failureNum <= 0) {
+                return "鎴愬姛锛�";
+            } else {
+                return is.getOriginalFilename() + " 瀵煎叆鎴愬姛锛�" + successNum + "鏉★紝瀵煎叆澶辫触锛�" + failureNum + "鏉�";
+            }
+
         } catch (Exception e) {
             return is.getOriginalFilename() + " 瀵煎叆寮傚父锛�" + e.getMessage();
         }

--
Gitblit v1.9.3