From 12bfd8a94f5b5afe8c149e8de7e275a81a4bf77e Mon Sep 17 00:00:00 2001
From: “linengliang” <vanSuperEnergy@163.com>
Date: 星期一, 04 十二月 2023 17:20:05 +0800
Subject: [PATCH] 保养标准导入

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java |  243 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 240 insertions(+), 3 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java
index 5abbfad..3606d73 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java
@@ -9,6 +9,9 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.apache.poi.xwpf.usermodel.*;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
@@ -19,14 +22,19 @@
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.eam.entity.*;
 import org.jeecg.modules.eam.service.*;
+import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
 import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.Date;
@@ -64,6 +72,19 @@
     @Autowired
     @Lazy
     private IMaintenanceStandardWorkInstructionService maintenanceStandardWorkInstructionService;
+
+    @Autowired
+    private IMaintenanceProjectService maintenanceProjectService;
+
+    @Autowired
+    @Lazy
+    private IdentityService sysIdentityService;
+    @Autowired
+    @Lazy
+    private IMaintenanceProjectCategoryService maintenanceProjectCategoryService;
+    @Lazy
+    @Autowired
+    private IMaintenanceCycleService maintenanceCycleService;
 
 
 
@@ -251,9 +272,220 @@
      * @param response
      * @return
      */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, MaintenanceStandard.class);
