From 23396e93588f52941f729fc63cea84a70847d3bc Mon Sep 17 00:00:00 2001
From: hyingbo <1363390067@qq.com>
Date: 星期四, 11 九月 2025 11:08:12 +0800
Subject: [PATCH] 二保三保设备保养时间调整

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
index 6d30e4b..2bb6b18 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -6,30 +6,41 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.beust.jcommander.internal.Lists;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.FileUploadResult;
 import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.exception.ExceptionCast;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.common.util.FileUtil;
+import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum;
 import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum;
+import org.jeecg.modules.eam.entity.EamEquipmentExtend;
 import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
 import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
+import org.jeecg.modules.eam.entity.EamSysFiles;
 import org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper;
 import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
+import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
 import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
 import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
+import org.jeecg.modules.eam.service.IEamSysFilesService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -46,6 +57,11 @@
 
     @Autowired
     private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
+
+    @Autowired
+    private IEamSysFilesService sysFilesService;
+    @Autowired
+    private IEamEquipmentExtendService eamEquipmentExtendService;
 
     @Override
     public IPage<EamMaintenanceStandard> queryPageList(Page<EamMaintenanceStandard> page, EamMaintenanceStandard eamMaintenanceStandard) {
@@ -71,7 +87,7 @@
             }
             //鍚嶇О 妯$硦鏌ヨ
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) {
-                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardCode());
+                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardName());
             }
             //璁惧
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) {
@@ -130,6 +146,11 @@
             }
         }
         eamMaintenanceStandardMapper.insert(entity);
+
+        //淇濆吇鍒嗙被涓轰簩淇�/涓変繚鏃惰缃笅娆′繚鍏绘椂闂�
+        if (Lists.newArrayList(MaintenanceCategoryEnum.SECOND_MAINTENANCE.name(), MaintenanceCategoryEnum.THIRD_MAINTENANCE.name()).contains(entity.getMaintenanceCategory())) {
+            updateEquipmentExtendInfo(entity);
+        }
         //澶勭悊鏄庣粏鏁版嵁
         if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) {
             standardRequest.getTableDetailList().forEach(tableDetail -> {
@@ -183,11 +204,25 @@
                 eamMaintenanceStandardDetailService.updateBatchById(updateList);
             }
         }
+        updateEquipmentExtendInfo(entity);
         if(CollectionUtil.isNotEmpty(standardRequest.getRemoveDetailList())) {
             List<String> ids = standardRequest.getRemoveDetailList().stream().map(EamMaintenanceStandardDetail::getId).collect(Collectors.toList());
             eamMaintenanceStandardDetailService.removeBatchByIds(ids);
         }
         return true;
+    }
+
+    private boolean updateEquipmentExtendInfo(EamMaintenanceStandard entity) {
+        //鏌ヨ璁惧鎵╁睍琛�
+        EamEquipmentExtend eamEquipmentExtend = eamEquipmentExtendService.getById(entity.getEquipmentId());
+        //澶勭悊璁惧鎵╁睍琛ㄤ腑涓嬫淇濆吇鏃堕棿
+        LocalDate nextSecondMaintenanceDate = DateUtils.dateToLocalDate(entity.getInitialDate()).plusDays(entity.getMaintenancePeriod());
+        if (MaintenanceCategoryEnum.THIRD_MAINTENANCE.name().equals(entity.getMaintenanceCategory())) {
+            eamEquipmentExtend.setNextThirdMaintenance(DateUtils.localDateToDate(nextSecondMaintenanceDate));
+        }else if (MaintenanceCategoryEnum.SECOND_MAINTENANCE.name().equals(entity.getMaintenanceCategory())) {
+            eamEquipmentExtend.setNextSecondMaintenance(DateUtils.localDateToDate(nextSecondMaintenanceDate));
+        }
+        return eamEquipmentExtendService.updateById(eamEquipmentExtend);
     }
 
     @Override
@@ -245,6 +280,8 @@
             });
             eamMaintenanceStandardDetailService.saveBatch(standardRequest.getTableDetailList());
         }
+
+        updateEquipmentExtendInfo(entity);
         return true;
     }
 
@@ -290,4 +327,20 @@
         queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name());
         return eamMaintenanceStandardMapper.selectList(queryWrapper);
     }
+
+    @Override
+    public void downloadFile(HttpServletResponse response, EamMaintenanceStandard eamMaintenanceStandard) throws JsonProcessingException {
+        String json = eamMaintenanceStandard.getReferenceFile();
+        if(StringUtils.isNotBlank(json)){
+            ObjectMapper mapper = new ObjectMapper();
+            Map<String, Object> map = mapper.readValue(json, Map.class);
+            String fileEncodeName = (String) map.get("fileEncodeName");
+            List<EamSysFiles> list = sysFilesService.lambdaQuery().eq(EamSysFiles::getFileEncodeName, fileEncodeName).list();
+            if(list.size()>0){
+                FileUtil.downLoadFile(response, list.get(0).getFilePath(), list.get(0).getFileName());
+            }else{
+                ExceptionCast.cast("鏂囦欢涓嶅瓨鍦�");
+            }
+        }
+    }
 }

--
Gitblit v1.9.3