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 |  226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 219 insertions(+), 7 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 03caa52..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
@@ -13,6 +13,7 @@
 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;
@@ -23,6 +24,8 @@
 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;
@@ -32,6 +35,7 @@
 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;
@@ -96,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;
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -185,8 +199,21 @@
         maintenanceStandard.setAssignMode("1");
         maintenanceStandardService.save(maintenanceStandard);
 
-        Equipment equipment = equipmentService.getById(maintenanceStandard.getEquipmentId());
-        List<MaintenanceCycleVo> maintenanceCycle = maintenanceStandardService.getPeriodicMaintenanceCycle(equipment.getEquipmentImportanceId(), maintenanceStandard.getMaintenanceType());
+        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){
@@ -195,6 +222,11 @@
             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("娣诲姞鎴愬姛锛�");
     }
@@ -219,8 +251,27 @@
             maintenanceStandardDetailService.updateById(dailyInspectionStandardDetail);
         }
         //2.閲嶆柊鎸佷箙淇濆吇椤圭洰
-        Equipment equipment = equipmentService.getById(maintenanceStandard.getEquipmentId());
-        List<MaintenanceCycleVo> maintenanceCycle = maintenanceStandardService.getPeriodicMaintenanceCycle(equipment.getEquipmentImportanceId(), maintenanceStandard.getMaintenanceType());
+//        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){
@@ -228,6 +279,11 @@
             }
             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("缂栬緫鎴愬姛!");
     }
@@ -312,6 +368,7 @@
         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();
@@ -351,10 +408,12 @@
                                             maintenanceStandardService.save(maintenanceStandard);
                                         }
                                         else {
+                                            msgInfo += equipment.getNum()+ ",";
                                             continue;
                                         }
                                     }
                                     else {
+
                                         continue;
                                     }
                                 }
@@ -451,6 +510,7 @@
                                             maintenanceStandardService.save(maintenanceStandard);
                                         }
                                         else {
+                                            msgInfo += equipment.getNum()+ ",";
                                             continue;
                                         }
                                     }
@@ -503,7 +563,11 @@
                             }
                         }
                     }
-                    return Result.OK("瀵煎叆鎴愬姛");
+                    if(msgInfo == ""){
+                        return Result.OK("瀵煎叆鎴愬姛");
+                    }else{
+                        return Result.OK("缁熶竴缂栫爜鏄細"+msgInfo+"鐨勪繚鍏绘爣鍑嗗凡瀛樺湪锛岃鍏堟墜鍔ㄥけ鏁堝啀閲嶆柊瀵煎叆!");
+                    }
                 } else {
                     System.out.println("鏃犳硶瑙f瀽璇ユ枃浠�");
                 }
@@ -584,8 +648,23 @@
         //鏄庣粏淇℃伅
         List<MaintenanceStandardDetail> maintenanceStandardDetailList = maintenanceStandard.getMaintenanceStandardDetaillist();
         MaintenanceStandardDetail isd = null;
-        Equipment equipment = equipmentService.getById(maintenanceStandard.getEquipmentId());
-        List<MaintenanceCycleVo> maintenanceCycle = maintenanceStandardService.getPeriodicMaintenanceCycle(equipment.getEquipmentImportanceId(), maintenanceStandard.getMaintenanceType());
+
+//        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());
@@ -595,6 +674,7 @@
 //            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());
             }
@@ -695,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());
@@ -703,11 +793,133 @@
         }
         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) {
         // 瀵逛簬鍚堝苟鍗曞厓鏍硷紝鑾峰彇绗竴涓钀界殑鏂囨湰浣滀负鍚堝苟鍗曞厓鏍肩殑鍊�

--
Gitblit v1.9.3