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 | 110 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 90 insertions(+), 20 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 c8c4bcb..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 @@ -2,32 +2,45 @@ import cn.hutool.core.collection.CollectionUtil; 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; 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; /** @@ -45,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) { @@ -57,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 @@ -128,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 -> { @@ -181,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 @@ -243,6 +280,8 @@ }); eamMaintenanceStandardDetailService.saveBatch(standardRequest.getTableDetailList()); } + + updateEquipmentExtendInfo(entity); return true; } @@ -269,8 +308,39 @@ * @return */ @Override - public List<EamMaintenanceStandard> queryListBykeywordAndCategory(String keyword, String maintenanceCategory){ - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - return eamMaintenanceStandardMapper.queryListBykeywordAndCategory(loginUser.getId(),keyword, maintenanceCategory); + 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