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

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java |  482 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 415 insertions(+), 67 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java
index 06c690a..8e13fa6 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.eam.controller;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -9,6 +10,7 @@
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -17,6 +19,7 @@
 import org.apache.ibatis.annotations.Param;
 import org.apache.poi.hssf.record.DVALRecord;
 import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.dto.message.MessageDTO;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.api.ISysBaseAPI;
 import org.jeecg.common.system.base.entity.SysUpload;
@@ -37,8 +40,9 @@
 import lombok.extern.slf4j.Slf4j;
 
 
-import org.jeecg.modules.system.entity.SysUser;
-import org.jeecg.modules.system.service.ISysUserService;
+import org.jeecg.modules.eam.vo.SysFileNameVo;
+import org.jeecg.modules.system.entity.*;
+import org.jeecg.modules.system.service.*;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -104,6 +108,24 @@
     @Autowired
     private IPrecisionInspectionDetailService precisionInspectionDetailService;
 
+    @Autowired
+    private IMaintenanceStoveExemptService maintenanceStoveExemptService;
+
+    @Autowired
+    private ITechnologyStatusService technologyStatusService;
+
+    @Autowired
+    private ISysFileNameService sysFileNameService;
+
+    @Resource
+    private ISysRoleService sysRoleService;
+    @Resource
+    private ISysDictService sysDictService;
+    @Resource
+    private ISysDictItemService sysDictItemService;
+    @Resource
+    private ISysUserRoleService sysUserRoleService;
+
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -125,7 +147,7 @@
     }
 
     /**
-     * 鏃ュ父淇濆吇宸ュ崟
+     * 浜岀骇淇濆吇宸ュ崟
      * qsw 2023-4-14
      */
     @GetMapping("getDailyMaintenanceOrderList")
@@ -140,16 +162,98 @@
             record.put("maintenanceCycles", maintenanceCycles);
 
             List<Map<String, Object>> dailyMaintenanceDetails = dailyMaintenanceOrderService.getDailyMaintenanceDetailByOrderId(id);
+            record.put("dailyMaintenanceDetails", dailyMaintenanceDetails);
+
+            List<Map<String, Object>> operationUserDetails = dailyMaintenanceOrderService.getOperationUser(id);
+            record.put("operationUserDetails", operationUserDetails);
+            List<Map<String, Object>> repairUserDetails = dailyMaintenanceOrderService.getRepairUser(id);
+            record.put("repairUserDetails", repairUserDetails);
             //缁熻宸ユ椂瀹氶
