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 |  115 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 98 insertions(+), 17 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 af38a15..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,29 +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.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -46,10 +58,15 @@
     @Autowired
     private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
 
+    @Autowired
+    private IEamSysFilesService sysFilesService;
+    @Autowired
+    private IEamEquipmentExtendService eamEquipmentExtendService;
+
     @Override
     public IPage<EamMaintenanceStandard> queryPageList(Page<EamMaintenanceStandard> page, EamMaintenanceStandard eamMaintenanceStandard) {
-        LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
+        QueryWrapper<EamMaintenanceStandard> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("ems.del_flag", CommonConstant.DEL_FLAG_0);
         //鐢ㄦ埛鏁版嵁鏉冮檺
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         if (sysUser == null) {
@@ -58,41 +75,41 @@
         if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
             //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
             List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
-            StringBuilder sqlSb = new StringBuilder("select 1 from eam_equipment t where t.id = equipment_id and t.equipment_code in (");
-            equipArr.forEach(equipmentCode -> {
-                sqlSb.append("'").append(equipmentCode).append("',");
-            });
-            sqlSb.append(")");
-            String sql = sqlSb.toString().replaceAll(",\\)", ")");
-            queryWrapper.exists(sql);
+            queryWrapper.in("e.equipment_code", equipArr);
         } else {
             //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶�
-            queryWrapper.exists("select 1 from eam_equipment e where exists (select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id) and e.id = equipment_id", sysUser.getId());
+            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
         }
         if(eamMaintenanceStandard != null) {
             //缂栫爜 妯$硦鏌ヨ
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardCode())) {
-                queryWrapper.like(EamMaintenanceStandard::getStandardCode, eamMaintenanceStandard.getStandardCode());
+                queryWrapper.like("ems.standard_code", eamMaintenanceStandard.getStandardCode());
             }
             //鍚嶇О 妯$硦鏌ヨ
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) {
-                queryWrapper.like(EamMaintenanceStandard::getStandardName, eamMaintenanceStandard.getStandardName());
+                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardName());
             }
             //璁惧
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) {
-                queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, eamMaintenanceStandard.getEquipmentId());
+                queryWrapper.eq("ems.equipment_id", eamMaintenanceStandard.getEquipmentId());
             }
             //淇濆吇鍒嗙被
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getMaintenanceCategory())) {
-                queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, eamMaintenanceStandard.getMaintenanceCategory());
+                queryWrapper.eq("ems.maintenance_category", eamMaintenanceStandard.getMaintenanceCategory());
             }
             //淇濆吇鍒嗙被
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardStatus())) {
-                queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, eamMaintenanceStandard.getStandardStatus());
+                queryWrapper.eq("ems.standard_status", eamMaintenanceStandard.getStandardStatus());
+            }
+            //璁惧缂栫爜
+            if(StringUtils.isNotBlank(eamMaintenanceStandard.getKeyword())) {
+                queryWrapper.and(wrapper -> wrapper.like("e.equipment_name", eamMaintenanceStandard.getKeyword())
+                        .or()
+                        .like("e.equipment_code", eamMaintenanceStandard.getKeyword()));
             }
         }
-        queryWrapper.orderByDesc(EamMaintenanceStandard::getCreateTime);
-        return eamMaintenanceStandardMapper.selectPage(page, queryWrapper);
+        queryWrapper.orderByDesc("ems.create_time");
+        return eamMaintenanceStandardMapper.queryPageList(page, queryWrapper);
     }
 
     @Override
@@ -129,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 -> {
@@ -182,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
@@ -244,6 +280,8 @@
             });
             eamMaintenanceStandardDetailService.saveBatch(standardRequest.getTableDetailList());
         }
+
+        updateEquipmentExtendInfo(entity);
         return true;
     }
 
@@ -262,4 +300,47 @@
         }
         return list.get(0);
     }
+
+    /**
+     * 鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯
+     * @param keyword 璁惧缂栧彿
+     * @param maintenanceCategory 淇濆吇绫诲瀷
+     * @return
+     */
+    @Override
+    public List<EamMaintenanceStandard> queryListByKeywordAndCategory(String keyword, String equipmentId, Integer pageSize, String maintenanceCategory){
+        Page<EamMaintenanceStandard> page = new Page<EamMaintenanceStandard>(1, pageSize);
+        EamMaintenanceStandard query = new EamMaintenanceStandard();
+        query.setEquipmentId(equipmentId);
+        query.setKeyword(keyword);
+        query.setMaintenanceCategory(maintenanceCategory);
+        query.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name());
+        IPage<EamMaintenanceStandard> pageData = this.queryPageList(page, query);
+        return pageData.getRecords();
+    }
+
+    @Override
+    public List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory) {
+        LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
+        queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
+        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