From 7a90b194a7d1a213d01c323fd90ef5afbdeb4ea7 Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期二, 10 六月 2025 16:21:02 +0800
Subject: [PATCH] 保养修改

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java |  530 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 525 insertions(+), 5 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..f0a7b70 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,7 +9,11 @@
 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.dto.message.MessageDTO;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.constant.CommonConstant;
@@ -18,15 +22,24 @@
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.eam.entity.*;
+import org.jeecg.modules.eam.model.MaintenanceCycleVo;
 import org.jeecg.modules.eam.service.*;
+import org.jeecg.modules.system.entity.*;
+import org.jeecg.modules.system.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.annotation.Resource;
 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;
@@ -65,6 +78,19 @@
     @Lazy
     private IMaintenanceStandardWorkInstructionService maintenanceStandardWorkInstructionService;
 
+    @Autowired
+    private IMaintenanceProjectService maintenanceProjectService;
+
+    @Autowired
+    @Lazy
+    private IdentityService sysIdentityService;
+    @Autowired
+    @Lazy
+    private IMaintenanceProjectCategoryService maintenanceProjectCategoryService;
+    @Lazy
+    @Autowired
+    private IMaintenanceCycleService maintenanceCycleService;
+
 
 
     //    @Autowired
@@ -74,6 +100,16 @@
 //    private IUploadService uploadService;
     @Autowired
     private ISysBaseAPI sysBaseApi;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Resource
+    private ISysRoleService sysRoleService;
+    @Resource
+    private ISysDictService sysDictService;
+    @Resource
+    private ISysDictItemService sysDictItemService;
+    @Resource
+    private ISysUserRoleService sysUserRoleService;
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -115,12 +151,22 @@
 
 
     /**
-     * 鏃ュ父淇濆吇宸ュ崟鍒涘缓  缁勪欢閫氳繃浣跨敤閮ㄩ棬杩囨护鑾峰彇淇濆吇鏍囧噯
+     * 浜屼繚  缁勪欢閫氳繃浣跨敤閮ㄩ棬杩囨护鑾峰彇淇濆吇鏍囧噯
      * qsw 2023-4-26
      */
     @GetMapping("getMaintenanceStandard2List")
     public Result<?> getMaintenanceStandard2List(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
         IPage<Map<String, Object>> maintenanceStandardList = maintenanceStandardService.getMaintenanceStandard2List(pageNo, pageSize, params);
+        return Result.ok(maintenanceStandardList);
+    }
+
+    /**
+     * 涓変繚  缁勪欢閫氳繃浣跨敤閮ㄩ棬杩囨护鑾峰彇淇濆吇鏍囧噯
+     * qsw 2023-12-12
+     */
+    @GetMapping("getMaintenanceStandard3List")
+    public Result<?> getMaintenanceStandard3List(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
+        IPage<Map<String, Object>> maintenanceStandardList = maintenanceStandardService.getMaintenanceStandard3List(pageNo, pageSize, params);
         return Result.ok(maintenanceStandardList);
     }
 
