From cc0e9036de6e922e8fe254fef01d8de9996024b7 Mon Sep 17 00:00:00 2001 From: hyingbo <1363390067@qq.com> Date: 星期四, 17 七月 2025 18:16:03 +0800 Subject: [PATCH] 获取报警描述修改 --- lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 158 insertions(+), 21 deletions(-) diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java index b5e0bb4..4140b4b 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java @@ -1,5 +1,7 @@ package org.jeecg.modules.dnc.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -7,13 +9,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.dnc.constant.DocAttributionTypeEnum; import org.jeecg.modules.dnc.entity.*; import org.jeecg.modules.dnc.exception.ExceptionCast; import org.jeecg.modules.dnc.mapper.ProcessStreamMapper; +import org.jeecg.modules.dnc.request.DocInfoQueryRequest; import org.jeecg.modules.dnc.request.ProcessStreamRequest; +import org.jeecg.modules.dnc.request.TreeInfoRequest; import org.jeecg.modules.dnc.response.*; import org.jeecg.modules.dnc.service.*; import org.jeecg.modules.dnc.utils.ValidateUtil; +import org.jeecg.modules.mdc.entity.MdcEquipment; +import org.jeecg.modules.mdc.service.IMdcEquipmentService; import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.entity.SysUser; import org.springframework.beans.factory.annotation.Autowired; @@ -22,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; @Service public class ProcessStreamServiceImpl extends ServiceImpl<ProcessStreamMapper, ProcessStream> implements IProcessStreamService { @@ -33,8 +41,7 @@ @Autowired private IProcessSpecVersionService processSpecVersionService; @Autowired - @Lazy - private IDeviceInfoService deviceInfoService; + private IMdcEquipmentService mdcEquipmentService; @Autowired private IPermissionStreamNewService permissionStreamNewService; @Autowired @@ -49,7 +56,11 @@ private IProductMixService productMixService; @Autowired private IProductPermissionService productPermissionService; - + @Autowired + @Lazy + private IDocInfoService docInfoService; + @Autowired + private IDeviceTypeService deviceTypeService; @Override @Transactional(rollbackFor = {Exception.class}) public boolean addProcessStream(ProcessStream stream) { @@ -80,7 +91,7 @@ if(en != null) { ExceptionCast.cast(ProcessInfoCode.PROCESS_IS_EXIST); } - oldDepartPermList=permissionStreamNewService.loadPermissionStreamNewByBusinessId(psv.getId(),"4","1"); + oldDepartPermList=permissionStreamNewService.loadPermissionStreamNewByBusinessId(psv.getId(), DocAttributionTypeEnum.OPERATION.getCode().toString(),"1"); }else { ComponentInfo componentInfo = componentInfoService.getById(stream.getComponentId()); if(componentInfo == null) @@ -92,7 +103,7 @@ if(en != null) { ExceptionCast.cast(ProcessInfoCode.PROCESS_IS_EXIST); } - oldDepartPermList=permissionStreamNewService.loadPermissionStreamNewByBusinessId(componentInfo.getComponentId(),"2","1"); + oldDepartPermList=permissionStreamNewService.loadPermissionStreamNewByBusinessId(componentInfo.getComponentId(),DocAttributionTypeEnum.COMPONENT.getCode().toString(),"1"); } boolean b = super.save(stream); if(!b) @@ -109,7 +120,7 @@ PermissionStreamNew perm = new PermissionStreamNew(); perm.setDepartId(item.getDepartId()); perm.setBusinessId(stream.getProcessId()); - perm.setBusinessType("5"); + perm.setBusinessType(DocAttributionTypeEnum.PROCESS.getCode().toString()); permissionStreamList.add(perm); }); if(!processionDepartmentList.isEmpty()) { @@ -124,7 +135,7 @@ } } //娣诲姞鐢ㄦ埛鏉冮檺 - b = productPermissionService.add(stream.getProcessId(), userId,"5"); + b = productPermissionService.add(stream.getProcessId(), userId,DocAttributionTypeEnum.PROCESS.getCode().toString()); if (!b) { ExceptionCast.cast(ProductInfoCode.PRODUCT_SAVE_ERROR); } @@ -132,17 +143,17 @@ ProductMix productMix; if (stream.getPsvId() != null) { productMix = new ProductMix(Long.parseLong(stream.getProcessId()),Long.parseLong(stream.getPsvId()) - ,stream.getProcessName(),stream.getProcessCode(),5,new Date()); + ,stream.getProcessName(),stream.getProcessCode(),DocAttributionTypeEnum.PROCESS.getCode(),new Date()); }else { productMix = new ProductMix(Long.parseLong(stream.getProcessId()),Long.parseLong(stream.getComponentId()) - ,stream.getProcessName(),stream.getProcessCode(),5,new Date()); + ,stream.getProcessName(),stream.getProcessCode(),DocAttributionTypeEnum.PROCESS.getCode(),new Date()); } productMixService.save(productMix); //娣诲姞鏉冮檺楠岃瘉 PermissionStreamNew permissionStream = new PermissionStreamNew(); permissionStream.setUserId(userId); permissionStream.setBusinessId(stream.getProcessId()); - permissionStream.setBusinessType("5"); + permissionStream.setBusinessType(DocAttributionTypeEnum.PROCESS.getCode().toString()); return permissionStreamNewService.addPermissionStreamNew(permissionStream); } @@ -165,8 +176,8 @@ boolean b = super.updateById(stream); //鍚屾淇敼缁撴瀯鏍� ProductMix productMix = productMixService.getById(Long.parseLong(id)); - productMix.setName(stream.getProcessName()); - productMix.setCode(stream.getProcessCode()); + productMix.setTreeName(stream.getProcessName()); + productMix.setTreeCode(stream.getProcessCode()); productMixService.updateById(productMix); if(!b) ExceptionCast.cast(CommonCode.FAIL); @@ -190,7 +201,7 @@ ExceptionCast.cast(ProcessInfoCode.WORKSTEP_HAS_DATA); } //楠岃瘉鏄惁瀛樺湪鏂囨。 - List<DocRelative> docRelativeList=iDocRelativeService.list(new QueryWrapper<DocRelative>().eq("attribution_type","5").eq("attribution_id",id)); + List<DocRelative> docRelativeList=iDocRelativeService.list(new QueryWrapper<DocRelative>().eq("attribution_type",DocAttributionTypeEnum.PROCESS.getCode().toString()).eq("attribution_id",id)); if (!docRelativeList.isEmpty()){ ExceptionCast.cast(ProcessInfoCode.PROCESS_HAS_DOC); } @@ -248,8 +259,8 @@ public List<ProcessStream> validateDeviceProcessInfo(String pnCode, String deviceNo) { if(!ValidateUtil.validateString(pnCode) || !ValidateUtil.validateString(deviceNo)) ExceptionCast.cast(CommonCode.INVALID_PARAM); - DeviceInfo deviceInfo = deviceInfoService.getByDeviceNo(deviceNo); - if(deviceInfo == null) + MdcEquipment mdcEquipment = mdcEquipmentService.findEquipmentNameByEquipmentId(deviceNo); + if(mdcEquipment == null) ExceptionCast.cast(DeviceCode.DEVICE_NOT_EXIST); PermissionStream stream = componentInfoService.validateComponentOrPartsPnCode(pnCode); if(stream == null) @@ -305,12 +316,12 @@ en.setProcessId(processStream.getProcessId()); processionDepartmentList.add(en); } - PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(processStream.getProcessId(),item.getId(),"5"); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(processStream.getProcessId(),item.getId(),DocAttributionTypeEnum.PROCESS.getCode().toString()); if(stream == null) { stream = new PermissionStreamNew(); stream.setDepartId(item.getId()); stream.setBusinessId(processStream.getProcessId()); - stream.setBusinessType("5"); + stream.setBusinessType(DocAttributionTypeEnum.PROCESS.getCode().toString()); permissionStreamList.add(stream); } }); @@ -352,7 +363,7 @@ if(en != null) { processionDepartmentList.add(en); } - PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(processStream.getProcessId(),item.getId(),"5"); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(processStream.getProcessId(),item.getId(),DocAttributionTypeEnum.PROCESS.getCode().toString()); if(stream != null) { permissionStreamList.add(stream); } @@ -387,12 +398,12 @@ en.setProcessId(processStream.getProcessId()); permissionList.add(en); } - PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(processStream.getProcessId(), item.getId(),"5"); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(processStream.getProcessId(), item.getId(),DocAttributionTypeEnum.PROCESS.getCode().toString()); if(stream == null) { stream = new PermissionStreamNew(); stream.setUserId(item.getId()); stream.setBusinessId(processStream.getProcessId()); - stream.setBusinessType("5"); + stream.setBusinessType(DocAttributionTypeEnum.PROCESS.getCode().toString()); permissionStreamList.add(stream); } }); @@ -423,7 +434,7 @@ if(en != null) { permissionList.add(en); } - PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(processStream.getProcessId(), item.getId(),"5"); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(processStream.getProcessId(), item.getId(),DocAttributionTypeEnum.PROCESS.getCode().toString()); if(stream != null) { permissionStreamList.add(stream); } @@ -444,4 +455,130 @@ return true; } + /** + * 閫氳繃宸ュ簭鍙枫�佸伐搴忓悕绉扮瓑鏌ヨ瀵瑰簲鐢靛瓙鏍锋澘 + * 鐢靛瓙鏍锋澘鐩存帴鎸傚湪宸ュ簭涓� + * @param treeInfoRequest + * @return + */ + @Override + public List<DocInfo> getByProcessStreamOtherFile(TreeInfoRequest treeInfoRequest){ + LambdaQueryWrapper<ProcessStream> queryWrapper = new LambdaQueryWrapper<>(); + if (treeInfoRequest.getProductIds() != null && !treeInfoRequest.getProductIds().isEmpty()) { + queryWrapper.in(ProcessStream::getProductId, treeInfoRequest.getProductIds()); + } + if (treeInfoRequest.getComponentIds() != null && !treeInfoRequest.getComponentIds().isEmpty()) { + queryWrapper.in(ProcessStream::getComponentId, treeInfoRequest.getComponentIds()); + } + if (treeInfoRequest.getPartsIds() != null && !treeInfoRequest.getPartsIds().isEmpty()) { + queryWrapper.in(ProcessStream::getPartsId, treeInfoRequest.getPartsIds()); + } + if (treeInfoRequest.getPsvIds() != null && !treeInfoRequest.getPsvIds().isEmpty()) { + queryWrapper.in(ProcessStream::getPsvId, treeInfoRequest.getPsvIds()); + } + if (Objects.equals(treeInfoRequest.getAttributionType(), DocAttributionTypeEnum.PROCESS.getCode())){ + queryWrapper.eq(StrUtil.isNotEmpty(treeInfoRequest.getAttributionId()),ProcessStream::getProcessId,treeInfoRequest.getAttributionId()); + } + queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeName()),ProcessStream::getProcessName, treeInfoRequest.getTreeName()); + queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeCode()),ProcessStream::getProcessCode, treeInfoRequest.getTreeName()); + queryWrapper.orderByDesc(ProcessStream::getCreateTime); + List<ProcessStream> list = super.list(queryWrapper); + List<DocInfo> docInfos; + if (list == null || list.isEmpty() || StrUtil.isNotBlank(treeInfoRequest.getStructureType())){ + return new ArrayList<>(); + }else { + String ids=list.stream().map(ProcessStream::getProcessId).collect(Collectors.joining(",")); + DocInfoQueryRequest docQuery = new DocInfoQueryRequest(); + BeanUtil.copyProperties(treeInfoRequest,docQuery); + docQuery.setAttributionIds(ids); + docQuery.setDocClassCode("OTHER"); + docQuery.setAttributionType(DocAttributionTypeEnum.PROCESS.getCode()); + docInfos=docInfoService.findListByDocQuery(docQuery); + if (Objects.equals(treeInfoRequest.getAttributionType(), DocAttributionTypeEnum.PROCESS.getCode())){ + List<String> id =new ArrayList<>(); + id.add(treeInfoRequest.getAttributionId()); + treeInfoRequest.setProcessIds(id); + List<DocInfo> workSteps = workStepService.getByWorkStepOtherFile(treeInfoRequest); + docInfos.addAll(workSteps); + } + } + return docInfos; + } + + /** + * 閫氳繃宸ュ簭鍙枫�佸伐搴忓悕绉扮瓑鏌ヨ瀵瑰簲NC鏂囦欢 + * NC鏂囦欢瀛樺湪璁惧绫讳笅闈� + * @param treeInfoRequest + * @return + */ + @Override + public List<DocInfo> getByProcessStreamNCFile(TreeInfoRequest treeInfoRequest){ + LambdaQueryWrapper<ProcessStream> queryWrapper = new LambdaQueryWrapper<>(); + if (treeInfoRequest.getProductIds() != null && !treeInfoRequest.getProductIds().isEmpty()) { + queryWrapper.in(ProcessStream::getProductId, treeInfoRequest.getProductIds()); + } + if (treeInfoRequest.getComponentIds() != null && !treeInfoRequest.getComponentIds().isEmpty()) { + queryWrapper.in(ProcessStream::getComponentId, treeInfoRequest.getComponentIds()); + } + if (treeInfoRequest.getPartsIds() != null && !treeInfoRequest.getPartsIds().isEmpty()) { + queryWrapper.in(ProcessStream::getPartsId, treeInfoRequest.getPartsIds()); + } + if (treeInfoRequest.getPsvIds() != null && !treeInfoRequest.getPsvIds().isEmpty()) { + queryWrapper.in(ProcessStream::getPsvId, treeInfoRequest.getPsvIds()); + } + if (Objects.equals(treeInfoRequest.getAttributionType(), DocAttributionTypeEnum.PROCESS.getCode())){ + queryWrapper.eq(StrUtil.isNotEmpty(treeInfoRequest.getAttributionId()),ProcessStream::getProcessId,treeInfoRequest.getAttributionId()); + } + queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeName()),ProcessStream::getProcessName, treeInfoRequest.getTreeName()); + queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeCode()),ProcessStream::getProcessCode, treeInfoRequest.getTreeName()); + queryWrapper.orderByDesc(ProcessStream::getCreateTime); + List<ProcessStream> list = super.list(queryWrapper); + List<DocInfo> docInfos = new ArrayList<>(); + //NC鏂囦欢瀛樺湪瀵瑰簲鐨勮澶囩被涓嬶紝鎵�浠ラ渶瑕佽繃婊� + if (!list.isEmpty()) { + List<String> processIds = list.stream().map(ProcessStream::getProcessId).collect(Collectors.toList()); + List<DeviceType> deviceTypeList = deviceTypeService.getDeviceTypeByAttribution(processIds, + DocAttributionTypeEnum.PROCESS.getCode(),treeInfoRequest.getDeviceManagementName(),treeInfoRequest.getDeviceManagementCode()); + if (deviceTypeList != null && !deviceTypeList.isEmpty()) { + List<String> deviceTypeIds=deviceTypeList.stream().map(DeviceType::getId).collect(Collectors.toList()); + DocInfoQueryRequest docQuery = new DocInfoQueryRequest(); + BeanUtil.copyProperties(treeInfoRequest,docQuery); + docQuery.setAttributionIds(String.join(",",deviceTypeIds)); + docQuery.setDocClassCode("NC"); + docQuery.setAttributionType(DocAttributionTypeEnum.PROCESS.getCode()); + docInfos=docInfoService.findListByDocQuery(docQuery); + } + if (Objects.equals(treeInfoRequest.getAttributionType(), DocAttributionTypeEnum.PROCESS.getCode())){ + List<String> id =new ArrayList<>(); + id.add(treeInfoRequest.getAttributionId()); + treeInfoRequest.setProcessIds(id); + List<DocInfo> docInfoList = workStepService.getByWorkStepNCFile(treeInfoRequest); + docInfos.addAll(docInfoList); + }else { + treeInfoRequest.setProcessIds(processIds); + List<DocInfo> docInfoList = workStepService.getByWorkStepNCFile(treeInfoRequest); + docInfos.addAll(docInfoList); + } + return docInfos; + } + return null; + } + + @Override + public boolean assignPermission(Object entity, Collection<SysUser> userList, boolean isAdd){ + if (isAdd) { + return assignAddUser((ProcessStream) entity, userList); + } else { + return assignRemoveUser((ProcessStream) entity, userList); + } + } + @Override + public boolean assignDepartPermission(Object entity, Collection<MdcProduction> departments, boolean isAdd) { + if (isAdd) { + return assignAddDepart((ProcessStream) entity, departments); + } else { + return assignRemoveDepart((ProcessStream) entity, departments); + } + } + } -- Gitblit v1.9.3