-            BigDecimal workingHourQuota = new BigDecimal(0);
-            for(Map<String, Object> dailyMaintenanceOrderDetail : dailyMaintenanceDetails){
-                if(dailyMaintenanceOrderDetail.get("workingHourQuota") != null){
-                    Integer wh = (Integer)dailyMaintenanceOrderDetail.get("workingHourQuota");
-                    BigDecimal workingHour = new BigDecimal(wh);
-                    workingHourQuota = workingHourQuota.add(workingHour);
-                }
+//            BigDecimal workingHourQuota = new BigDecimal(0);
+//            for(Map<String, Object> dailyMaintenanceOrderDetail : dailyMaintenanceDetails){
+//                if(dailyMaintenanceOrderDetail.get("workingHourQuota") != null){
+//                    Integer wh = (Integer)dailyMaintenanceOrderDetail.get("workingHourQuota");
+//                    BigDecimal workingHour = new BigDecimal(wh);
+//                    workingHourQuota = workingHourQuota.add(workingHour);
+//                }
+//            }
+//            record.put("workingHourQuota",workingHourQuota);
+
+            /**
+             * 澶嶉�夋 涓嶅彲缂栬緫
+             */
+           /* String status = (String) record.get("status");
+            if ("5".equals(status)) {
+                record.put("distable", false);
+            } else {
+                record.put("distable", true);
+            }*/
+            /**
+             * 缁熻瀹為檯宸ユ椂
+             */
+//            QueryWrapper<MaintenanceOrderActualWorkingHour> actualWorkingHourWrapper = new QueryWrapper<>();
+//            actualWorkingHourWrapper.eq("maintenance_order_id", id).eq("del_flag", 0);
+//            actualWorkingHourWrapper.select("sum(actual_working_hour_quota) as actualQuantity");
+//            Map<String, Object> map = maintenanceOrderActualWorkingHourService.getMap(actualWorkingHourWrapper);
+//            BigDecimal actualQuantity = new BigDecimal(0);
+//            if (map != null) {
+//                actualQuantity = (BigDecimal) map.get("actualQuantity");
+//            }
+//            record.put("actualWorkingHourQuota", actualQuantity);
+
+            List<FinishTransferOrder> finishTransferOrders = finishTransferOrderService.lambdaQuery()
+                    .eq(FinishTransferOrder::getMaintenanceOrderId, id)
+                    .eq(FinishTransferOrder::getEquipmentId, equipmentId).list();
+            for (FinishTransferOrder finishTransferOrder : finishTransferOrders) {
+                String operateUser = finishTransferOrder.getOperateUser();
+//                record.put("operateUserName", operateUser+"/"+finishTransferOrder.getTransferOrderUda1());
+//                record.put("operateUserName",(StringUtils.isBlank(operateUser) ? "":operateUser+"/"+finishTransferOrder.getTransferOrderUda1()));
+                record.put("operateUserName",(StringUtils.isBlank(operateUser) ? "":operateUser));
+                String repairUser = finishTransferOrder.getRepairUser();
+//                record.put("repairUserName", repairUser+"/"+finishTransferOrder.getTransferOrderUda2());
+//                record.put("repairUserName",(StringUtils.isBlank(repairUser) ? "":repairUser+"/"+finishTransferOrder.getTransferOrderUda2()));
+                record.put("repairUserName",(StringUtils.isBlank(repairUser) ? "":repairUser));
+                String repairDirectorUser = finishTransferOrder.getRepairDirectorUser();
+//                record.put("repairDirectorUserName", repairDirectorUser+"/"+finishTransferOrder.getTransferOrderUda3());
+//                record.put("repairDirectorUserName",(StringUtils.isBlank(repairDirectorUser) ? "":repairDirectorUser+"/"+finishTransferOrder.getTransferOrderUda3()));
+                record.put("repairDirectorUserName",(StringUtils.isBlank(repairDirectorUser) ? "":repairDirectorUser));
+                String equipmentInspectorUser = finishTransferOrder.getEquipmentInspectorUser();
+//                record.put("equipmentInspectorUserName", equipmentInspectorUser+"/"+finishTransferOrder.getTransferOrderUda4());
+//                record.put("equipmentInspectorUserName",(StringUtils.isBlank(equipmentInspectorUser) ? "":equipmentInspectorUser+"/"+finishTransferOrder.getTransferOrderUda4()));
+                record.put("equipmentInspectorUserName",(StringUtils.isBlank(equipmentInspectorUser) ? "":equipmentInspectorUser));
             }
-            record.put("workingHourQuota",workingHourQuota);
+
+        }
+        return Result.ok(dailyMaintenanceOrderList);
+    }
+
+
+    /**
+     * 涓夌骇淇濆吇宸ュ崟
+     * qsw 2023-4-14
+     */
+    @GetMapping("getDailyMaintenanceOrder3List")
+    public Result<?> getDailyMaintenanceOrder3List(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
+        IPage<Map<String, Object>> dailyMaintenanceOrderList = dailyMaintenanceOrderService.getDailyMaintenanceOrder3List(pageNo, pageSize, params);
+        List<Map<String, Object>> records = dailyMaintenanceOrderList.getRecords();
+        for (Map<String, Object> record : records) {
+            String id = (String) record.get("id");
+//            String equipmentId = (String) record.get("equipmentId");
+            String maintenanceStandardId = (String) record.get("maintenanceStandardId");
+            List<MaintenanceCycleVo> maintenanceCycles = dailyMaintenanceOrderService.getMaintenanceCycleByStandardId(maintenanceStandardId);
+            record.put("maintenanceCycles", maintenanceCycles);
+
+            List<Map<String, Object>> dailyMaintenanceDetails = dailyMaintenanceOrderService.getDailyMaintenanceDetailByOrderId(id);
+            //缁熻宸ユ椂瀹氶
+//            BigDecimal workingHourQuota = new BigDecimal(0);
+//            for(Map<String, Object> dailyMaintenanceOrderDetail : dailyMaintenanceDetails){
+//                if(dailyMaintenanceOrderDetail.get("workingHourQuota") != null){
+//                    Integer wh = (Integer)dailyMaintenanceOrderDetail.get("workingHourQuota");
+//                    BigDecimal workingHour = new BigDecimal(wh);
+//                    workingHourQuota = workingHourQuota.add(workingHour);
+//                }
+//            }
+//            record.put("workingHourQuota",workingHourQuota);
             record.put("dailyMaintenanceDetails", dailyMaintenanceDetails);
             /**
              * 澶嶉�夋 涓嶅彲缂栬緫
@@ -163,46 +267,30 @@
             /**
              * 缁熻瀹為檯宸ユ椂
              */
-            QueryWrapper<MaintenanceOrderActualWorkingHour> actualWorkingHourWrapper = new QueryWrapper<>();
-            actualWorkingHourWrapper.eq("maintenance_order_id", id).eq("del_flag", 0);
-            actualWorkingHourWrapper.select("sum(actual_working_hour_quota) as actualQuantity");
-            Map<String, Object> map = maintenanceOrderActualWorkingHourService.getMap(actualWorkingHourWrapper);
-            BigDecimal actualQuantity = new BigDecimal(0);
-            if (map != null) {
-                actualQuantity = (BigDecimal) map.get("actualQuantity");
-            }
-            record.put("actualWorkingHourQuota", actualQuantity);
+//            QueryWrapper<MaintenanceOrderActualWorkingHour> actualWorkingHourWrapper = new QueryWrapper<>();
+//            actualWorkingHourWrapper.eq("maintenance_order_id", id).eq("del_flag", 0);
+//            actualWorkingHourWrapper.select("sum(actual_working_hour_quota) as actualQuantity");
+//            Map<String, Object> map = maintenanceOrderActualWorkingHourService.getMap(actualWorkingHourWrapper);
+//            BigDecimal actualQuantity = new BigDecimal(0);
+//            if (map != null) {
+//                actualQuantity = (BigDecimal) map.get("actualQuantity");
+//            }
+//            record.put("actualWorkingHourQuota", actualQuantity);
 
-            List<FinishTransferOrder> finishTransferOrders = finishTransferOrderService.lambdaQuery()
-                    .eq(FinishTransferOrder::getMaintenanceOrderId, id)
-                    .eq(FinishTransferOrder::getEquipmentId, equipmentId).list();
-            for (FinishTransferOrder finishTransferOrder : finishTransferOrders) {
-                String operateUser = finishTransferOrder.getOperateUser();
-                if(StringUtils.isNotBlank(operateUser)){
-                    SysUser sysUser = sysUserService.getById(operateUser);
-                    record.put("operateUserName", sysUser.getRealname());
-                }
-                String repairUser = finishTransferOrder.getRepairUser();
-                if(StringUtils.isNotBlank(repairUser)){
-                    SysUser sysUser = sysUserService.getById(repairUser);
-                    record.put("repairUserName", sysUser.getRealname());
-                }
-                String repairDirectorUser = finishTransferOrder.getRepairDirectorUser();
-                if(StringUtils.isNotBlank(repairDirectorUser)){
-                    SysUser sysUser = sysUserService.getById(repairDirectorUser);
-                    record.put("repairDirectorUserName", sysUser.getRealname());
-                }
-                String equipmentInspectorUser = finishTransferOrder.getEquipmentInspectorUser();
-                if(StringUtils.isNotBlank(equipmentInspectorUser)){
-                    SysUser sysUser = sysUserService.getById(equipmentInspectorUser);
-                    record.put("equipmentInspectorUserName", sysUser.getRealname());
-                }
-
+            /**
+             *鑾峰彇鏄惁涓虹倝绫昏澶囨爣璁�
+             */
+            String equipmentCategoryName = (String) record.get("equipmentCategoryName");
+            if("鐐夌被璁惧".equals(equipmentCategoryName)){
+                record.put("isNotStoveCategoryFlag", true);
+            }else{
+                record.put("isNotStoveCategoryFlag", false);
             }
 
         }
         return Result.ok(dailyMaintenanceOrderList);
     }
+
 
     /**
      * 娣诲姞
@@ -218,20 +306,23 @@
         Date planStartTime = dailyMaintenanceOrder.getPlanStartTime();
         String maintenanceCycleId = dailyMaintenanceOrder.getMaintenanceCycleId();
         MaintenanceCycle maintenanceCycle = maintenanceCycleService.getById(maintenanceCycleId);
-        String unit = maintenanceCycle.getUnit();
-        int effectiveTime = maintenanceCycle.getEffectiveTime().intValue();
-        Date date = null;
-        if ("min".equals(unit)) {
-            date = DateUtils.getMinAfter(planStartTime, effectiveTime);
-        } else if ("hour".equals(unit)) {
-            date = DateUtils.getHourAfter(planStartTime, effectiveTime);
-        } else if ("day".equals(unit)) {
-            date = DateUtils.getDayAfter(planStartTime, effectiveTime);
-        }
-        dailyMaintenanceOrder.setPlanEndTime(date);//鍒涘缓绫诲瀷锛�1鎵嬪姩鍒涘缓锛�2鑷姩鍒涘缓锛�
+//        String unit = maintenanceCycle.getUnit();
+//        int effectiveTime = maintenanceCycle.getEffectiveTime().intValue();
+//        Date date = null;
+//        if ("min".equals(unit)) {
+//            date = DateUtils.getMinAfter(planStartTime, effectiveTime);
+//        } else if ("hour".equals(unit)) {
+//            date = DateUtils.getHourAfter(planStartTime, effectiveTime);
+//        } else if ("day".equals(unit)) {
+//            date = DateUtils.getDayAfter(planStartTime, effectiveTime);
+//        }
+//        dailyMaintenanceOrder.setPlanEndTime(date);//鍒涘缓绫诲瀷锛�1鎵嬪姩鍒涘缓锛�2鑷姩鍒涘缓锛�
+        dailyMaintenanceOrder.setPlanEndTime(null);//鍒涘缓绫诲瀷锛�1鎵嬪姩鍒涘缓锛�2鑷姩鍒涘缓锛�
         dailyMaintenanceOrder.setCreateType("1");//鍒涘缓绫诲瀷锛�1鎵嬪姩鍒涘缓锛�2鑷姩鍒涘缓锛�
         dailyMaintenanceOrder.setConfirmStatus("0");//绉讳氦纭鐘舵�侊紙0鏈‘璁わ紝1涓讳换纭锛�2妫�楠屽憳纭锛�
         dailyMaintenanceOrder.setPrecisionInspectionStatus("0");//绮惧害妫�楠屽崟娴佺▼鐘舵�侊紙0鏈‘璁わ紝1绮惧害妫�楠岃�咃紝2缁翠慨瀹や富浠伙紝3璁惧妫�楠屽憳锛�4浣跨敤鍗曚綅鎶�鏈富绠★紝5璁惧妫�楠屽憳锛堢洊绔狅級锛�
+        dailyMaintenanceOrder.setStoveExemptStatus("0");//鐐夌被璁惧璞佸厤20椤圭姸鎬侊紙0鏈‘璁わ紝1缁翠慨瀹や富浠伙紝2淇濆吇浜哄憳锛�3浠〃宸ワ級
+        dailyMaintenanceOrder.setStatus("3");//3:鏈紑濮�
         dailyMaintenanceOrderService.save(dailyMaintenanceOrder);
         List<DailyMaintenanceOrderDetail> dailyMaintenanceOrderDetails = dailyMaintenanceOrder.getDailyMaintenanceOrderDetails();
         for (DailyMaintenanceOrderDetail dailyMaintenanceOrderDetail : dailyMaintenanceOrderDetails) {
@@ -291,7 +382,9 @@
          * 鑻ユ灉鍘熸爣鍑嗗師鍛ㄦ湡鍙戠敓鍙樺寲锛屽垹闄ゅ師宸ュ崟鏄庣粏 閲嶆柊缁存姢
          */
         if (!oldMaintenanceStandardId.equals(maintenanceStandardId) || !oldMaintenanceCycleId.equals(maintenanceCycleId)) {
-            List<DailyMaintenanceOrderDetail> dailyMaintenanceOrderDetails = dailyMaintenanceOrderDetailService.lambdaQuery().eq(DailyMaintenanceOrderDetail::getDailyMaintenanceOrderId, orderId).eq(DailyMaintenanceOrderDetail::getDelFlag, 0).list();
+            List<DailyMaintenanceOrderDetail> dailyMaintenanceOrderDetails = dailyMaintenanceOrderDetailService
+                    .lambdaQuery().eq(DailyMaintenanceOrderDetail::getDailyMaintenanceOrderId, orderId)
+                    .eq(DailyMaintenanceOrderDetail::getDelFlag, 0).list();
             for (DailyMaintenanceOrderDetail dailyMaintenanceOrderDetail : dailyMaintenanceOrderDetails) {
                 dailyMaintenanceOrderDetailService.removeById(dailyMaintenanceOrderDetail);
             }
@@ -461,6 +554,49 @@
                 finishTransferOrderService.removeById(finishTransferOrder);
             }
 
+//            /**
+//             * 鍒犻櫎绮惧害绠$悊琛�
+//             */
+//            List<PrecisionInspection> precisionInspectionList = precisionInspectionService.lambdaQuery()
+//                    .eq(PrecisionInspection::getMaintenanceOrderId, id)
+//                    .eq(PrecisionInspection::getDelFlag,0)
+//                    .eq(PrecisionInspection::getEquipmentId, maintenanceOrder.getEquipmentId()).list();
+//            for (PrecisionInspection precisionInspection : precisionInspectionList) {
+//                List<PrecisionInspectionDetail> precisionInspectionDetails = precisionInspectionDetailService.lambdaQuery()
+//                        .eq(PrecisionInspectionDetail::getPrecisionInspectionId, precisionInspection.getId())
+//                        .eq(PrecisionInspectionDetail::getDelFlag,0)
+//                        .list();
+//                for (PrecisionInspectionDetail precisionInspectionDetail : precisionInspectionDetails) {
+//                    precisionInspectionDetailService.removeById(precisionInspectionDetail);
+//                }
+//                precisionInspectionService.removeById(precisionInspection);
+//            }
+
+            if (b) {
+                return Result.OK("鎾ら攢鎴愬姛!");
+            } else {
+                return Result.error("鎾ら攢澶辫触!");
+            }
+        } else {
+            return Result.error("浠呴檺宸插畬宸ョ姸鎬佹挙閿�瀹屾垚鎿嶄綔!");
+        }
+    }
+
+
+
+    @RequestMapping(value = "/revocation3M", method = {RequestMethod.PUT, RequestMethod.POST})
+    @Transactional(rollbackFor = { Exception.class })
+    public Result<String> revocation3M(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) {
+        String id = dailyMaintenanceOrder.getId();
+        DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(id);
+        String status = maintenanceOrder.getStatus();
+        if ("5".equals(status)) {
+            maintenanceOrder.setActualEndTime(null);
+            boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
+
+            /**
+             * 鍒犻櫎绮惧害妫�楠岃〃
+             */
             List<PrecisionInspection> precisionInspectionList = precisionInspectionService.lambdaQuery()
                     .eq(PrecisionInspection::getMaintenanceOrderId, id)
                     .eq(PrecisionInspection::getDelFlag,0)
@@ -476,6 +612,26 @@
                 precisionInspectionService.removeById(precisionInspection);
             }
 
+            /**
+             * 鍒犻櫎鐐夌被妫�娴�
+             */
+            List<MaintenanceStoveExempt> maintenanceStoveExempts = maintenanceStoveExemptService.lambdaQuery()
+                    .eq(MaintenanceStoveExempt::getMaintenanceOrderId, id)
+                    .eq(MaintenanceStoveExempt::getDelFlag, 0).list();
+            for (MaintenanceStoveExempt maintenanceStoveExempt : maintenanceStoveExempts) {
+                maintenanceStoveExemptService.removeById(maintenanceStoveExempt);
+            }
+
+            /**
+             * 鍒犻櫎绮惧害妫�楠屽崟
+             */
+            List<TechnologyStatus> technologyStatusList = technologyStatusService.lambdaQuery()
+                    .eq(TechnologyStatus::getOrderId, id)
+                    .eq(TechnologyStatus::getDelFlag, 0).list();
+            for (TechnologyStatus technologyStatus : technologyStatusList) {
+                technologyStatusService.removeById(technologyStatus);
+            }
+
             if (b) {
                 return Result.OK("鎾ら攢鎴愬姛!");
             } else {
@@ -485,6 +641,7 @@
             return Result.error("浠呴檺宸插畬宸ョ姸鎬佹挙閿�瀹屾垚鎿嶄綔!");
         }
     }