+    @RequestMapping(value = "/importExcelOfTwoMaintenance", method = RequestMethod.POST)
+    public Result<?> importExcelOfTwoMaintenance(HttpServletRequest request, HttpServletResponse response) {
+        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+        LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+        String exceptionInfo = "";
+        int exceptionNum = 0;
+        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+            MultipartFile file = entity.getValue();
+            try {
+                InputStream fis = file.getInputStream();
+                XWPFDocument document = new XWPFDocument(fis);
+                XWPFParagraph mainTitleParagraph = document.getParagraphs().get(0);
+                if (mainTitleParagraph != null) {
+                    // 鑾峰彇涓绘爣棰樻枃鏈唴瀹�
+                    String mainTitle = mainTitleParagraph.getText();
+                    if(mainTitle.equals("鐢熶骇璁惧浜岀骇淇濆吇瑙勮寖")){
+                        for (XWPFTable table : document.getTables()) {
+                            // 閬嶅巻琛ㄦ牸涓殑鎵�鏈夎
+                            int rowNumber = 0;
+                            String equipmentNum = "";
+                            Equipment equipment = null;
+                            MaintenanceStandard maintenanceStandard = null;
+                            XWPFTableRow row0= table.getRow(0);
+                            if(ObjectUtils.isNotNull(row0)){
+                                XWPFTableCell cellEquipmentNum = row0.getCell(3);
+                                if(ObjectUtils.isNotNull(cellEquipmentNum)){
+                                    equipmentNum =cellEquipmentNum.getText();
+                                    equipment = equipmentService.getOne(new QueryWrapper<Equipment>().eq("num",equipmentNum).eq("del_flag",0),false);
+                                    if(ObjectUtils.isNotNull(equipment)){
+                                        maintenanceStandard = maintenanceStandardService.getOne(new QueryWrapper<MaintenanceStandard>().eq("version_status",2).eq("del_flag",0).eq("equipment_id",equipment.getId()),false);
+                                        if(ObjectUtils.isNull(maintenanceStandard)){
+                                            maintenanceStandard = new MaintenanceStandard();
+                                            maintenanceStandard.setNum(sysIdentityService.getNumByTypeAndLength("DailyMaintenanceStandard",4));
+                                            maintenanceStandard.setEquipmentId(equipment.getId());
+                                            maintenanceStandard.setAssignMode("1");
+                                            maintenanceStandard.setVersion("1.0");
+                                            maintenanceStandard.setVersionStatus("2");
+                                            maintenanceStandardService.save(maintenanceStandard);
+                                        }
+                                        else {
+                                            continue;
+                                        }
+                                    }
+                                    else {
+                                        continue;
+                                    }
+                                }
+                                else {
+                                    continue;
+                                }
+                            }
+                            else {
+                                continue;
+                            }
+                            for (XWPFTableRow row : table.getRows()) {
+                                XWPFTableCell cell0 = row.getCell(0);
+                                XWPFTableCell cell2 = row.getCell(2);
+                                if(rowNumber>3){
+                                    String role = getMergedCellValue(cell0);
+                                    String projectName = cell2.getText();
+                                    MaintenanceStandardDetail maintenanceStandardDetail = new MaintenanceStandardDetail();
+                                    MaintenanceProjectCategory maintenanceProjectCategory = maintenanceProjectCategoryService.getOne(new QueryWrapper<MaintenanceProjectCategory>().eq("name","浜岀骇淇濆吇").eq("del_flag",0),false);
+                                    if(ObjectUtils.isNotNull(maintenanceProjectCategory)){
+                                        MaintenanceProject maintenanceProject = maintenanceProjectService.getOne(new QueryWrapper<MaintenanceProject>().eq("name",projectName).eq("del_flag",0).eq("maintenance_project_category_id",maintenanceProjectCategory.getId()),false);
+                                        MaintenanceCycle maintenanceCycle = maintenanceCycleService.getOne(new QueryWrapper<MaintenanceCycle>().eq("name","6鏈�").eq("version_status",2).eq("del_flag",0),false);
+                                        if (!ObjectUtils.isNotNull(maintenanceProject)) {
+                                            maintenanceProject = new MaintenanceProject();
+                                            maintenanceProject.setNum(sysIdentityService.getNumByTypeAndLength("MainOfTwo", 4));
+                                            maintenanceProject.setName(projectName);
+                                            maintenanceProject.setMaintenanceProjectCategoryId(maintenanceProjectCategory.getId());
+                                            maintenanceProject.setDelFlag(0);
+                                            maintenanceProjectService.save(maintenanceProject);
+                                        }
+                                        maintenanceStandardDetail.setMaintenanceProjectId(maintenanceProject.getId());
+                                        if(role.equals("缁翠慨浜哄憳淇濆吇鍐呭")){
+                                            maintenanceStandardDetail.setMaintenanceRole("maintenance");
+                                        } else if(role.equals("鎿嶄綔浜哄憳淇濆吇鍐呭")){
+                                            maintenanceStandardDetail.setMaintenanceRole("operator");
+                                        }
+                                        if(ObjectUtils.isNotNull(maintenanceCycle)){
+                                            maintenanceStandardDetail.setMaintenanceCycleId(maintenanceCycle.getId());
+                                        }
+                                        maintenanceStandardDetailService.save(maintenanceStandardDetail);
+                                    }
+
+                                }
+                                rowNumber++;
+                            }
+                        }
+                    }
+                } else {
+                    System.out.println("鏃犳硶瑙f瀽璇ユ枃浠�");
+                }
+
+               fis.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+
+        }
+        return Result.error("鏂囦欢瀵煎叆澶辫触锛�");
+    }
+    /**
+     * 閫氳繃excel瀵煎叆鏁版嵁
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @RequestMapping(value = "/importExcelOfThreeMaintenance", method = RequestMethod.POST)
+    public Result<?> importExcelOfThreeMaintenance(HttpServletRequest request, HttpServletResponse response) {
+        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+        LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+        String exceptionInfo = "";
+        int exceptionNum = 0;
+        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+            MultipartFile file = entity.getValue();
+            try {
+                InputStream fis = file.getInputStream();
+                XWPFDocument document = new XWPFDocument(fis);
+                XWPFParagraph mainTitleParagraph = document.getParagraphs().get(0);
+                if (mainTitleParagraph != null) {
+                    // 鑾峰彇涓绘爣棰樻枃鏈唴瀹�
+                    String mainTitle = mainTitleParagraph.getText();
+                    if(mainTitle.equals("鐢熶骇璁惧涓夌骇淇濆吇瑙勮寖")){
+                        for (XWPFTable table : document.getTables()) {
+                            // 閬嶅巻琛ㄦ牸涓殑鎵�鏈夎
+                            int rowNumber = 0;
+                            String equipmentNum = "";
+                            Equipment equipment = null;
+                            MaintenanceStandard maintenanceStandard = null;
+                            XWPFTableRow row0= table.getRow(0);
+                            if(ObjectUtils.isNotNull(row0)){
+                                XWPFTableCell cellEquipmentNum = row0.getCell(3);
+                                if(ObjectUtils.isNotNull(cellEquipmentNum)){
+                                    equipmentNum =cellEquipmentNum.getText();
+                                    equipment = equipmentService.getOne(new QueryWrapper<Equipment>().eq("num",equipmentNum).eq("del_flag",0),false);
+                                    if(ObjectUtils.isNotNull(equipment)){
+                                        maintenanceStandard = maintenanceStandardService.getOne(new QueryWrapper<MaintenanceStandard>().eq("version_status",2).eq("del_flag",0).eq("equipment_id",equipment.getId()),false);
+                                        if(ObjectUtils.isNull(maintenanceStandard)){
+                                            maintenanceStandard = new MaintenanceStandard();
+                                            maintenanceStandard.setNum(sysIdentityService.getNumByTypeAndLength("DailyMaintenanceStandard",4));
+                                            maintenanceStandard.setEquipmentId(equipment.getId());
+                                            maintenanceStandard.setAssignMode("1");
+                                            maintenanceStandard.setVersion("1.0");
+                                            maintenanceStandard.setVersionStatus("2");
+                                            maintenanceStandardService.save(maintenanceStandard);
+                                        }
+                                        else {
+                                            continue;
+                                        }
+                                    }
+                                    else {
+                                        continue;
+                                    }
+                                }
+                                else {
+                                    continue;
+                                }
+                            }
+                            else {
+                                continue;
+                            }
+                            for (XWPFTableRow row : table.getRows()) {
+                                XWPFTableCell cell0 = row.getCell(0);
+                                XWPFTableCell cell1 = row.getCell(1);
+                                XWPFTableCell cell2 = row.getCell(2);
+                                if(rowNumber>2){
+                                    String location = getMergedCellValue(cell0);
+                                    String projectName = cell1.getText();
+                                    String projectStandard = cell2.getText();
+                                    MaintenanceStandardDetail maintenanceStandardDetail = new MaintenanceStandardDetail();
+                                    MaintenanceProjectCategory maintenanceProjectCategory = maintenanceProjectCategoryService.getOne(new QueryWrapper<MaintenanceProjectCategory>().eq("name","涓夌骇淇濆吇").eq("del_flag",0),false);
+                                    if(ObjectUtils.isNotNull(maintenanceProjectCategory)){
+                                        MaintenanceProject maintenanceProject = maintenanceProjectService.getOne(new QueryWrapper<MaintenanceProject>().eq("name",projectName).eq("standard",projectStandard).eq("del_flag",0).eq("maintenance_project_category_id",maintenanceProjectCategory.getId()),false);
+                                        MaintenanceCycle maintenanceCycle = null;
+                                        if(equipment.getEquipmentImportanceId().equals("A")){
+                                             maintenanceCycle = maintenanceCycleService.getOne(new QueryWrapper<MaintenanceCycle>().eq("name","3骞�").eq("version_status",2).eq("del_flag",0),false);
+                                        }else {
+                                             maintenanceCycle = maintenanceCycleService.getOne(new QueryWrapper<MaintenanceCycle>().eq("name","4骞�").eq("version_status",2).eq("del_flag",0),false);
+                                        }
+                                        if (!ObjectUtils.isNotNull(maintenanceProject)) {
+                                            maintenanceProject = new MaintenanceProject();
+                                            maintenanceProject.setNum(sysIdentityService.getNumByTypeAndLength("MainOfTwo", 4));
+                                            maintenanceProject.setName(projectName);
+                                            maintenanceProject.setLocation(location);
+                                            maintenanceProject.setMaintenanceProjectCategoryId(maintenanceProjectCategory.getId());
+                                            maintenanceProject.setDelFlag(0);
+                                            maintenanceProjectService.save(maintenanceProject);
+                                        }
+                                        maintenanceStandardDetail.setMaintenanceProjectId(maintenanceProject.getId());
+                                        maintenanceStandardDetail.setLocation(location);
+                                        maintenanceStandardDetail.setMaintenanceCycleId(maintenanceCycle.getId());
+                                        maintenanceStandardDetailService.save(maintenanceStandardDetail);
+                                    }
+
+                                }
+                                rowNumber++;
+                            }
+                        }
+                    }
+                } else {
+                    System.out.println("鏃犳硶瑙f瀽璇ユ枃浠�");
+                }
+
+                fis.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+
+        }
+        return Result.error("鏂囦欢瀵煎叆澶辫触锛�");
     }
 
     /**
@@ -406,5 +638,10 @@
             return Result.error("瀹℃牳澶辫触!");
         }
     }
+    // 鑾峰彇鍚堝苟鍗曞厓鏍肩殑鍊�
+    private  String getMergedCellValue(XWPFTableCell cell) {
+        // 瀵逛簬鍚堝苟鍗曞厓鏍硷紝鑾峰彇绗竴涓钀界殑鏂囨湰浣滀负鍚堝苟鍗曞厓鏍肩殑鍊�
+        return cell.getParagraphs().get(0).getText();
+    }
 
 }

--
Gitblit v1.9.3