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/ComponentInfoSeServiceImpl.java | 408 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 291 insertions(+), 117 deletions(-) diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java index 3856ff5..364bac6 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java @@ -1,36 +1,39 @@ package org.jeecg.modules.dnc.service.impl; -import com.alibaba.fastjson.JSONObject; +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.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.dnc.constant.DocAttributionTypeEnum; import org.jeecg.modules.dnc.dto.ComponentExt; - +import org.jeecg.modules.dnc.entity.*; import org.jeecg.modules.dnc.exception.ExceptionCast; import org.jeecg.modules.dnc.mapper.ComponentInfoMapper; import org.jeecg.modules.dnc.mapper.ProductInfoMapper; +import org.jeecg.modules.dnc.request.DocInfoQueryRequest; +import org.jeecg.modules.dnc.request.TreeInfoRequest; import org.jeecg.modules.dnc.response.CommonCode; import org.jeecg.modules.dnc.response.ComponentInfoCode; import org.jeecg.modules.dnc.response.ProductInfoCode; import org.jeecg.modules.dnc.response.UcenterCode; - import org.jeecg.modules.dnc.service.*; -import org.jeecg.modules.dnc.ucenter.Department; import org.jeecg.modules.dnc.utils.ValidateUtil; -import org.jeecg.modules.dnc.entity.*; +import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.entity.SysUser; -import org.jeecg.modules.dnc.entity.ComponentInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @Service public class ComponentInfoSeServiceImpl extends ServiceImpl<ComponentInfoMapper, ComponentInfo> implements IComponentInfoService { @@ -39,19 +42,29 @@ @Autowired public ProductInfoMapper productInfoMapper; @Autowired - private IPermissionStreamService permissionStreamService; + private IPermissionStreamNewService permissionStreamNewService; @Autowired private IComponentDepartmentService componentDepartmentService; @Autowired @Lazy private IPartsInfoService partsInfoService; @Autowired + private IProcessSpecVersionService processSpecVersionService; + @Autowired private IProcessStreamService processStreamService; @Autowired + private IWorkStepService workStepService; + @Autowired + private IProductMixService productMixService; + @Autowired + private IDocRelativeService iDocRelativeService; + @Autowired + private IProductPermissionService productPermissionService; + @Autowired + @Lazy private IDocInfoService docInfoService; @Autowired - private INcLogInfoService iNcLogInfoService; - + private IDocRelativeService docRelativeService; @Override @Transactional(rollbackFor = {Exception.class}) public boolean addComponentInfo(ComponentInfo componentInfo) { @@ -64,14 +77,13 @@ if(!ValidateUtil.validateString(componentInfo.getComponentCode())) ExceptionCast.cast(ComponentInfoCode.COMPONENT_CODE_NONE); ComponentInfo en = getByCode(componentInfo.getComponentCode()); - if(en != null) + if(en != null&&componentInfo.getBorrowId()==null) ExceptionCast.cast(ComponentInfoCode.COMPONENT_IS_EXIST); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); if(!ValidateUtil.validateString(userId)) ExceptionCast.cast(UcenterCode.UCENTER_ACCOUNT_NOT_EXIST); - - List<PermissionStream> oldPermissionList; + List<PermissionStreamNew> oldPermissionList; ProductInfo productInfo = productInfoMapper.selectById(componentInfo.getProductId()); if(productInfo == null) ExceptionCast.cast(ComponentInfoCode.COMPONENT_PRODUCT_NONE); @@ -80,40 +92,31 @@ if(en == null) { ExceptionCast.cast(ComponentInfoCode.COMPONENT_PARENT_NOT_EXIST); } - oldPermissionList = permissionStreamService.getByComponentId(en.getProductId(), en.getComponentId()); + oldPermissionList = permissionStreamNewService.loadPermissionStreamNewByBusinessId(en.getComponentId(),DocAttributionTypeEnum.COMPONENT.getCode().toString(),"1"); componentInfo.setRankLevel(en.getRankLevel() + 1); } else { - oldPermissionList = permissionStreamService.getByProductId(productInfo.getProductId()); + oldPermissionList = permissionStreamNewService.loadPermissionStreamNewByBusinessId(productInfo.getProductId(),DocAttributionTypeEnum.PRODUCT.getCode().toString(),"1"); componentInfo.setParentId(null); componentInfo.setRankLevel(1); } componentInfo.setComponentStatus(1); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("浜у搧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(2); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("閮ㄤ欢鍚嶇О锛�"+componentInfo.getComponentName()+"锛岄儴浠朵唬鍙凤細"+componentInfo.getComponentCode()); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); boolean b = super.save(componentInfo); if(!b) ExceptionCast.cast(CommonCode.FAIL); //閮ㄩ棬鏉冮檺 List<ComponentDepartment> componentDepartmentList = new ArrayList<>(); - List<PermissionStream> componentDepartPermList = new ArrayList<>(); + List<PermissionStreamNew> componentDepartPermList = new ArrayList<>(); if(oldPermissionList != null && !oldPermissionList.isEmpty()) { oldPermissionList.forEach(item -> { ComponentDepartment componentDepartment = new ComponentDepartment(); componentDepartment.setComponentId(componentInfo.getComponentId()); componentDepartment.setDepartId(item.getDepartId()); componentDepartmentList.add(componentDepartment); - PermissionStream permissionStream = new PermissionStream(); - permissionStream.setProductId(componentInfo.getProductId()); - permissionStream.setComponentId(componentInfo.getComponentId()); + PermissionStreamNew permissionStream = new PermissionStreamNew(); + permissionStream.setBusinessId(componentInfo.getComponentId()); permissionStream.setDepartId(item.getDepartId()); + permissionStream.setBusinessType(DocAttributionTypeEnum.COMPONENT.getCode().toString()); componentDepartPermList.add(permissionStream); }); } @@ -123,39 +126,45 @@ ExceptionCast.cast(CommonCode.FAIL); } if(!componentDepartPermList.isEmpty()) { - b = permissionStreamService.saveBatch(componentDepartPermList); + b = permissionStreamNewService.saveBatch(componentDepartPermList); if(!b) ExceptionCast.cast(CommonCode.FAIL); } - ComponentPermission permission = new ComponentPermission(); - permission.setComponentId(componentInfo.getComponentId()); - permission.setUserId(userId); - b = componentPermissionService.save(permission); - if(!b) - ExceptionCast.cast(CommonCode.FAIL); - //娣诲姞榛樿宸ュ簭 - ProcessStream processStream = new ProcessStream(); - processStream.setProductId(componentInfo.getProductId()); - processStream.setComponentId(componentInfo.getComponentId()); - processStream.setProcessCode("1"); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfogx = new NcLogInfo(); - //妯″潡 - ncLogInfogx.setModuleInfo("浜у搧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfogx.setOperateType(2); - //鏃ュ織鍐呭 - ncLogInfogx.setLogContent("閮ㄤ欢鍚嶇О锛�"+componentInfo.getComponentName()+"鐢熸垚榛樿宸ュ簭锛屽伐搴忓彿锛�"+processStream.getProcessCode()); - iNcLogInfoService.saveLogNcInfos(ncLogInfogx); - b = processStreamService.save(processStream); - if(!b) - ExceptionCast.cast(CommonCode.FAIL); + b = productPermissionService.add(componentInfo.getComponentId(), userId,DocAttributionTypeEnum.COMPONENT.getCode().toString()); + if (!b) { + ExceptionCast.cast(ProductInfoCode.PRODUCT_SAVE_ERROR); + } + //娣诲姞缁撴瀯鏍� + ProductMix productMix=null; + if (componentInfo.getParentId() != null) { + //瀛愰儴浠� + productMix = new ProductMix(Long.parseLong(componentInfo.getComponentId()),Long.parseLong(componentInfo.getParentId()) + ,componentInfo.getComponentName(),componentInfo.getComponentCode(),2,new Date()); + }else { + productMix = new ProductMix(Long.parseLong(componentInfo.getComponentId()),Long.parseLong(productInfo.getProductId()) + ,componentInfo.getComponentName(),componentInfo.getComponentCode(),2,new Date()); + } + productMixService.save(productMix); + if (StrUtil.isNotEmpty(componentInfo.getBorrowId())){ + //鍊熺敤閮ㄤ欢,鍚屾娣诲姞鏂囦欢 + List<DocRelative> docRelativeList=docRelativeService. + list(new QueryWrapper<DocRelative>().eq("attribution_type",DocAttributionTypeEnum.COMPONENT.getCode().toString()).eq("attribution_id",componentInfo.getBorrowId())); + if (!docRelativeList.isEmpty()){ + docRelativeList.forEach(item -> { + DocRelative docRelative = new DocRelative(); + BeanUtil.copyProperties(item,docRelative); + docRelative.setId(null); + docRelative.setAttributionId(componentInfo.getComponentId()); + docRelativeService.save(docRelative); + }); + } + } //娣诲姞鏉冮檺 - PermissionStream stream = new PermissionStream(); + PermissionStreamNew stream = new PermissionStreamNew(); stream.setUserId(userId); - stream.setProductId(componentInfo.getProductId()); - stream.setComponentId(componentInfo.getComponentId()); - return permissionStreamService.save(stream); + stream.setBusinessId(componentInfo.getComponentId()); + stream.setBusinessType(DocAttributionTypeEnum.COMPONENT.getCode().toString()); + return permissionStreamNewService.addPermissionStreamNew(stream); } @Override @@ -177,18 +186,12 @@ componentInfo.setComponentStatus(null); componentInfo.setRankLevel(null); componentInfo.setProductId(null); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("浜у搧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(3); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("淇敼閮ㄤ欢鍚嶇О锛�"+productInfoMapper.selectById(en.getProductId()).getProductName()+"瀛愰泦閮ㄤ欢"); - //淇敼淇濆瓨澶囨敞 - ncLogInfo.setRemark(JSONObject.toJSONString(en)); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); boolean b = super.updateById(componentInfo); + //鍚屾淇敼缁撴瀯鏍� + ProductMix productMix = productMixService.getById(Long.parseLong(id)); + productMix.setTreeName(componentInfo.getComponentName()); + productMix.setTreeCode(componentInfo.getComponentCode()); + productMixService.updateById(productMix); if(!b) return false; ComponentPermission permission = componentPermissionService.getByComponentIdAndUserId(id, userId); @@ -200,15 +203,19 @@ if(!b) return false; } - PermissionStream stream = permissionStreamService.getByComponentIdAndUserId(en.getProductId(), id, userId); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(id, userId,DocAttributionTypeEnum.COMPONENT.getCode().toString()); if(stream == null) { - stream = new PermissionStream(); + stream = new PermissionStreamNew(); stream.setUserId(userId); - stream.setProductId(en.getProductId()); - stream.setComponentId(id); - return permissionStreamService.save(stream); + stream.setBusinessId(id); + stream.setBusinessType(DocAttributionTypeEnum.COMPONENT.getCode().toString()); + return permissionStreamNewService.save(stream); } - return b; + List<ComponentInfo> list = super.lambdaQuery().eq(ComponentInfo::getBorrowId,id).list(); + if (list != null && !list.isEmpty()) { + list.forEach(item -> editComponentInfo(item.getComponentId(),componentInfo)); + } + return true; } @Override @@ -261,10 +268,10 @@ b = componentDepartmentService.deleteByComponentId(item.getComponentId()); if(!b) ExceptionCast.cast(ComponentInfoCode.COMPONENT_DELETE_PERM_NONE); - b = permissionStreamService.deleteUserPermsByComponentId(item.getProductId(), item.getComponentId()); + b = permissionStreamNewService.deletePermissionStreamNewByBusinessId(item.getComponentId(),DocAttributionTypeEnum.COMPONENT.getCode().toString(),"0"); if(!b) ExceptionCast.cast(ComponentInfoCode.COMPONENT_DELETE_PERM_NONE); - b = permissionStreamService.deleteDepartPermsByComponentId(item.getProductId(), item.getComponentId()); + b = permissionStreamNewService.deletePermissionStreamNewByBusinessId(item.getComponentId(),DocAttributionTypeEnum.COMPONENT.getCode().toString(),"1"); if(!b) ExceptionCast.cast(ComponentInfoCode.COMPONENT_DELETE_PERM_NONE); b = super.removeById(item.getComponentId()); @@ -286,38 +293,41 @@ if(childrenList != null && !childrenList.isEmpty()) { ExceptionCast.cast(ComponentInfoCode.COMPONENT_CHILD_EXIST); } - //楠岃瘉浜у搧涓嬫槸鍚︽湁闆朵欢 + //楠岃瘉閮ㄤ欢涓嬫槸鍚︽湁闆朵欢 List<PartsInfo> partsInfoList = partsInfoService.getByComponentId(componentInfo.getProductId(), componentInfo.getComponentId()); if(partsInfoList != null && !partsInfoList.isEmpty()) { ExceptionCast.cast(ComponentInfoCode.COMPONENT_PARTS_EXIST); } + //楠岃瘉閮ㄤ欢涓嬫槸鍚︽湁宸ュ簭淇℃伅 List<ProcessStream> processStreamList = processStreamService.findByComponentId(id); if(processStreamList != null && !processStreamList.isEmpty()) { ExceptionCast.cast(ComponentInfoCode.COMPONENT_PROCESS_EXIST); } - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("浜у搧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(4); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("閮ㄤ欢鍚嶇О锛�"+componentInfo.getComponentName()); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); - boolean b = docInfoService.deleteByComponentId(id); - if(!b) - ExceptionCast.cast(CommonCode.FAIL); + //楠岃瘉閮ㄤ欢鏄惁琚�熺敤 + List<ComponentInfo> list = super.lambdaQuery().eq(ComponentInfo::getBorrowId,id).list(); + if (list != null && !list.isEmpty()) { + ExceptionCast.cast(ComponentInfoCode.COMPONENT_BORROW_EXIST); + } + boolean b; + //楠岃瘉鏄惁瀛樺湪鏂囨。 + List<DocRelative> docRelativeList=iDocRelativeService.list(new QueryWrapper<DocRelative>().eq("attribution_type",DocAttributionTypeEnum.COMPONENT.getCode().toString()).eq("attribution_id",id)); + if (!docRelativeList.isEmpty()){ + ExceptionCast.cast(ComponentInfoCode.COMPONENT_DOC_EXIST); + } b = componentPermissionService.deleteByComponentId(id); if(!b) ExceptionCast.cast(CommonCode.FAIL); b = componentDepartmentService.deleteByComponentId(id); if(!b) ExceptionCast.cast(CommonCode.FAIL); - b = permissionStreamService.deleteUserPermsByComponentId(componentInfo.getProductId(), componentInfo.getComponentId()); + b = permissionStreamNewService.deletePermissionStreamNewByBusinessId(componentInfo.getComponentId(),DocAttributionTypeEnum.COMPONENT.getCode().toString(),"0"); if(!b) ExceptionCast.cast(CommonCode.FAIL); - b = permissionStreamService.deleteDepartPermsByComponentId(componentInfo.getProductId(), componentInfo.getComponentId()); + b = permissionStreamNewService.deletePermissionStreamNewByBusinessId(componentInfo.getComponentId(),DocAttributionTypeEnum.COMPONENT.getCode().toString(),"1"); if(!b) + ExceptionCast.cast(CommonCode.FAIL); + b = productMixService.removeById(id); + if (!b) ExceptionCast.cast(CommonCode.FAIL); return super.removeById(id); } @@ -340,7 +350,7 @@ if(componentInfo == null || userList == null || userList.isEmpty()) ExceptionCast.cast(CommonCode.INVALID_PARAM); List<ComponentPermission> permissionList = new ArrayList<>(); - List<PermissionStream> permissionStreamList = new ArrayList<>(); + List<PermissionStreamNew> permissionStreamList = new ArrayList<>(); userList.forEach(item -> { ComponentPermission en = componentPermissionService.getByComponentIdAndUserId(componentInfo.getComponentId(), item.getId()); if(en == null) { @@ -349,12 +359,12 @@ en.setComponentId(componentInfo.getComponentId()); permissionList.add(en); } - PermissionStream stream = permissionStreamService.getByComponentIdAndUserId(componentInfo.getProductId(), componentInfo.getComponentId(), item.getId()); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(componentInfo.getComponentId(), item.getId(), "2 "); if(stream == null) { - stream = new PermissionStream(); + stream = new PermissionStreamNew(); stream.setUserId(item.getId()); - stream.setProductId(componentInfo.getProductId()); - stream.setComponentId(componentInfo.getComponentId()); + stream.setBusinessId(componentInfo.getComponentId()); + stream.setBusinessType(DocAttributionTypeEnum.COMPONENT.getCode().toString()); permissionStreamList.add(stream); } }); @@ -365,7 +375,7 @@ } } if(!permissionStreamList.isEmpty()) { - boolean b = permissionStreamService.saveBatch(permissionStreamList); + boolean b = permissionStreamNewService.saveBatch(permissionStreamList); if(!b) { ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); } @@ -379,13 +389,13 @@ if(componentInfo == null || userList == null || userList.isEmpty()) ExceptionCast.cast(CommonCode.INVALID_PARAM); List<ComponentPermission> permissionList = new ArrayList<>(); - List<PermissionStream> permissionStreamList = new ArrayList<>(); + List<PermissionStreamNew> permissionStreamList = new ArrayList<>(); userList.forEach(item -> { ComponentPermission en = componentPermissionService.getByComponentIdAndUserId(componentInfo.getComponentId(), item.getId()); if(en != null) { permissionList.add(en); } - PermissionStream stream = permissionStreamService.getByComponentIdAndUserId(componentInfo.getProductId(), componentInfo.getComponentId(), item.getId()); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(componentInfo.getComponentId(), item.getId(), "2 "); if(stream != null) { permissionStreamList.add(stream); } @@ -401,7 +411,7 @@ } } if(!permissionStreamList.isEmpty()) { - boolean b = permissionStreamService.removeByCollection(permissionStreamList); + boolean b = permissionStreamNewService.deletePermissionStreamNewByList(permissionStreamList); if(!b) { ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); } @@ -411,25 +421,25 @@ @Override @Transactional(rollbackFor = {Exception.class}) - public boolean assignAddDepart(ComponentInfo componentInfo, Collection<Department> departmentList) { + public boolean assignAddDepart(ComponentInfo componentInfo, Collection<MdcProduction> departmentList) { if(componentInfo == null || departmentList == null || departmentList.isEmpty()) ExceptionCast.cast(CommonCode.INVALID_PARAM); List<ComponentDepartment> componentDepartments = new ArrayList<>(); - List<PermissionStream> permissionStreamList = new ArrayList<>(); + List<PermissionStreamNew> permissionStreamList = new ArrayList<>(); departmentList.forEach(item -> { - ComponentDepartment en = componentDepartmentService.getByComponentIdAndDepartId(componentInfo.getComponentId(), item.getDepartId()); + ComponentDepartment en = componentDepartmentService.getByComponentIdAndDepartId(componentInfo.getComponentId(), item.getId()); if(en == null) { en = new ComponentDepartment(); - en.setDepartId(item.getDepartId()); + en.setDepartId(item.getId()); en.setComponentId(componentInfo.getComponentId()); componentDepartments.add(en); } - PermissionStream stream = permissionStreamService.getByComponentIdAndDepartId(componentInfo.getProductId(), componentInfo.getComponentId(), item.getDepartId()); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(componentInfo.getComponentId(), item.getId(),DocAttributionTypeEnum.COMPONENT.getCode().toString()); if(stream == null) { - stream = new PermissionStream(); - stream.setDepartId(item.getDepartId()); - stream.setProductId(componentInfo.getProductId()); - stream.setComponentId(componentInfo.getComponentId()); + stream = new PermissionStreamNew(); + stream.setDepartId(item.getId()); + stream.setBusinessId(componentInfo.getComponentId()); + stream.setBusinessType(DocAttributionTypeEnum.COMPONENT.getCode().toString()); permissionStreamList.add(stream); } }); @@ -440,7 +450,7 @@ } } if(!permissionStreamList.isEmpty()) { - boolean b = permissionStreamService.saveBatch(permissionStreamList); + boolean b = permissionStreamNewService.saveBatch(permissionStreamList); if(!b) { ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); } @@ -450,17 +460,17 @@ @Override @Transactional(rollbackFor = {Exception.class}) - public boolean assignRemoveDepart(ComponentInfo componentInfo, Collection<Department> departmentList) { + public boolean assignRemoveDepart(ComponentInfo componentInfo, Collection<MdcProduction> departmentList) { if(componentInfo == null || departmentList == null || departmentList.isEmpty()) ExceptionCast.cast(CommonCode.INVALID_PARAM); List<ComponentDepartment> componentDepartments = new ArrayList<>(); - List<PermissionStream> permissionStreamList = new ArrayList<>(); + List<PermissionStreamNew> permissionStreamList = new ArrayList<>(); departmentList.forEach(item -> { - ComponentDepartment en = componentDepartmentService.getByComponentIdAndDepartId(componentInfo.getComponentId(), item.getDepartId()); + ComponentDepartment en = componentDepartmentService.getByComponentIdAndDepartId(componentInfo.getComponentId(), item.getId()); if(en != null) { componentDepartments.add(en); } - PermissionStream stream = permissionStreamService.getByComponentIdAndDepartId(componentInfo.getProductId(), componentInfo.getComponentId(), item.getDepartId()); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(componentInfo.getComponentId(), item.getId(),DocAttributionTypeEnum.COMPONENT.getCode().toString()); if(stream != null) { permissionStreamList.add(stream); } @@ -472,7 +482,7 @@ } } if(!permissionStreamList.isEmpty()) { - boolean b = permissionStreamService.removeByCollection(permissionStreamList); + boolean b = permissionStreamNewService.deletePermissionStreamNewByList(permissionStreamList); if(!b) { ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); } @@ -546,4 +556,168 @@ queryWrapper.orderByAsc(ComponentInfo::getCreateTime); return super.list(queryWrapper); } + + /** + * 閫氳繃闆朵欢鍙枫�佹潗璐ㄧ瓑鏌ヨ瀵瑰簲鐢靛瓙鏍锋澘 + * @param treeInfoRequest + * @return + */ + @Override + public List<DocInfo> getByComponentInfo(TreeInfoRequest treeInfoRequest){ + LambdaQueryWrapper<ComponentInfo> queryWrapper = new LambdaQueryWrapper<>(); + if (treeInfoRequest.getProductIds() != null && !treeInfoRequest.getProductIds().isEmpty()) { + queryWrapper.in(ComponentInfo::getProductId, treeInfoRequest.getProductIds()); + } + if (treeInfoRequest.getAttributionType()==2){ + queryWrapper.eq(StrUtil.isNotEmpty(treeInfoRequest.getAttributionId()),ComponentInfo::getComponentId,treeInfoRequest.getAttributionId()); + } + + queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeCode()),ComponentInfo::getComponentCode, treeInfoRequest.getTreeCode()); + queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeName()),ComponentInfo::getComponentName, treeInfoRequest.getTreeName()); + queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getStructureType()),ComponentInfo::getStructureType, treeInfoRequest.getStructureType()); + queryWrapper.orderByDesc(ComponentInfo::getCreateTime); + List<ComponentInfo> list = super.list(queryWrapper); + List<DocInfo> docInfos = new ArrayList<>(); + if (list != null && !list.isEmpty()) { + String ids=list.stream().map(ComponentInfo::getComponentId).collect(Collectors.joining(",")); + DocInfoQueryRequest docQuery = new DocInfoQueryRequest(); + BeanUtil.copyProperties(treeInfoRequest,docQuery); + docQuery.setAttributionIds(ids); + docQuery.setDocClassCode("OTHER"); + docQuery.setAttributionType(2); + docInfos=docInfoService.findListByDocQuery(docQuery); + } + if (treeInfoRequest.getAttributionType()==2){ + List<String> id =new ArrayList<>(); + id.add(treeInfoRequest.getAttributionId()); + treeInfoRequest.setComponentIds(id); + //闆朵欢 + List<DocInfo> partsInfos = partsInfoService.getByPartsInfo(treeInfoRequest); + docInfos.addAll(partsInfos); + //宸ヨ壓瑙勭▼鐗堟湰 + List<DocInfo> processSpecVersions = processSpecVersionService.getByProcessSpecVersion(treeInfoRequest); + docInfos.addAll(processSpecVersions); + //宸ュ簭 + List<DocInfo> processStreams = processStreamService.getByProcessStreamOtherFile(treeInfoRequest); + docInfos.addAll(processStreams); + //宸ユ + List<DocInfo> workSteps = workStepService.getByWorkStepOtherFile(treeInfoRequest); + docInfos.addAll(workSteps); + } + return docInfos; + } + + /** + * 鏌ヨ鍙互琚紩鐢ㄧ殑閮ㄤ欢 + * @param componentInfo + * @param pageNo + * @param pageSize + * @return + */ + @Override + public IPage<ComponentInfo> getByComponentId(ComponentInfo componentInfo, Integer pageNo, Integer pageSize){ + //鏉冮檺鎺掗櫎,涓嶈兘寮曠敤鑷繁涓婁笅绾ч儴浠� + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String productIds = loginUser.getProductionIds(); + ComponentInfo oldComponentInfo = super.getById(componentInfo.getComponentId()); + IPage<ComponentInfo> page = new Page<>(pageNo, pageSize); + if (productIds != null && !productIds.isEmpty()) { + List<String> productIdList = Arrays.asList(productIds.split(",")); + List<ProductMix> productMixList = permissionStreamNewService. + loadProductMixByBusinessIdAndBusinessType(loginUser.getId(),productIdList,componentInfo.getComponentId(),DocAttributionTypeEnum.COMPONENT.getCode().toString()); + List<Long> ids = productMixList.stream().map(ProductMix::getId).collect(Collectors.toList()); + //鑾峰彇宸茬粡鑷韩琚�熺敤鐨勯儴浠� + LambdaQueryWrapper<ComponentInfo> borrowQueryWrapper = new LambdaQueryWrapper<>(); + if (!ids.isEmpty()){ + borrowQueryWrapper.in(ComponentInfo::getBorrowId,ids); + } + borrowQueryWrapper.eq(ComponentInfo::getParentId,componentInfo.getComponentId()); + List<String> borrowIds= super.list(borrowQueryWrapper).stream().map(ComponentInfo::getBorrowId).collect(Collectors.toList()); + LambdaQueryWrapper<ComponentInfo> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(StrUtil.isNotEmpty(componentInfo.getComponentName()),ComponentInfo::getComponentName, componentInfo.getComponentName()); + queryWrapper.like(StrUtil.isNotEmpty(componentInfo.getComponentCode()),ComponentInfo::getComponentCode, componentInfo.getComponentCode()); + queryWrapper.isNull(ComponentInfo::getBorrowId); + if (!ids.isEmpty()){ + queryWrapper.in(ComponentInfo::getComponentId,ids); + } + queryWrapper.ne(StrUtil.isNotEmpty(oldComponentInfo.getBorrowId()),ComponentInfo::getComponentId,oldComponentInfo.getBorrowId()); + if (!borrowIds.isEmpty()) { + queryWrapper.notIn(ComponentInfo::getComponentId,borrowIds); + } + queryWrapper.orderByDesc(ComponentInfo::getCreateTime); + page = super.page(page, queryWrapper); + } + return page; + } + + /** + * 鍊熺敤閮ㄤ欢(鍙壒閲�) - 鍘熸湁閮ㄤ欢id锛屾柊閮ㄤ欢ids + * @param oldId,newIds + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Result<?> borrowComponent(String oldId, String newIds){ + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + ComponentInfo componentInfo = super.getById(oldId); + if(componentInfo == null) { + return Result.error("閮ㄤ欢涓嶅瓨鍦�"); + } + List<String> productIdList = Arrays.asList(loginUser.getProductionIds().split(",")); + //鑾峰彇鍙互鍊熺敤鐨勯儴浠� + List<ProductMix> productMixList = permissionStreamNewService. + loadProductMixByBusinessIdAndBusinessType(loginUser.getId(),productIdList,componentInfo.getComponentId(),DocAttributionTypeEnum.COMPONENT.getCode().toString()); + Set<Long> allowedIds = productMixList.stream() + .map(ProductMix::getId) + .collect(Collectors.toCollection(HashSet::new)); + List<String> newIdList = Arrays.asList(newIds.split(",")); + boolean allAllowed = newIdList.parallelStream() + .map(Long::parseLong) + .allMatch(allowedIds::contains); + if (!allAllowed) { + return Result.error("瀛樺湪鏈巿鏉冪殑閮ㄤ欢鍊熺敤"); + } + //鑾峰彇宸茬粡琚�熺敤鐨勯儴浠� + LambdaQueryWrapper<ComponentInfo> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(ComponentInfo::getBorrowId,newIdList); + queryWrapper.eq(ComponentInfo::getParentId,componentInfo.getComponentId()); + List<ComponentInfo> list = super.list(queryWrapper); + //鍒ゆ柇鏄惁宸茬粡琚綋鍓嶉儴浠跺�熺敤 + if(!list.isEmpty()) { + return Result.error("閫夋嫨鐨勯儴浠跺凡琚綋鍓嶉儴浠跺�熺敤"); + } + List<ComponentInfo> componentInfoList=listByIds(newIdList); + componentInfoList.forEach(item->{ + //娣诲姞閮ㄤ欢淇℃伅銆佸眰绾т俊鎭�佹潈闄愪俊鎭� + ComponentInfo newComponentInfo=new ComponentInfo(); + BeanUtil.copyProperties(item,newComponentInfo); + newComponentInfo.setComponentId(null); + newComponentInfo.setProductId(componentInfo.getProductId()); + newComponentInfo.setParentId(componentInfo.getComponentId()); + newComponentInfo.setBorrowId(item.getComponentId()); + newComponentInfo.setCreateTime(null); + newComponentInfo.setCreateBy(null); + newComponentInfo.setUpdateTime(null); + newComponentInfo.setUpdateBy(null); + addComponentInfo(newComponentInfo); + }); + return Result.ok("閮ㄤ欢鍊熺敤鎴愬姛"); + } + + @Override + public boolean assignPermission(Object entity, Collection<SysUser> userList, boolean isAdd){ + if (isAdd) { + return assignAddUser((ComponentInfo) entity, userList); + } else { + return assignRemoveUser((ComponentInfo) entity, userList); + } + } + @Override + public boolean assignDepartPermission(Object entity, Collection<MdcProduction> departments, boolean isAdd) { + if (isAdd) { + return assignAddDepart((ComponentInfo) entity, departments); + } else { + return assignRemoveDepart((ComponentInfo) entity, departments); + } + } } -- Gitblit v1.9.3