From 4371080df058a549cdaf31dddeca6c5fee58e23b Mon Sep 17 00:00:00 2001
From: Houjie <714924425@qq.com>
Date: 星期二, 10 六月 2025 15:31:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyInspectionStandardController.java |  122 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 117 insertions(+), 5 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyInspectionStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyInspectionStandardController.java
index c5c4dff..f84630f 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyInspectionStandardController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyInspectionStandardController.java
@@ -11,9 +11,11 @@
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 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;
+import org.jeecg.common.system.api.ISysBaseAPI;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
@@ -21,6 +23,8 @@
 import org.jeecg.modules.eam.entity.*;
 import org.jeecg.modules.eam.service.*;
 import org.jeecg.modules.eam.vo.InspectionStandardImportVo;
+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.transaction.annotation.Transactional;
@@ -29,6 +33,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;
@@ -64,6 +69,19 @@
 
     @Autowired
     private IInspectionCycleService inspectionCycleService;
+
+    @Autowired
+    private ISysBaseAPI sysBaseApi;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Resource
+    private ISysRoleService sysRoleService;
+    @Resource
+    private ISysDictService sysDictService;
+    @Resource
+    private ISysDictItemService sysDictItemService;
+    @Resource
+    private ISysUserRoleService sysUserRoleService;
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
      *
@@ -142,6 +160,8 @@
             isd.setInspectionCycleId(dailyInspectionStandardDetail.getInspectionCycleId());
             dailyInspectionStandardDetailService.save(isd);
         }
+        //娑堟伅鎻愰啋
+        this.inspectionStandardAlert(dailyInspectionStandard.getApprovalStatus(),dailyInspectionStandard.getNum());
         return Result.OK("娣诲姞鎴愬姛锛�");
     }
 
@@ -179,6 +199,8 @@
             isd.setInspectionCycleId(dailyInspectionStandardDetail.getInspectionCycleId());
             dailyInspectionStandardDetailService.save(isd);
         }
+        //娑堟伅鎻愰啋
+        this.inspectionStandardAlert(dailyInspectionStandard.getApprovalStatus(),dailyInspectionStandard.getNum());
         return Result.OK("缂栬緫鎴愬姛!");
     }
 
@@ -269,9 +291,11 @@
         int successLines = 0, errorLines = 0;
         //a = 1寮�濮嬭鍙栫偣妫�椤圭洰锛沚 = 1寮�濮嬭鍙栧懆淇濆吇椤圭洰锛沜 = 1璇ヨ澶囧鍏ヤ俊鎭瓨鍦ㄩ敊璇紱projectColumnIndex鐐规椤圭洰鎵�鍦ㄥ垪锛沵aintenanceColumnIndex鍛ㄤ繚鍏婚」鐩墍鍦ㄥ垪
         int a = 0,b = 0,c = 0,projectColumnIndex = -1,maintenanceColumnIndex = 0;
+        //琛ㄥご鏍囬
+        String title = "";
         String dailyInspectionStandardId = null;
         String equipmentNum = null;
-        DailyInspectionStandard dailyInspectionStandard = new DailyInspectionStandard();
+        DailyInspectionStandard dailyInspectionStandard = null;
         List<DailyInspectionStandardDetail> dailyInspectionStandardDetailList = new ArrayList<>();
         for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
             MultipartFile file = entity.getValue();
