From bb1a96551d4e9eafed275015789d8d0cb6ffd3ea Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期四, 04 九月 2025 17:03:07 +0800 Subject: [PATCH] 更新说明 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java | 148 ++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 128 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 8a2c3d3..f0507d6 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 @@ -12,23 +12,27 @@ 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.FileUtil; import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum; 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.IEamMaintenanceStandardDetailService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; +import org.jeecg.modules.eam.service.IEamSysFilesService; +import org.jeecg.modules.system.service.ISysFilesService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import javax.servlet.http.HttpServletResponse; +import java.util.*; import java.util.stream.Collectors; /** @@ -46,10 +50,13 @@ @Autowired private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService; + @Autowired + private IEamSysFilesService sysFilesService; + @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 +65,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 @@ -190,6 +197,64 @@ } @Override + @Transactional(rollbackFor = Exception.class) + public boolean upgradeMaintenanceStandard(EamMaintenanceStandardRequest standardRequest) { + EamMaintenanceStandard entity = eamMaintenanceStandardMapper.selectById(standardRequest.getId()); + if(entity == null){ + throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); + } + entity.setStandardStatus(MaintenanceStandardStatusEnum.ABOLISH.name()); + //鍘熸潵鐨勪綔搴� + eamMaintenanceStandardMapper.updateById(entity); + + //鏂板涓�涓増鏈� + EamMaintenanceStandard newEntity = new EamMaintenanceStandard(); + newEntity.setStandardCode(standardRequest.getStandardCode()); + newEntity.setStandardName(standardRequest.getStandardName()); + newEntity.setMaintenanceCategory(standardRequest.getMaintenanceCategory()); + newEntity.setMaintenancePeriod(standardRequest.getMaintenancePeriod()); + newEntity.setInitialDate(standardRequest.getInitialDate()); + newEntity.setFileCode(standardRequest.getFileCode()); + newEntity.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name()); + //鐗堟湰閫掑 + newEntity.setStandardVersion(entity.getStandardVersion() + 1); + //璁惧澶勭悊 + newEntity.setEquipmentId(standardRequest.getEquipmentId()); + //鍒犻櫎鏍囪 + newEntity.setDelFlag(CommonConstant.DEL_FLAG_0); + //閲嶅鎬ф牎楠� + EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory()); + if(exist != null){ + throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�"); + } + //澶勭悊闄勪欢 + if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) { + FileUploadResult fileUploadResult = standardRequest.getFileList().get(0); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResult); + newEntity.setReferenceFile(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + eamMaintenanceStandardMapper.insert(newEntity); + //澶勭悊鏄庣粏鏁版嵁 + if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) { + standardRequest.getTableDetailList().forEach(tableDetail -> { + tableDetail.setId(null); + tableDetail.setCreateBy(null); + tableDetail.setUpdateBy(null); + tableDetail.setCreateTime(null); + tableDetail.setUpdateTime(null); + tableDetail.setStandardId(newEntity.getId()); + }); + eamMaintenanceStandardDetailService.saveBatch(standardRequest.getTableDetailList()); + } + return true; + } + + @Override public EamMaintenanceStandard checkDuplicate(String equipmentId, String maintenanceCategory) { LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId); @@ -204,4 +269,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