+
 
     /**
      *  淇濆吇宸ュ崟娲惧伐銆佹敼娲�
@@ -502,9 +659,52 @@
     public Result<String> report(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) {
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         String userId = sysUser.getId();
-        dailyMaintenanceOrder.setMaintenanceUserId(userId);
+//        dailyMaintenanceOrder.setMaintenanceUserId(userId);
         dailyMaintenanceOrder.setActualEndTime(new Date());
         boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
+
+        List<DailyMaintenanceOrderDetail> dailyMaintenanceOrderDetails = dailyMaintenanceOrder.getDailyMaintenanceOrderDetails();
+        for (DailyMaintenanceOrderDetail maintenanceOrderDetail : dailyMaintenanceOrderDetails) {
+            maintenanceOrderDetail.setMaintenanceOrderDetailUda1(dailyMaintenanceOrder.getMaintenanceUserId());
+            dailyMaintenanceOrderDetailService.updateById(maintenanceOrderDetail);
+        }
+
+        String id = dailyMaintenanceOrder.getId();
+        DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(id);
+        FinishTransferOrder finishTransferOrder = new FinishTransferOrder();
+        finishTransferOrder.setEquipmentId(maintenanceOrder.getEquipmentId());
+        finishTransferOrder.setMaintenanceOrderId(maintenanceOrder.getId());
+        finishTransferOrder.setStatus("1");
+        finishTransferOrder.setDelFlag(0);
+        finishTransferOrderService.save(finishTransferOrder);
+
+        String equipmentId = maintenanceOrder.getEquipmentId();
+        Equipment equipment = equipmentService.getById(equipmentId);
+        equipment.setSecondMaintenanceTime(new Date());
+        equipmentService.updateById(equipment);
+
+        if (!b) {
+            return Result.error("鎶ュ伐澶辫触!");
+        } else {
+            return Result.ok("鎶ュ伐鎴愬姛!");
+        }
+    }
+
+
+    @RequestMapping(value = "/report3M", method = {RequestMethod.PUT, RequestMethod.POST})
+    @Transactional(rollbackFor = { Exception.class })
+    public Result<String> report3M(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getId();
+//        dailyMaintenanceOrder.setMaintenanceUserId(userId);
+        dailyMaintenanceOrder.setActualEndTime(new Date());
+        boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
+
+        List<DailyMaintenanceOrderDetail> dailyMaintenanceOrderDetails = dailyMaintenanceOrder.getDailyMaintenanceOrderDetails();
+        for (DailyMaintenanceOrderDetail maintenanceOrderDetail : dailyMaintenanceOrderDetails) {
+            maintenanceOrderDetail.setMaintenanceOrderDetailUda1(dailyMaintenanceOrder.getMaintenanceUserId());
+            dailyMaintenanceOrderDetailService.updateById(maintenanceOrderDetail);
+        }
 
         String id = dailyMaintenanceOrder.getId();
         DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(id);
@@ -517,7 +717,30 @@
         finishTransferOrder.setDelFlag(0);
         finishTransferOrderService.save(finishTransferOrder);
 
+        String equipmentId = maintenanceOrder.getEquipmentId();
+        Equipment equipment = equipmentService.getById(equipmentId);
+        String precisionParameters = equipment.getPrecisionParameters();
+        if(!"1".equals(precisionParameters)){
+            this.createTechnologyStatus(maintenanceOrder);
+        }
+
         this.createPrecisionInspection(maintenanceOrder);
+
+        this.createMaintenanceStoveExempt(maintenanceOrder);
+
+        /**
+         * 涓変繚鎶ュ伐鏃�  鏇存柊鏈涓変繚鏃ユ湡  鍜屼笅娆′笁淇濇棩鏈�
+         */
+        String equipmentImportanceId = equipment.getEquipmentImportanceId();
+        equipment.setThirdMaintenanceTime(new Date());
+        if("A".equals(equipmentImportanceId)){
+            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),3));
+        }else if("B".equals(equipmentImportanceId)){
+            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),4));
+        }else if("C".equals(equipmentImportanceId)){
+            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),4));
+        }
+        equipmentService.updateById(equipment);
 
         if (!b) {
             return Result.error("鎶ュ伐澶辫触!");
@@ -549,6 +772,23 @@
         }
     }
 