@@ -301,6 +325,9 @@
                                 if("STRING".equals(cell.getCellType().toString())|| "BLANK".equals(cell.getCellType().toString())){
                                     //鐐规鍛ㄦ湡瀛樺湪锛屽垽鏂澶囩粺涓�缂栫爜鏄惁瀛樺湪
                                     String strCell = cell.getStringCellValue();
+                                    if(strCell.contains("鐢熶骇璁惧鑷富缁存姢鐐规琛�")){
+                                        title = strCell.trim().substring(11).trim();
+                                    }
                                     if(strCell.contains("璁惧鍚嶇О锛�")){
                                         String[] tybh1  = strCell.split("缁熶竴缂栧彿锛�");
                                         String[] tybh2 = tybh1[1].split("骞�");
@@ -325,12 +352,15 @@
                                                 errorLines++;
                                             }else {
                                                 c = 0;
-                                                dailyInspectionStandard.setNum(identityService.getNumByTypeAndLength("DailylnspectionStandard",4));
+                                                String num = identityService.getNumByTypeAndLength("DailylnspectionStandard", 4);
+                                                dailyInspectionStandard = new DailyInspectionStandard();
+                                                dailyInspectionStandard.setNum(num);
                                                 dailyInspectionStandard.setVersionStatus("2");
                                                 dailyInspectionStandard.setVersion("1.0");
                                                 dailyInspectionStandard.setAssignMode("1");
                                                 dailyInspectionStandard.setEquipmentId(equipment.getId());
                                                 dailyInspectionStandard.setApprovalStatus("5");
+                                                dailyInspectionStandard.setDisUda1(title);
                                                 //dailyInspectionStandardService.save(dailyInspectionStandard);
                                                 //dailyInspectionStandardId = dailyInspectionStandard.getId();
                                             }
@@ -353,9 +383,10 @@
                                             dailyInspectionStandardDetail.setDailyInspectionStandardId(dailyInspectionStandardId);
                                             String dayInspectionProjectName = row.getCell(projectColumnIndex).toString();
                                             String standard = row.getCell(projectColumnIndex+3).toString();
-                                            //鏌ヨ鐐瑰嚮椤圭洰锛屽鏋滄病鏈夋柊澧炵偣妫�椤圭洰
+                                            //鏌ヨ鐐规椤圭洰锛屽鏋滄病鏈夋柊澧炵偣妫�椤圭洰
                                             if(StringUtils.isNotBlank(dayInspectionProjectName)){
-                                                List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getName,dayInspectionProjectName).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list();
+                                                List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getName,dayInspectionProjectName)
+                                                        .eq(InspectionProject::getDetectionStandard,standard).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list();
                                                 if(CollectionUtils.isEmpty(inspectionProjectList)){
                                                     InspectionProject inspectionProject = new InspectionProject();
                                                     inspectionProject.setNum(identityService.getNumByTypeAndLength("InspectionProject",4));
@@ -400,7 +431,8 @@
                                             String weekInspectionProjectName = row.getCell(maintenanceColumnIndex).toString();
                                             String inspectionStandardName = row.getCell(maintenanceColumnIndex+3).toString();
                                             if(StringUtils.isNotBlank(weekInspectionProjectName)){
-                                                List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getName,weekInspectionProjectName).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list();
+                                                List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getName,weekInspectionProjectName)
+                                                        .eq(InspectionProject::getDetectionStandard,inspectionStandardName).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list();
                                                 if(CollectionUtils.isEmpty(inspectionProjectList)){
                                                     InspectionProject inspectionProject = new InspectionProject();
                                                     inspectionProject.setNum(identityService.getNumByTypeAndLength("InspectionProject",4));
@@ -552,6 +584,15 @@
                 standard.setLoseEfficacyPerson(sysUser.getRealname());
                 dailyInspectionStandardService.updateById(standard);
             }
+            List<DailyInspectionStandard> list = dailyInspectionStandardService.lambdaQuery()
+                    .eq(DailyInspectionStandard::getEquipmentId, dailyInspectionStandard.getEquipmentId())
+                    .eq(DailyInspectionStandard::getVersionStatus, "2").list();
+            for (DailyInspectionStandard inspectionStandard : list) {
+                inspectionStandard.setVersionStatus("3");
+                inspectionStandard.setLoseEfficacyTime(new Date());
+                inspectionStandard.setLoseEfficacyPerson(sysUser.getRealname());
+                dailyInspectionStandardService.updateById(inspectionStandard);
+            }
             dailyInspectionStandard.setApprovalPerson(sysUser.getRealname());
             dailyInspectionStandard.setVersionStatus("2");
             dailyInspectionStandard.setTakeEffectTime(new Date());
@@ -560,12 +601,83 @@
         }
         boolean b = dailyInspectionStandardService.updateById(dailyInspectionStandard);
         if (b){
+            if(!"5".equals(approvalStatus)){//宸茬紪鍒�
+                this.inspectionStandardAlert(approvalStatus,dailyInspectionStandard.getNum());
+            }
+
             return Result.OK("瀹℃牳鎴愬姛!");
         }else{
             return Result.error("瀹℃牳澶辫触!");
         }
     }
 
+    /**
+     *鐐规鏍囧噯绛惧娴佺▼娑堟伅鎻愰啋
+     * qsw 2024-3-11
+     */
+    void inspectionStandardAlert(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);
+        }
+//        else if("5".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+"銆戠殑鑷富缁存姢鐐规鏍囧噯宸查┏鍥烇紝璇峰埌鑷富缁存姢鐐规鏍囧噯椤甸潰鏌ョ湅锛�";
+            }
+//            else if("5".equals(approvalStatus)){
+//                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗕簩绾т繚鍏诲伐鍗曞彿銆�"+standardNum+"銆戠殑瀹屽伐绉讳氦鍗曠‘璁ら�氳繃锛岃鍒颁簩绾т繚鍏婚〉闈㈡煡鐪嬶紒";
+//            }
+            MessageDTO messageDTO = new MessageDTO();
+            messageDTO.setTitle("鑷富缁存姢鐐规鏍囧噯绛惧娑堟伅鎻愰啋锛�");
+            messageDTO.setContent(msg);
+            messageDTO.setCategory(roleDictItem);
+            messageDTO.setFromUser("鑷富缁存姢鐐规鏍囧噯绛惧娑堟伅鎻愰啋鎻愰啋灏忓姪鎵�");
+            if(user != null){
+                messageDTO.setToUser(user.getUsername());
+            }
+            sysBaseApi.sendSysAnnouncement(messageDTO);
+        }
+    }
+
 
     /**
      * 鎵归噺 绛惧娴佺▼

--
Gitblit v1.9.3