@@ -137,14 +183,50 @@
     @Transactional(rollbackFor = {Exception.class})
     public Result<String> add(@RequestBody MaintenanceStandard maintenanceStandard) {
 //        maintenanceStandard.setType("daily");
+
+        String maintenanceType = maintenanceStandard.getMaintenanceType();
+        String equipmentId = maintenanceStandard.getEquipmentId();
+        List<MaintenanceStandard> maintenanceStandards = maintenanceStandardService.lambdaQuery()
+                .eq(MaintenanceStandard::getEquipmentId, equipmentId)
+                .eq(MaintenanceStandard::getMaintenanceType, maintenanceType)
+                .eq(MaintenanceStandard::getDelFlag, "0")
+                .eq(MaintenanceStandard::getVersionStatus, "2").list();
+        if(maintenanceStandards.size() > 0){
+            return Result.error("淇濆吇鏍囧噯宸插瓨鍦ㄤ笉鍏佽閲嶅鎻愪氦锛�");
+        }
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         maintenanceStandard.setWritePerson(sysUser.getRealname());
+        maintenanceStandard.setAssignMode("1");
         maintenanceStandardService.save(maintenanceStandard);
+
+        List<MaintenanceCycleVo> maintenanceCycle = null;
+        if("2".equals(maintenanceType)){
+
+            maintenanceCycle = maintenanceStandardService.getPeriodic2MaintenanceCycle(maintenanceStandard.getMaintenanceType());
+            if(maintenanceCycle.size()==0){
+                return Result.error("娌℃湁鎵惧埌鐨勪簩淇濅繚鍏诲懆鏈燂紝璇峰厛缁存姢淇濆吇鍛ㄦ湡!");
+            }
+        }else{
+            Equipment equipment = equipmentService.getById(maintenanceStandard.getEquipmentId());
+            maintenanceCycle = maintenanceStandardService.getPeriodic3MaintenanceCycle(equipment.getEquipmentImportanceId(), maintenanceStandard.getMaintenanceType());
+            if(maintenanceCycle.size()==0){
+                return Result.error("娌℃湁鎵惧埌鐨勪笁淇濅繚鍏诲懆鏈燂紝璇峰厛缁存姢淇濆吇鍛ㄦ湡!");
+            }
+        }
+
         List<MaintenanceStandardDetail> maintenanceStandardDetaillist = maintenanceStandard.getMaintenanceStandardDetaillist();
         for (MaintenanceStandardDetail maintenanceStandardDetail : maintenanceStandardDetaillist) {
+            if(maintenanceCycle.size() > 0){
+                maintenanceStandardDetail.setMaintenanceCycleId(maintenanceCycle.get(0).getValue());
+            }
             maintenanceStandardDetail.setMaintenanceStandardId(maintenanceStandard.getId());
             maintenanceStandardDetail.setPhoto(maintenanceStandardDetail.getPhoto());
             maintenanceStandardDetailService.saveOrUpdate(maintenanceStandardDetail);
+        }
+        if("2".equals(maintenanceType)){
+            this.maintenance2StandardAlert(maintenanceStandard.getApprovalStatus(),maintenanceStandard.getNum());
+        }else{
+            this.maintenance3StandardAlert(maintenanceStandard.getApprovalStatus(),maintenanceStandard.getNum());
         }
         return Result.OK("娣诲姞鎴愬姛锛�");
     }
@@ -169,10 +251,39 @@
             maintenanceStandardDetailService.updateById(dailyInspectionStandardDetail);
         }
         //2.閲嶆柊鎸佷箙淇濆吇椤圭洰
+//        Equipment equipment = equipmentService.getById(maintenanceStandard.getEquipmentId());
+//        List<MaintenanceCycleVo> maintenanceCycle = maintenanceStandardService.getPeriodicMaintenanceCycle(equipment.getEquipmentImportanceId(), maintenanceStandard.getMaintenanceType());
+        List<MaintenanceCycleVo> maintenanceCycle = null;
+        if("2".equals(maintenanceStandard.getMaintenanceType())){
+
+            maintenanceCycle = maintenanceStandardService.getPeriodic2MaintenanceCycle(maintenanceStandard.getMaintenanceType());
+            if(maintenanceCycle.size()==0){
+                return Result.error("娌℃湁鎵惧埌鐨勪簩淇濅繚鍏诲懆鏈燂紝璇峰厛缁存姢淇濆吇鍛ㄦ湡!");
+            }
+        }else{
+            Equipment equipment = equipmentService.getById(maintenanceStandard.getEquipmentId());
+            maintenanceCycle = maintenanceStandardService.getPeriodic3MaintenanceCycle(equipment.getEquipmentImportanceId(), maintenanceStandard.getMaintenanceType());
+            if(maintenanceCycle.size()==0){
+                return Result.error("娌℃湁鎵惧埌鐨勪笁淇濅繚鍏诲懆鏈燂紝璇峰厛缁存姢淇濆吇鍛ㄦ湡!");
+            }
+        }
+
+
+        if(maintenanceCycle.size()==0){
+            return Result.OK("娌℃湁鎵惧埌鐨勪繚鍏诲懆鏈燂紝璇峰厛缁存姢淇濆吇鍛ㄦ湡!");
+        }
         List<MaintenanceStandardDetail> maintenanceStandardDetails = maintenanceStandard.getMaintenanceStandardDetaillist();
         for (MaintenanceStandardDetail maintenanceStandardDetail : maintenanceStandardDetails) {
+            if(maintenanceCycle.size() > 0){
+                maintenanceStandardDetail.setMaintenanceCycleId(maintenanceCycle.get(0).getValue());
+            }
             maintenanceStandardDetail.setMaintenanceStandardId(maintenanceStandard.getId());
             maintenanceStandardDetailService.saveOrUpdate(maintenanceStandardDetail);
+        }
+        if("2".equals(maintenanceStandard.getMaintenanceType())){
+            this.maintenance2StandardAlert(maintenanceStandard.getApprovalStatus(),maintenanceStandard.getNum());
+        }else{
+            this.maintenance3StandardAlert(maintenanceStandard.getApprovalStatus(),maintenanceStandard.getNum());
         }
         return Result.OK("缂栬緫鎴愬姛!");
     }
