From ebc4996578cc06cacda5561a45a4dfc2c951d070 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期一, 21 四月 2025 10:18:53 +0800
Subject: [PATCH] art: 设备管理-点检工单/周保工单-设备状态,设备履历变化修改

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 38 insertions(+), 12 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
index b5396f5..31fa8f9 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -20,19 +21,15 @@
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.eam.constant.BusinessCodeConst;
-import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
-import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum;
+import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
+import org.jeecg.modules.eam.constant.*;
 import org.jeecg.modules.eam.entity.EamEquipment;
 import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder;
 import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
 import org.jeecg.modules.eam.mapper.EamWeekMaintenanceOrderMapper;
 import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery;
 import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest;
-import org.jeecg.modules.eam.service.IEamEquipmentService;
-import org.jeecg.modules.eam.service.IEamReportRepairService;
-import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderDetailService;
-import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService;
+import org.jeecg.modules.eam.service.*;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
 import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
@@ -81,6 +78,8 @@
     private IEamEquipmentService eamEquipmentService;
     @Autowired
     private IEamReportRepairService eamReportRepairService;
+    @Autowired
+    private IEamEquipmentExtendService eamEquipmentExtendService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -94,7 +93,7 @@
         order.setRemark(request.getRemark());
         //鐘舵�佸垵濮嬪寲
         order.setMaintenanceStatus(WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
-        order.setCreationMethod(OrderCreationMethodEnum.MANUAL.name());
+        order.setCreationMethod(request.getCreationMethod());
         //鍒犻櫎鏍囪
         order.setDelFlag(CommonConstant.DEL_FLAG_0);
         eamWeekMaintenanceOrderMapper.insert(order);
@@ -132,6 +131,8 @@
                 eamWeekMaintenanceOrderMapper.updateById(order);
                 return result.isSuccess();
             }
+            //鏇存柊璁惧淇濆吇鐘舵��
+            eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
         }
 
         return true;
@@ -252,6 +253,8 @@
                 eamWeekMaintenanceOrderMapper.updateById(entity);
                 return result.isSuccess();
             }
+            //鏇存柊璁惧淇濆吇鐘舵��
+            eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
         }
         return true;
     }
@@ -290,6 +293,8 @@
         variables.put("NextAssignee", usernames);
         Result result = flowDefinitionService.startProcessInstanceByKey("week_maintenance_process", variables);
         if (result != null) {
+            //鏇存柊璁惧淇濆吇鐘舵��
+            eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
             return result.isSuccess();
         }
         return true;
@@ -297,7 +302,8 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean approval(EamWeekMaintenanceRequest request) {
+    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.WEEK_MAINTENANCE, businessTable = "eam_week_maintenance_order")
+    public EamWeekMaintenanceOrder approval(EamWeekMaintenanceRequest request) {
         EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderMapper.selectById(request.getId());
         if (entity == null) {
             throw new JeecgBootException("瀹℃壒鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�");
@@ -330,7 +336,7 @@
 
         WeekMaintenanceStatusEnum status = WeekMaintenanceStatusEnum.getInstance(entity.getMaintenanceStatus());
         if (status == null) {
-            return false;
+            return null;
         }
         //娴佺▼鍙橀噺
         Map<String, Object> values = new HashMap<>();
@@ -365,8 +371,13 @@
                 if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
                     eamWeekMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList());
                 }
+                //鏇存柊璁惧淇濆吇鐘舵��
+                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.WAIT_CONFIRM.name());
                 break;
             case WAIT_CONFIRM:
+                if(StringUtils.isBlank(equipment.getEquipmentManager())) {
+                    throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
+                }
                 //鐝粍闀跨‘璁�
                 userApprovalList = new ArrayList<>();
                 userApprovalList.add(equipment.getEquipmentManager());
@@ -381,6 +392,7 @@
                 entity.setConfirmUser(user.getUsername());
                 entity.setConfirmComment(request.getConfirmComment());
                 entity.setConfirmTime(new Date());
+                entity.setConfirmDealType(request.getConfirmDealType());
                 if (CommonConstant.HAS_CANCLE.equals(request.getConfirmDealType())) {
                     //椹冲洖
                     userApprovalList = new ArrayList<>();
@@ -397,7 +409,7 @@
             case WAIT_INITIAL_ACCEPTANCE:
                 userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0005);
                 if (CollectionUtil.isEmpty(userSelectors)) {
-                    throw new JeecgBootException("璁惧鏈垎閰嶇粰鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+                    throw new JeecgBootException("璁惧鏈垎閰嶇粰璁捐兘閮ㄧ鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
                 }
                 userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                 values.put("dataId", entity.getId());
@@ -443,6 +455,8 @@
                         log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
                     }
                 }
+                //鏇存柊璁惧淇濆吇鐘舵��
+                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
                 break;
         }
         request.setValues(values);
@@ -454,7 +468,19 @@
         }
         //淇濆瓨宸ュ崟
         eamWeekMaintenanceOrderMapper.updateById(entity);
-        return true;
+        return entity;
+    }
+
+    @Override
+    public List<EamWeekMaintenanceOrder> selectUnCompleteOrder(String expiredDate) {
+        LambdaQueryWrapper<EamWeekMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.lt(EamWeekMaintenanceOrder::getMaintenanceDate, expiredDate);
+        List<String> unCompleteStatus = new ArrayList<>();
+        unCompleteStatus.add(WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
+        unCompleteStatus.add(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
+        queryWrapper.in(EamWeekMaintenanceOrder::getMaintenanceStatus, unCompleteStatus);
+        queryWrapper.orderByAsc(EamWeekMaintenanceOrder::getMaintenanceDate);
+        return eamWeekMaintenanceOrderMapper.selectList(queryWrapper);
     }
 
     private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {

--
Gitblit v1.9.3