+
+    void createMaintenanceStoveExempt(DailyMaintenanceOrder dailyMaintenanceOrder){
+        List<SysFileNameVo> sysFileName = sysFileNameService.getSysFileName("20");
+        MaintenanceStoveExempt maintenanceStoveExempt = new MaintenanceStoveExempt();
+        maintenanceStoveExempt.setMaintenanceOrderId(dailyMaintenanceOrder.getId());
+        maintenanceStoveExempt.setReceipts(sysFileName.get(0).getReceipts());
+        maintenanceStoveExemptService.save(maintenanceStoveExempt);
+    }
+
+    void createTechnologyStatus(DailyMaintenanceOrder dailyMaintenanceOrder){
+        List<SysFileNameVo> sysFileName = sysFileNameService.getSysFileName("9");
+        TechnologyStatus technologyStatus = new TechnologyStatus();
+        technologyStatus.setOrderId(dailyMaintenanceOrder.getId());
+        technologyStatus.setReceipts(sysFileName.get(0).getReceipts());
+        technologyStatusService.save(technologyStatus);
+    }
+
     /**
      * 鏃ュ父淇濆吇宸ュ崟 鑾峰彇璁惧鍙扮珯宸茬粦瀹氱殑瀵硅薄閮ㄩ棬
      * qsw 2023-7-11
@@ -563,37 +803,145 @@
      * 瀹℃壒
      */
     @RequestMapping(value = "/approve", method = {RequestMethod.PUT, RequestMethod.POST})