@@ -251,9 +362,259 @@
      * @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 = "";
+        String msgInfo = "";
+        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("maintenance_type","2").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.setType("daily");
+                                            maintenanceStandard.setMaintenanceType("2");
+                                            maintenanceStandard.setVersionStatus("2");
+                                            maintenanceStandard.setDelFlag(0);
+                                            maintenanceStandard.setApprovalStatus("5");
+                                            maintenanceStandardService.save(maintenanceStandard);
+                                        }
+                                        else {
+                                            msgInfo += equipment.getNum()+ ",";
+                                            continue;
+                                        }
+                                    }
+                                    else {
+
+                                        continue;
+                                    }
+                                }
+                                else {
+                                    continue;
+                                }
+                            }
+                            else {
+                                continue;
+                            }
+                            String role0 = "";
+                            for (XWPFTableRow row : table.getRows()) {
+                                XWPFTableCell cell0 = row.getCell(0);
+                                XWPFTableCell cell2 = row.getCell(2);
+                                if(rowNumber>1){
+                                    String role = cell0.getText();
+                                    if(StringUtils.isNotBlank(role)){
+                                        role0=role;
+                                    }
+                                }
+                                if(rowNumber>2){
+                                    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(role0.equals("缁翠慨浜哄憳淇濆吇鍐呭")){
+                                            maintenanceStandardDetail.setMaintenanceRole("maintenance");
+                                        } else if(role0.equals("鎿嶄綔浜哄憳淇濆吇鍐呭")){
+                                            maintenanceStandardDetail.setMaintenanceRole("operator");
+                                        }
+                                        if(ObjectUtils.isNotNull(maintenanceCycle)){
+                                            maintenanceStandardDetail.setMaintenanceCycleId(maintenanceCycle.getId());
+                                        }
+                                        maintenanceStandardDetail.setDelFlag(0);
+                                        maintenanceStandardDetail.setMaintenanceStandardId(maintenanceStandard.getId());
+                                        maintenanceStandardDetailService.save(maintenanceStandardDetail);
+
+                                    }
+
+                                }
+                                rowNumber++;
+                            }
+                        }
+                    }
+                    if(mainTitle.equals("鐢熶骇璁惧涓夌骇淇濆吇瑙勮寖")){
+
+                        for (XWPFTable table : document.getTables()) {
+                            // 閬嶅巻琛ㄦ牸涓殑鎵�鏈夎
+                            int rowNumber = 0;
+                            String equipmentNum = "";
+                            Equipment equipment = null;
+                            MaintenanceStandard maintenanceStandard = null;
+                            MaintenanceCycle maintenanceCycle = 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("maintenance_type","3").eq("version_status",2).eq("del_flag",0).eq("equipment_id",equipment.getId()),false);
+                                        String abc = equipment.getEquipmentImportanceId();
+                                        if(StringUtils.isNotBlank(abc)){
+                                            if(abc.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);
+                                            }
+                                        }
+                                        else{
+                                            return Result.error("瀵煎叆澶辫触锛岃璁惧娌℃湁缁存姢ABC鏍囪瘑");
+                                        }
+                                        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");
+                                            maintenanceStandard.setType("daily");
+                                            maintenanceStandard.setMaintenanceType("3");
+                                            maintenanceStandard.setApprovalStatus("5");
+                                            maintenanceStandardService.save(maintenanceStandard);
+                                        }
+                                        else {
+                                            msgInfo += equipment.getNum()+ ",";
+                                            continue;
+                                        }
+                                    }
+                                    else {
+                                        continue;
+                                    }
+                                }
+                                else {
+                                    continue;
+                                }
+                            }
+                            else {
+                                continue;
+                            }
+                            String location0 = "";
+                            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 = cell0.getText();
+                                    if(StringUtils.isNotBlank(location)){
+                                        location0=location;
+                                    }
+                                    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);
+                                        if (!ObjectUtils.isNotNull(maintenanceProject)) {
+                                            maintenanceProject = new MaintenanceProject();
+                                            maintenanceProject.setNum(sysIdentityService.getNumByTypeAndLength("MainOfTwo", 4));
+                                            maintenanceProject.setName(projectName);
+                                            maintenanceProject.setStandard(projectStandard);
+                                            maintenanceProject.setLocation(location0);
+                                            maintenanceProject.setMaintenanceProjectCategoryId(maintenanceProjectCategory.getId());
+                                            maintenanceProject.setDelFlag(0);
+                                            maintenanceProjectService.save(maintenanceProject);
+                                        }
+                                        maintenanceStandardDetail.setMaintenanceProjectId(maintenanceProject.getId());
+                                        maintenanceStandardDetail.setLocation(location0);
+                                        maintenanceStandardDetail.setMaintenanceCycleId(maintenanceCycle.getId());
+                                        maintenanceStandardDetail.setMaintenanceStandardId(maintenanceStandard.getId());
+                                        maintenanceStandardDetailService.save(maintenanceStandardDetail);
+                                    }
+
+                                }
+                                rowNumber++;
+                            }
+                        }
+                    }
+                    if(msgInfo == ""){
+                        return Result.OK("瀵煎叆鎴愬姛");
+                    }else{
+                        return Result.OK("缁熶竴缂栫爜鏄細"+msgInfo+"鐨勪繚鍏绘爣鍑嗗凡瀛樺湪锛岃鍏堟墜鍔ㄥけ鏁堝啀閲嶆柊瀵煎叆!");
+                    }
+                } 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();
+
+                } else {
+                    System.out.println("鏃犳硶瑙f瀽璇ユ枃浠�");
+                }
+
+                fis.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+
+        }
+        return Result.error("鏂囦欢瀵煎叆澶辫触锛�");
     }
 
     /**
@@ -287,15 +648,36 @@
         //鏄庣粏淇℃伅
         List<MaintenanceStandardDetail> maintenanceStandardDetailList = maintenanceStandard.getMaintenanceStandardDetaillist();
         MaintenanceStandardDetail isd = null;
+
+//        Equipment equipment = equipmentService.getById(maintenanceStandard.getEquipmentId());
+        List<MaintenanceCycleVo> maintenanceCycle = null;
+        if("2".equals(maintenanceStandard.getMaintenanceType())){
+
+            maintenanceCycle = maintenanceStandardService.getPeriodic2MaintenanceCycle(maintenanceStandard.getMaintenanceType());
+            if(maintenanceCycle.size()==0){
+                return Result.error("娌℃湁鎵惧埌鐨勪簩淇濅繚鍏诲懆鏈燂紝璇峰厛缁存姢淇濆吇鍛ㄦ湡!");
+            }
+        }else{
+            Equipment equipment = equipmentService.getById(maintenanceStandard.getEquipmentId());
+            maintenanceCycle = maintenanceStandardService.getPeriodic3MaintenanceCycle(equipment.getEquipmentImportanceId(), maintenanceStandard.getMaintenanceType());
+            if(maintenanceCycle.size()==0){
+                return Result.error("娌℃湁鎵惧埌鐨勪笁淇濅繚鍏诲懆鏈燂紝璇峰厛缁存姢淇濆吇鍛ㄦ湡!");
+            }
+        }
+//        List<MaintenanceCycleVo> maintenanceCycle = maintenanceStandardService.getPeriodicMaintenanceCycle(equipment.getEquipmentImportanceId(), maintenanceStandard.getMaintenanceType());
         for (MaintenanceStandardDetail maintenanceStandardDetail : maintenanceStandardDetailList) {
             isd = new MaintenanceStandardDetail();
             isd.setMaintenanceStandardId(maintenanceStandard.getId());
             isd.setLocation(maintenanceStandardDetail.getLocation());
             isd.setPhoto(maintenanceStandardDetail.getPhoto());
             isd.setMaintenanceProjectId(maintenanceStandardDetail.getMaintenanceProjectId());
-            isd.setMaintenanceCycleId(maintenanceStandardDetail.getMaintenanceCycleId());
+//            isd.setMaintenanceCycleId(maintenanceStandardDetail.getMaintenanceCycleId());
             isd.setMaintenanceMode(maintenanceStandardDetail.getMaintenanceMode());
             isd.setMaintenanceRequire(maintenanceStandardDetail.getMaintenanceRequire());
+            isd.setMaintenanceRole(maintenanceStandardDetail.getMaintenanceRole());
+            if(maintenanceCycle.size() > 0){
+                isd.setMaintenanceCycleId(maintenanceCycle.get(0).getValue());
+            }
             maintenanceStandardDetailService.save(isd);
         }
         if(CollectionUtils.isNotEmpty(maintenanceStandardPlanningMaterialList)){
@@ -393,6 +775,16 @@
                 dailyMaintenanceStandard.setLoseEfficacyPerson(sysUser.getRealname());
                 maintenanceStandardService.updateById(dailyMaintenanceStandard);
             }
+
+            List<MaintenanceStandard> standards = maintenanceStandardService.lambdaQuery()
+                    .eq(MaintenanceStandard::getEquipmentId, maintenanceStandard.getEquipmentId())
+                    .eq(MaintenanceStandard::getVersionStatus, "2").list();
+            for (MaintenanceStandard standard : standards) {
+                standard.setVersionStatus("3");
+                standard.setLoseEfficacyTime(new Date());
+                standard.setLoseEfficacyPerson(sysUser.getRealname());
+                maintenanceStandardService.updateById(standard);
+            }
             maintenanceStandard.setApprovalPerson(sysUser.getRealname());
             maintenanceStandard.setVersionStatus("2");
             maintenanceStandard.setTakeEffectTime(new Date());
@@ -401,10 +793,138 @@
         }
         boolean b = maintenanceStandardService.updateById(maintenanceStandard);
         if (b){
+            //绛惧娴佺▼娑堟伅閫氱煡
+            if(!"5".equals(approvalStatus)){//宸茬紪鍒�
+                if("2".equals(maintenanceStandard.getMaintenanceType())){
+                    this.maintenance2StandardAlert(approvalStatus,maintenanceStandard.getNum());
+                }else{
+                    this.maintenance3StandardAlert(approvalStatus,maintenanceStandard.getNum());
+                }
+            }
             return Result.OK("瀹℃牳鎴愬姛!");
         }else{
             return Result.error("瀹℃牳澶辫触!");
         }
     }
 
+    /**
+     *浜岀骇淇濆吇鏍囧噯绛惧娴佺▼娑堟伅鎻愰啋
+     * qsw 2024-3-11
+     */
+    void maintenance2StandardAlert(String approvalStatus,String standardNum){
+
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        SysDict sysDict = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","info_type"),false);
+        SysDictItem sysDictItem = null;
+        String roleDictItem = "";
+        if("1".equals(approvalStatus)){//宸茬紪鍒�
+            roleDictItem = "浜岀骇淇濆吇鏍囧噯瀹℃牳";
+            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
+                    .eq("item_text","浜岀骇淇濆吇鏍囧噯瀹℃牳")
+                    .eq("dict_id",sysDict.getId()),false);
+        }else if("2".equals(approvalStatus)){//椹冲洖缂栧埗
+            roleDictItem = "浜岀骇淇濆吇鏍囧噯缂栧埗";
+            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
+                    .eq("item_text","浜岀骇淇濆吇鏍囧噯缂栧埗")
+                    .eq("dict_id",sysDict.getId()),false);
+        }else if("3".equals(approvalStatus)){//宸插鏍�
+            roleDictItem = "浜岀骇淇濆吇鏍囧噯瀹℃壒";
+            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
+                    .eq("item_text","浜岀骇淇濆吇鏍囧噯瀹℃壒")
+                    .eq("dict_id",sysDict.getId()),false);
+        }else if("4".equals(approvalStatus)){//椹冲洖瀹℃牳
+            roleDictItem = "浜岀骇淇濆吇鏍囧噯瀹℃牳";
+            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
+                    .eq("item_text","浜岀骇淇濆吇鏍囧噯瀹℃牳")
+                    .eq("dict_id",sysDict.getId()),false);
+        }
+        String roleCode = sysDictItem.getItemValue();
+        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().eq("role_code",roleCode),false);
+        List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>().eq("role_id",sysRole.getId()));
+        for(SysUserRole sysUserRole:sysUserRoles){
+            SysUser user = sysUserService.getById(sysUserRole.getUserId());
+            String msg = "";
+            if("1".equals(approvalStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗐��"+standardNum+"銆戠殑浜岀骇淇濆吇鏍囧噯缂栧埗鎴愬姛锛岃鍒颁簩绾т繚鍏绘爣鍑嗛〉闈㈠鏍革紒";
+            }else if("2".equals(approvalStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗐��"+standardNum+"銆戠殑浜岀骇淇濆吇鏍囧噯宸查┏鍥烇紝璇峰埌浜岀骇淇濆吇鏍囧噯椤甸潰鏌ョ湅锛�";
+            }else if("3".equals(approvalStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗐��"+standardNum+"銆戠殑浜岀骇淇濆吇鏍囧噯瀹℃牳閫氳繃锛岃鍒颁簩绾т繚鍏绘爣鍑嗛〉闈㈠鎵癸紒";
+            }else if("4".equals(approvalStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗐��"+standardNum+"銆戠殑浜岀骇淇濆吇鏍囧噯宸查┏鍥烇紝璇峰埌浜岀骇淇濆吇鏍囧噯椤甸潰鏌ョ湅锛�";
+            }
+            MessageDTO messageDTO = new MessageDTO();
+            messageDTO.setTitle("浜岀骇淇濆吇鏍囧噯绛惧娑堟伅鎻愰啋锛�");
+            messageDTO.setContent(msg);
+            messageDTO.setCategory(roleDictItem);
+            messageDTO.setFromUser("浜岀骇淇濆吇鏍囧噯绛惧娑堟伅鎻愰啋鎻愰啋灏忓姪鎵�");
+            messageDTO.setToUser(user.getUsername());
+            sysBaseApi.sendSysAnnouncement(messageDTO);
+        }
+    }
+
+    /**
+     *涓夌骇淇濆吇鏍囧噯绛惧娴佺▼娑堟伅鎻愰啋
+     * qsw 2024-3-11
+     */
+    void maintenance3StandardAlert(String approvalStatus,String standardNum){
+
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        SysDict sysDict = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","info_type"),false);
+        SysDictItem sysDictItem = null;
+        String roleDictItem = "";
+        if("1".equals(approvalStatus)){//宸茬紪鍒�
+            roleDictItem = "涓夌骇淇濆吇鏍囧噯瀹℃牳";
+            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
+                    .eq("item_text","涓夌骇淇濆吇鏍囧噯瀹℃牳")
+                    .eq("dict_id",sysDict.getId()),false);
+        }else if("2".equals(approvalStatus)){//椹冲洖缂栧埗
+            roleDictItem = "涓夌骇淇濆吇鏍囧噯缂栧埗";
+            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
+                    .eq("item_text","涓夌骇淇濆吇鏍囧噯缂栧埗")
+                    .eq("dict_id",sysDict.getId()),false);
+        }else if("3".equals(approvalStatus)){//宸插鏍�
+            roleDictItem = "涓夌骇淇濆吇鏍囧噯瀹℃壒";
+            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
+                    .eq("item_text","涓夌骇淇濆吇鏍囧噯瀹℃壒")
+                    .eq("dict_id",sysDict.getId()),false);
+        }else if("4".equals(approvalStatus)){//椹冲洖瀹℃牳
+            roleDictItem = "涓夌骇淇濆吇鏍囧噯瀹℃牳";
+            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
+                    .eq("item_text","涓夌骇淇濆吇鏍囧噯瀹℃牳")
+                    .eq("dict_id",sysDict.getId()),false);
+        }
+        String roleCode = sysDictItem.getItemValue();
+        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().eq("role_code",roleCode),false);
+        List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>().eq("role_id",sysRole.getId()));
+        for(SysUserRole sysUserRole:sysUserRoles){
+            SysUser user = sysUserService.getById(sysUserRole.getUserId());
+            String msg = "";
+            if("1".equals(approvalStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗐��"+standardNum+"銆戠殑涓夌骇淇濆吇鏍囧噯缂栧埗鎴愬姛锛岃鍒颁笁绾т繚鍏绘爣鍑嗛〉闈㈠鏍革紒";
+            }else if("2".equals(approvalStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗐��"+standardNum+"銆戠殑涓夌骇淇濆吇鏍囧噯宸查┏鍥烇紝璇峰埌涓夌骇淇濆吇鏍囧噯椤甸潰鏌ョ湅锛�";
+            }else if("3".equals(approvalStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗐��"+standardNum+"銆戠殑涓夌骇淇濆吇鏍囧噯瀹℃牳閫氳繃锛岃鍒颁笁绾т繚鍏绘爣鍑嗛〉闈㈠鎵癸紒";
+            }else if("4".equals(approvalStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗐��"+standardNum+"銆戠殑涓夌骇淇濆吇鏍囧噯宸查┏鍥烇紝璇峰埌涓夌骇淇濆吇鏍囧噯椤甸潰鏌ョ湅锛�";
+            }
+            MessageDTO messageDTO = new MessageDTO();
+            messageDTO.setTitle("涓夌骇淇濆吇鏍囧噯绛惧娑堟伅鎻愰啋锛�");
+            messageDTO.setContent(msg);
+            messageDTO.setCategory(roleDictItem);
+            messageDTO.setFromUser("涓夌骇淇濆吇鏍囧噯绛惧娑堟伅鎻愰啋鎻愰啋灏忓姪鎵�");
+            messageDTO.setToUser(user.getUsername());
+            sysBaseApi.sendSysAnnouncement(messageDTO);
+        }
+    }
+
+
+    // 鑾峰彇鍚堝苟鍗曞厓鏍肩殑鍊�
+    private  String getMergedCellValue(XWPFTableCell cell) {
+        // 瀵逛簬鍚堝苟鍗曞厓鏍硷紝鑾峰彇绗竴涓钀界殑鏂囨湰浣滀负鍚堝苟鍗曞厓鏍肩殑鍊�
+        return cell.getParagraphs().get(0).getText();
+    }
+
+
 }

--
Gitblit v1.9.3