+    @Transactional(rollbackFor = { Exception.class })
     public Result<String> approve(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) {
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = sysUser.getId();
 
         String orderId = dailyMaintenanceOrder.getId();
+        String maintenanceOrderUda3 = dailyMaintenanceOrder.getMaintenanceOrderUda3();
+        String confirmStatus = dailyMaintenanceOrder.getConfirmStatus();
+        Date maintenanceDate = dailyMaintenanceOrder.getMaintenanceDate();
+
         DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(orderId);
         String equipmentId = maintenanceOrder.getEquipmentId();
-        String confirmStatus = maintenanceOrder.getConfirmStatus();
+        String orderUda3 = maintenanceOrder.getMaintenanceOrderUda3();
+        maintenanceOrder.setMaintenanceDate(maintenanceDate);
+        if(StringUtils.isBlank(orderUda3)){
+            maintenanceOrder.setMaintenanceOrderUda3(maintenanceOrderUda3);
+        }
 
         List<FinishTransferOrder> finishTransferOrders = finishTransferOrderService.lambdaQuery()
                 .eq(FinishTransferOrder::getMaintenanceOrderId, orderId)
                 .eq(FinishTransferOrder::getEquipmentId, equipmentId).list();
        if(finishTransferOrders.size()>0){
            FinishTransferOrder finishTransferOrder = finishTransferOrders.get(0);
-           if ("0".equals(confirmStatus)){
-               finishTransferOrder.setRepairDirectorUser(userId);
+           if("1".equals(confirmStatus)){
+               finishTransferOrder.setOperateUser(sysUser.getRealname());
+               finishTransferOrder.setTransferOrderUda1(DateUtils.now());
                finishTransferOrderService.updateById(finishTransferOrder);
 
-               maintenanceOrder.setConfirmStatus("1");
+               maintenanceOrder.setConfirmStatus(confirmStatus);
                dailyMaintenanceOrderService.updateById(maintenanceOrder);
-           }else{
-               finishTransferOrder.setEquipmentInspectorUser(userId);
+
+               this.twoMaintenanceAlert(confirmStatus,"浜屼繚绉讳氦鍗曠淮淇汉鍛�",maintenanceOrder.getNum());
+           }else if("2".equals(confirmStatus)){
+               finishTransferOrder.setEquipmentInspectorUser("");
+               finishTransferOrder.setRepairDirectorUser("");
+               finishTransferOrder.setRepairUser("");
+               finishTransferOrder.setOperateUser("");
+               finishTransferOrder.setTransferOrderUda1("");
                finishTransferOrderService.updateById(finishTransferOrder);
 
-               maintenanceOrder.setConfirmStatus("2");
+               maintenanceOrder.setConfirmStatus(confirmStatus);
+               dailyMaintenanceOrderService.updateById(maintenanceOrder);
+
+               this.twoMaintenanceAlert(confirmStatus,"浜屼繚绉讳氦鍗曟搷浣滀汉鍛�",maintenanceOrder.getNum());
+           }else if("3".equals(confirmStatus)){
+               finishTransferOrder.setRepairUser(sysUser.getRealname());
+               finishTransferOrder.setTransferOrderUda2(DateUtils.now());
+               finishTransferOrderService.updateById(finishTransferOrder);
+
+               maintenanceOrder.setConfirmStatus(confirmStatus);
+               dailyMaintenanceOrderService.updateById(maintenanceOrder);
+
+               this.twoMaintenanceAlert(confirmStatus,"浜屼繚绉讳氦鍗曠淮淇涓讳换",maintenanceOrder.getNum());
+           }else if("4".equals(confirmStatus)){
+               finishTransferOrder.setEquipmentInspectorUser("");
+               finishTransferOrder.setRepairDirectorUser("");
+               finishTransferOrder.setRepairUser("");
+               finishTransferOrder.setTransferOrderUda2("");
+               finishTransferOrderService.updateById(finishTransferOrder);
+
+               maintenanceOrder.setConfirmStatus(confirmStatus);
+               dailyMaintenanceOrderService.updateById(maintenanceOrder);
+
+               this.twoMaintenanceAlert(confirmStatus,"浜屼繚绉讳氦鍗曠淮淇汉鍛�",maintenanceOrder.getNum());
+           }else if("5".equals(confirmStatus)){
+               finishTransferOrder.setRepairDirectorUser(sysUser.getRealname());
+               finishTransferOrder.setTransferOrderUda3(DateUtils.now());
+               finishTransferOrderService.updateById(finishTransferOrder);
+
+               maintenanceOrder.setConfirmStatus(confirmStatus);
+               dailyMaintenanceOrderService.updateById(maintenanceOrder);
+
+               this.twoMaintenanceAlert(confirmStatus,"浜屼繚绉讳氦鍗曟楠屽憳",maintenanceOrder.getNum());
+           }else if("6".equals(confirmStatus)){
+               finishTransferOrder.setRepairDirectorUser("");
+               finishTransferOrder.setTransferOrderUda3("");
+               finishTransferOrderService.updateById(finishTransferOrder);
+
+               maintenanceOrder.setConfirmStatus(confirmStatus);
+               dailyMaintenanceOrderService.updateById(maintenanceOrder);
+
+               this.twoMaintenanceAlert(confirmStatus,"浜屼繚绉讳氦鍗曠淮淇涓讳换",maintenanceOrder.getNum());
+           }else if("7".equals(confirmStatus)){
+               finishTransferOrder.setEquipmentInspectorUser(sysUser.getRealname());
+               finishTransferOrder.setTransferOrderUda4(DateUtils.now());
+               finishTransferOrderService.updateById(finishTransferOrder);
+
+               maintenanceOrder.setConfirmStatus(confirmStatus);
                maintenanceOrder.setStatus("8");
                dailyMaintenanceOrderService.updateById(maintenanceOrder);
            }
        }
-
         return Result.OK("瀹℃壒鎴愬姛!");
     }
 
+    void twoMaintenanceAlert(String confirmStatus,String roleDictItem,String orderNum){
+
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        SysDict sysDict = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","info_type"),false);
+        SysDictItem sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>().eq("item_text",roleDictItem)
+                .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(confirmStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗕簩绾т繚鍏诲伐鍗曞彿銆�"+orderNum+"銆戠殑瀹屽伐绉讳氦鍗曠‘璁ら�氳繃锛岃鍒颁簩绾т繚鍏婚〉闈㈡煡鐪嬶紒";
+            }else if("2".equals(confirmStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗕簩绾т繚鍏诲伐鍗曞彿銆�"+orderNum+"銆戠殑瀹屽伐绉讳氦鍗曠‘椹冲洖锛岃鍒颁簩绾т繚鍏婚〉闈㈡煡鐪嬶紒";
+            }else if("3".equals(confirmStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗕簩绾т繚鍏诲伐鍗曞彿銆�"+orderNum+"銆戠殑瀹屽伐绉讳氦鍗曠‘璁ら�氳繃锛岃鍒颁簩绾т繚鍏婚〉闈㈡煡鐪嬶紒";
+            }else if("4".equals(confirmStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗕簩绾т繚鍏诲伐鍗曞彿銆�"+orderNum+"銆戠殑瀹屽伐绉讳氦鍗曠‘椹冲洖锛岃鍒颁簩绾т繚鍏婚〉闈㈡煡鐪嬶紒";
+            }else if("5".equals(confirmStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗕簩绾т繚鍏诲伐鍗曞彿銆�"+orderNum+"銆戠殑瀹屽伐绉讳氦鍗曠‘璁ら�氳繃锛岃鍒颁簩绾т繚鍏婚〉闈㈡煡鐪嬶紒";
+            }else if("6".equals(confirmStatus)){
+                msg = "銆�"+sysUser.getRealname()+"銆�"+"灏嗕簩绾т繚鍏诲伐鍗曞彿銆�"+orderNum+"銆戠殑瀹屽伐绉讳氦鍗曠‘椹冲洖锛岃鍒颁簩绾т繚鍏婚〉闈㈡煡鐪嬶紒";
+            }
+            MessageDTO messageDTO = new MessageDTO();
+            messageDTO.setTitle("瀹屽伐绉讳氦鍗曟秷鎭彁閱掞紒");
+            messageDTO.setContent(msg);
+            messageDTO.setCategory(roleDictItem);
+            messageDTO.setFromUser("瀹屽伐绉讳氦鍗曟秷鎭彁閱掓彁閱掑皬鍔╂墜");
+            messageDTO.setToUser(user.getUsername());
+            sysBaseApi.sendSysAnnouncement(messageDTO);
+        }
+    }
+
+    @RequestMapping(value = "/editTechnologyStatus", method = {RequestMethod.PUT,RequestMethod.POST})
+    @Transactional(rollbackFor = { Exception.class })
+    public Result<String> editTechnologyStatus(@RequestBody Equipment equipment) {
+        equipment.setTechnologyStatusVerificationType("1");
+        equipmentService.updateById(equipment);
+
+        DailyMaintenanceOrder dailyMaintenanceOrder = dailyMaintenanceOrderService.getById(equipment.getMaintenanceOrderId());
+        dailyMaintenanceOrder.setStatus("8");
+        dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
 }

--
Gitblit v1.9.3