From c06fab29ca7826a6dc9736c1ba8ce1e26a11c829 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期四, 06 三月 2025 15:57:08 +0800 Subject: [PATCH] 新增层级结构工艺规程版本、结构树表、新权限表 修改原有权限验证 删除原有代码 --- lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java | 706 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 450 insertions(+), 256 deletions(-) diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java index 0e8b19d..ee0c849 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java @@ -1,15 +1,15 @@ package org.jeecg.modules.dnc.service.impl; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import liquibase.pro.packaged.S; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.dnc.dto.ComponentExt; import org.jeecg.modules.dnc.exception.ExceptionCast; +import org.jeecg.modules.dnc.mapper.ProcessSpecVersionPermissionMapper; import org.jeecg.modules.dnc.mapper.ProductInfoMapper; import org.jeecg.modules.dnc.response.*; import org.jeecg.modules.dnc.service.*; @@ -26,6 +26,8 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import redis.clients.jedis.Jedis; + import java.util.*; import java.util.stream.Collectors; @@ -39,11 +41,13 @@ @Lazy private IPartsInfoService partsInfoService; @Autowired + private IProcessSpecVersionService processSpecVersionService; + @Autowired private IProductPermissionService productPermissionService; @Autowired private IProductDepartmentService productDepartmentService; @Autowired - private IPermissionStreamService permissionStreamService; + private IPermissionStreamNewService permissionStreamNewService; @Autowired private IComponentDepartmentService componentDepartmentService; @Autowired @@ -52,6 +56,10 @@ private IPartsDepartmentService partsDepartmentService; @Autowired private IPartsPermissionService partsPermissionService; + @Autowired + private IProcessSpecVersionPermissionService processSpecVersionPermissionService; + @Autowired + private IProcessSpecVersionDepartmentService processSpecVersionDepartmentService; @Autowired private ISysUserService userService; @Autowired @@ -98,10 +106,11 @@ if (!b) { ExceptionCast.cast(ProductInfoCode.PRODUCT_SAVE_ERROR); } - PermissionStream stream = new PermissionStream(); - stream.setProductId(productInfo.getProductId()); + PermissionStreamNew stream = new PermissionStreamNew(); + stream.setBusinessId(productInfo.getProductId()); stream.setUserId(userId); - return permissionStreamService.save(stream); + stream.setBusinessType("1"); + return permissionStreamNewService.save(stream); } @Override @@ -131,12 +140,13 @@ return false; } } - PermissionStream stream = permissionStreamService.getByProductIdAndUserId(id, userId); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(id, userId, "1"); if (stream == null) { - stream = new PermissionStream(); - stream.setProductId(id); + stream = new PermissionStreamNew(); + stream.setBusinessId(productInfo.getProductId()); stream.setUserId(userId); - return permissionStreamService.save(stream); + stream.setBusinessType("1"); + return permissionStreamNewService.save(stream); } return b; } @@ -155,6 +165,10 @@ List<PartsInfo> partsInfos = partsInfoService.getByUserPerms(userId); if (partsInfos == null) partsInfos = Collections.emptyList(); + //宸ヨ壓瑙勭▼鐗堟湰 + List<ProcessSpecVersion> processSpecVersions = processSpecVersionService.getByUserPerms(userId); + if (processSpecVersions == null) + processSpecVersions = Collections.emptyList(); //宸ュ簭 List<ProcessStream> processStreams = processStreamService.getByuserPerms(userId); if (processStreams == null) @@ -163,7 +177,7 @@ List<WorkStep> workStepList = workStepService.getByUserPerms(userId); if (workStepList == null) workStepList = Collections.emptyList(); - return ProductTreeWrapper.loadTree(productInfoList, componentInfoList, partsInfos, processStreams, workStepList); + return ProductTreeWrapper.loadTree(productInfoList, componentInfoList, partsInfos, processSpecVersions,processStreams, workStepList); } @Override @@ -219,10 +233,10 @@ b = productDepartmentService.deleteByProductId(id); if (!b) ExceptionCast.cast(CommonCode.FAIL); - b = permissionStreamService.deleteUserPermsByProductId(id); + b = permissionStreamNewService.deletePermissionStreamNewByBusinessId(id, "1","0"); if (!b) ExceptionCast.cast(CommonCode.FAIL); - b = permissionStreamService.deleteDepartPermsByProductId(id); + b = permissionStreamNewService.deletePermissionStreamNewByBusinessId(id, "1","1"); if (!b) ExceptionCast.cast(CommonCode.FAIL); return super.removeById(id); @@ -240,33 +254,37 @@ ProductInfo productInfo = super.getById(paramId); if (productInfo == null) ExceptionCast.cast(ProductInfoCode.PRODUCT_NOT_EXIST); - PermissionStream permission = permissionStreamService.getByProductIdAndUserId(paramId, userId); + PermissionStreamNew permission = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(paramId, userId,"1"); return permission != null; } else if (nodeType == 2) { ComponentInfo componentInfo = componentInfoService.getById(paramId); if (componentInfo == null) ExceptionCast.cast(ComponentInfoCode.COMPONENT_NOT_EXIST); - PermissionStream permission = permissionStreamService.getByComponentIdAndUserId(componentInfo.getProductId(), paramId, userId); + PermissionStreamNew permission = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(componentInfo.getComponentId(), userId,"2"); return permission != null; } else if (nodeType == 3) { PartsInfo partsInfo = partsInfoService.getById(paramId); if (partsInfo == null) ExceptionCast.cast(PartsInfoCode.PARTS_NOT_EXIST); - PermissionStream permission = permissionStreamService.getByPartsIdAndUserId(partsInfo.getProductId(), partsInfo.getComponentId(), paramId, userId); + PermissionStreamNew permission = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(partsInfo.getPartsId(), userId, "3"); + return permission != null; + } else if (nodeType == 4) { + ProcessSpecVersion processSpecVersion = processSpecVersionService.getById(paramId); + if (processSpecVersion == null) + ExceptionCast.cast(PartsInfoCode.PROCESSSPECVERSION_NOT_EXIST); + PermissionStreamNew permission = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(processSpecVersion.getId(),userId,"4"); return permission != null; } else if (nodeType == 5) { ProcessStream processStream = processStreamService.getById(paramId); if (processStream == null) ExceptionCast.cast(ProcessInfoCode.PROCESS_NOT_EXIST); - PermissionStream permission = permissionStreamService.getByProcessIdAndUserId(processStream.getProductId(), processStream.getComponentId() - , processStream.getPartsId(), processStream.getProcessId(), userId); + PermissionStreamNew permission = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(processStream.getProcessId(), userId,"5"); return permission != null; } else if (nodeType == 6) { WorkStep workStep = workStepService.getById(paramId); if (workStep == null) ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST); - PermissionStream permission = permissionStreamService.getByStepIdAndUserId(workStep.getProductId(), workStep.getComponentId() - , workStep.getPartsId(), workStep.getProcessId(), workStep.getId(), userId); + PermissionStreamNew permission = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(workStep.getId(), userId,"6"); return permission != null; } return false; @@ -282,6 +300,8 @@ return componentPermissionService.getUserPermsByComponentId(paramId); } else if (nodeType == 3) { return partsPermissionService.getUserPermsByProductId(paramId); + } else if (nodeType == 4) { + return processSpecVersionPermissionService.getUserPermsByProductId(paramId); } else if (nodeType == 5) { return iProcessStreamPermissionService.getUserPermsByProductId(paramId); } else if (nodeType == 6) { @@ -301,6 +321,8 @@ return componentPermissionService.getUserNonPermsByComponentId(paramId); } else if (nodeType == 3) { return partsPermissionService.getUserNonPermsByProductId(paramId); + } else if (nodeType == 4) { + return processSpecVersionPermissionService.getUserNonPermsByProductId(paramId); } else if (nodeType == 5) { return iProcessStreamPermissionService.getUserNonPermsByProductId(paramId); } else if (nodeType == 6) { @@ -320,12 +342,13 @@ return componentDepartmentService.getDepartPermsByComponentId(paramId); } else if (nodeType == 3) { return partsDepartmentService.getDepartPermsByPartsId(paramId); - } else if (nodeType == 5) { + } else if (nodeType == 4) { + return processSpecVersionDepartmentService.getDepartPermsByPsvId(paramId); + }else if (nodeType == 5) { return processionDepartmentService.getDepartPermsByProcessId(paramId); } else if (nodeType == 6) { return workStepDepartmentService.getDepartPermsByStepId(paramId); } - //todo 灏佽鏍戠姸缁撴瀯 else { return null; } @@ -341,6 +364,8 @@ return componentDepartmentService.getDepartNonPermsByComponentId(paramId); } else if (nodeType == 3) { return partsDepartmentService.getDepartNonPermsByProductId(paramId); + } else if (nodeType == 4) { + return processionDepartmentService.getDepartNonPermsByProcessId(paramId); } else if (nodeType == 5) { return processionDepartmentService.getDepartNonPermsByProcessId(paramId); } else if (nodeType == 6) { @@ -367,16 +392,19 @@ Collection<SysUser> userList = userService.listByIds(ids); validateSysUserList(userList, ids); switch (nodeType) { - case 6: - return handleWorkStep(paramId, null,userList); - case 5: - return handleProcessStream(paramId, relativeFlag, null,userList); - case 3: - return handlePartsInfo(paramId, relativeFlag, null,userList); case 1: return handleProductInfo(paramId, relativeFlag, null,userList); case 2: return handleComponentInfo(paramId, relativeFlag, null,userList); + case 3: + return handlePartsInfo(paramId, relativeFlag, null,userList); + case 4: + return handleProcessSpecVersion(paramId, relativeFlag, null,userList); + case 5: + return handleProcessStream(paramId, relativeFlag, null,userList); + case 6: + return handleWorkStep(paramId, null,userList); + default: return false; } @@ -395,19 +423,23 @@ validateInputParameters(nodeType, paramId, relativeFlag, "2", departmentIds); List<String> ids = new ArrayList<>(departmentIds.length); Collections.addAll(ids, departmentIds); - Collection<MdcProduction> mdcProductionList = mdcProductionService.listByIds(ids); - validateMdcProductionList(mdcProductionList, ids); + List<String> deps=mdcProductionService.findAllProductionIds(ids); + Collection<MdcProduction> mdcProductionList = mdcProductionService.listByIds(deps); + validateMdcProductionList(mdcProductionList, deps); switch (nodeType) { - case 6: - return handleWorkStep(paramId, mdcProductionList,null); - case 5: - return handleProcessStream(paramId, relativeFlag, mdcProductionList,null); - case 3: - return handlePartsInfo(paramId, relativeFlag, mdcProductionList,null); case 1: return handleProductInfo(paramId, relativeFlag, mdcProductionList,null); case 2: return handleComponentInfo(paramId, relativeFlag, mdcProductionList,null); + case 3: + return handlePartsInfo(paramId, relativeFlag, mdcProductionList,null); + case 4: + return handleProcessSpecVersion(paramId, relativeFlag, mdcProductionList,null); + case 5: + return handleProcessStream(paramId, relativeFlag, mdcProductionList,null); + case 6: + return handleWorkStep(paramId, mdcProductionList,null); + default: return false; } @@ -428,16 +460,18 @@ Collection<SysUser> userList = userService.listByIds(userIdsList); validateSysUserList(userList, userIdsList); switch (nodeType) { - case 6: - return handleWorkStepRemoval(paramId, userList,null); - case 5: - return handleProcessStreamRemoval(paramId, relativeFlag, userList,null); - case 3: - return handlePartsInfoRemoval(paramId, relativeFlag, userList,null); case 1: return handleProductInfoRemoval(paramId, relativeFlag, userList,null); case 2: return handleComponentInfoRemoval(paramId, relativeFlag, userList,null); + case 3: + return handlePartsInfoRemoval(paramId, relativeFlag, userList,null); + case 4: + return handleProcessSpecVersionRemoval(paramId, relativeFlag, userList,null); + case 5: + return handleProcessStreamRemoval(paramId, relativeFlag, userList,null); + case 6: + return handleWorkStepRemoval(paramId, userList,null); default: return false; } @@ -456,20 +490,24 @@ @Transactional(rollbackFor = {Exception.class}) public boolean assignRemoveDepartmentAll(Integer nodeType, String paramId, Integer relativeFlag, String[] departmentIds) { validateInputParameters(nodeType, paramId, relativeFlag, "2", departmentIds); - List<String> departmentIdList = Arrays.asList(departmentIds); - Collection<MdcProduction> mdcProductionList = mdcProductionService.listByIds(departmentIdList); - validateMdcProductionList(mdcProductionList, departmentIdList); + List<String> ids = new ArrayList<>(departmentIds.length); + Collections.addAll(ids, departmentIds); + List<String> deps=mdcProductionService.findAllProductionIds(ids); + Collection<MdcProduction> mdcProductionList = mdcProductionService.listByIds(deps); + validateMdcProductionList(mdcProductionList, deps); switch (nodeType) { - case 6: - return handleWorkStepRemoval(paramId,null,mdcProductionList); - case 5: - return handleProcessStreamRemoval(paramId, relativeFlag, null,mdcProductionList); - case 3: - return handlePartsInfoRemoval(paramId, relativeFlag,null, mdcProductionList); case 1: return handleProductInfoRemoval(paramId, relativeFlag,null, mdcProductionList); case 2: return handleComponentInfoRemoval(paramId, relativeFlag, null,mdcProductionList); + case 3: + return handlePartsInfoRemoval(paramId, relativeFlag,null, mdcProductionList); + case 4: + return handleProcessSpecVersionRemoval(paramId, relativeFlag, null,mdcProductionList); + case 5: + return handleProcessStreamRemoval(paramId, relativeFlag, null,mdcProductionList); + case 6: + return handleWorkStepRemoval(paramId,null,mdcProductionList); default: return false; } @@ -481,7 +519,7 @@ if (productInfo == null || userList == null || userList.isEmpty()) ExceptionCast.cast(CommonCode.INVALID_PARAM); List<ProductPermission> permissionList = new ArrayList<>(); - List<PermissionStream> permissionStreamList = new ArrayList<>(); + List<PermissionStreamNew> permissionStreamList = new ArrayList<>(); userList.forEach(item -> { ProductPermission en = productPermissionService.getByProductIdAndUserId(productInfo.getProductId(), item.getId()); if (en == null) { @@ -490,11 +528,12 @@ en.setProductId(productInfo.getProductId()); permissionList.add(en); } - PermissionStream stream = permissionStreamService.getByProductIdAndUserId(productInfo.getProductId(), item.getId()); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(productInfo.getProductId(), item.getId(),"1"); if (stream == null) { - stream = new PermissionStream(); + stream = new PermissionStreamNew(); stream.setUserId(item.getId()); - stream.setProductId(productInfo.getProductId()); + stream.setBusinessId(productInfo.getProductId()); + stream.setBusinessType("1"); permissionStreamList.add(stream); } }); @@ -505,7 +544,7 @@ } } if (!permissionStreamList.isEmpty()) { - boolean b = permissionStreamService.saveBatch(permissionStreamList); + boolean b =permissionStreamNewService.saveBatch(permissionStreamList); if (!b) { ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); } @@ -519,13 +558,13 @@ if (productInfo == null || userList == null || userList.isEmpty()) ExceptionCast.cast(CommonCode.INVALID_PARAM); List<ProductPermission> permissionList = new ArrayList<>(); - List<PermissionStream> permissionStreamList = new ArrayList<>(); + List<PermissionStreamNew> permissionStreamList = new ArrayList<>(); userList.forEach(item -> { ProductPermission en = productPermissionService.getByProductIdAndUserId(productInfo.getProductId(), item.getId()); if (en != null) { permissionList.add(en); } - PermissionStream stream = permissionStreamService.getByProductIdAndUserId(productInfo.getProductId(), item.getId()); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(productInfo.getProductId(), item.getId(),"1"); if (stream != null) { permissionStreamList.add(stream); } @@ -541,7 +580,7 @@ } } if (!permissionStreamList.isEmpty()) { - boolean b = permissionStreamService.removeByCollection(permissionStreamList); + boolean b = permissionStreamNewService.deletePermissionStreamNewByList(permissionStreamList); if (!b) { ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); } @@ -555,7 +594,7 @@ if (productInfo == null || departmentList == null || departmentList.isEmpty()) ExceptionCast.cast(CommonCode.INVALID_PARAM); List<ProductDepartment> productDepartmentList = new ArrayList<>(); - List<PermissionStream> permissionStreamList = new ArrayList<>(); + List<PermissionStreamNew> permissionStreamList = new ArrayList<>(); departmentList.forEach(item -> { ProductDepartment en = productDepartmentService.getByProductIdAndDepartId(productInfo.getProductId(), item.getId()); if (en == null) { @@ -564,11 +603,12 @@ en.setProductId(productInfo.getProductId()); productDepartmentList.add(en); } - PermissionStream stream = permissionStreamService.getByProductIdAndDepartId(productInfo.getProductId(), item.getId()); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(productInfo.getProductId(), item.getId(),"1"); if (stream == null) { - stream = new PermissionStream(); + stream = new PermissionStreamNew(); stream.setDepartId(item.getId()); - stream.setProductId(productInfo.getProductId()); + stream.setBusinessId(productInfo.getProductId()); + stream.setBusinessType("1"); permissionStreamList.add(stream); } }); @@ -579,7 +619,7 @@ } } if (!permissionStreamList.isEmpty()) { - boolean b = permissionStreamService.saveBatch(permissionStreamList); + boolean b = permissionStreamNewService.saveBatch(permissionStreamList); if (!b) { ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); } @@ -593,13 +633,13 @@ if (productInfo == null || departmentList == null || departmentList.isEmpty()) ExceptionCast.cast(CommonCode.INVALID_PARAM); List<ProductDepartment> productDepartmentList = new ArrayList<>(); - List<PermissionStream> permissionStreamList = new ArrayList<>(); + List<PermissionStreamNew> permissionStreamList = new ArrayList<>(); departmentList.forEach(item -> { ProductDepartment en = productDepartmentService.getByProductIdAndDepartId(productInfo.getProductId(), item.getId()); if (en != null) { productDepartmentList.add(en); } - PermissionStream stream = permissionStreamService.getByProductIdAndDepartId(productInfo.getProductId(), item.getId()); + PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(productInfo.getProductId(), item.getId(),"1"); if (stream != null) { permissionStreamList.add(stream); } @@ -611,7 +651,7 @@ } } if (!permissionStreamList.isEmpty()) { - boolean b = permissionStreamService.removeByCollection(permissionStreamList); + boolean b = permissionStreamNewService.deletePermissionStreamNewByList(permissionStreamList); if (!b) { ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); } @@ -627,11 +667,7 @@ ProcessStream processStream = processStreamService.getById(paramId); if (processStream == null) return null; - List<PermissionStream> permissionStreamList = permissionStreamService.list(new QueryWrapper<PermissionStream>() - .eq(StrUtil.isNotEmpty(processStream.getProductId()), "product_id", processStream.getProductId()) - .eq(StrUtil.isNotEmpty(processStream.getComponentId()), "component_id", processStream.getComponentId()) - .eq(StrUtil.isNotEmpty(processStream.getPartsId()), "parts_id", processStream.getPartsId()) - .eq(StrUtil.isNotEmpty(processStream.getProcessId()), "process_id", processStream.getProcessId())); + List<PermissionStreamNew> permissionStreamList = permissionStreamNewService.loadProductMixByBusinessId(processStream.getProcessId(),"5"); if (permissionStreamList == null || permissionStreamList.isEmpty()) return null; permissionStreamList.forEach(item -> { @@ -642,12 +678,7 @@ WorkStep workStep = workStepService.getById(paramId); if (workStep == null) return null; - List<PermissionStream> permissionStreamList = permissionStreamService.list(new QueryWrapper<PermissionStream>() - .eq(StrUtil.isNotEmpty(workStep.getProductId()), "product_id", workStep.getProductId()) - .eq(StrUtil.isNotEmpty(workStep.getComponentId()), "component_id", workStep.getComponentId()) - .eq(StrUtil.isNotEmpty(workStep.getPartsId()), "parts_id", workStep.getPartsId()) - .eq(StrUtil.isNotEmpty(workStep.getProcessId()), "process_id", workStep.getProcessId()) - .eq(StrUtil.isNotEmpty(workStep.getId()), "step_id", workStep.getId())); + List<PermissionStreamNew> permissionStreamList = permissionStreamNewService.loadProductMixByBusinessId(workStep.getId(),"6"); if (permissionStreamList == null || permissionStreamList.isEmpty()) return null; permissionStreamList.forEach(item -> { @@ -752,6 +783,7 @@ List<ProductInfo> productInfos = this.getByUserPerms(userId, queryParam); List<ComponentInfo> componentInfos = componentInfoService.getByUserPerms(userId, queryParam); List<PartsInfo> partsInfos = partsInfoService.getByUserPerms(userId, null, queryParam); + List<ProcessSpecVersion> processSpecVersions = processSpecVersionService.getByUserPerms(userId, queryParam); List<ProcessStream> processStreams = processStreamService.getByuserPerms(userId, queryParam); List<WorkStep> workSteps = workStepService.getByUserPerms(userId, queryParam); List<ComponentInfo> componentInfoList = new ArrayList<>(); @@ -879,7 +911,7 @@ //杞崲鏁版嵁 List<ComponentExt> componentExtList = ComponentExt.convertToExtList(componentInfoList); - return ProductTreeWrapper.loadTree(productInfoList, componentExtList, partsInfos, processStreams, workSteps); + return ProductTreeWrapper.loadTree(productInfoList, componentExtList, partsInfos,processSpecVersions, processStreams, workSteps); } @Override @@ -894,6 +926,9 @@ //闆朵欢 case 3: return partsInfoService.deletePartsInfo(id); + //宸ヨ壓瑙勭▼鐗堟湰 + case 4: + return processSpecVersionService.deleteProcessSpecVersion(id); //宸ュ簭 case 5: return processStreamService.deleteProcessStream(id); @@ -940,13 +975,13 @@ } } - private void handleRelativePermissions(String productId, List<String> componentIds, String processId, String partsId, Collection<SysUser> userList) { + private void handleRelativePermissions(String productId, List<String> componentIds, String processId, String partsId,String psvId ,Collection<SysUser> userList) { List<ComponentPermission> componentPermissionList = new ArrayList<>(); List<PartsPermission> partsPermissionList = new ArrayList<>(); + List<ProcessSpecVersionPermission> processSpecVersionPermissionList = new ArrayList<>(); List<ProcessionPermission> processionPermissionList = new ArrayList<>(); List<WorkStepPermission> workStepPermissionList = new ArrayList<>(); - List<PermissionStream> permissionStreamList = new ArrayList<>(); - + List<PermissionStreamNew> permissionStreamList = new ArrayList<>(); // 澶勭悊閮ㄤ欢鏉冮檺 if (componentIds != null && !componentIds.isEmpty()) { handleComponentPermissions(componentIds, userList, componentPermissionList, permissionStreamList); @@ -956,9 +991,28 @@ .map(PartsInfo::getPartsId) .collect(Collectors.toList()); handlePartsPermissions(partsIds, userList, partsPermissionList, permissionStreamList); + List<String> psvIds = processSpecVersionService.getByPartsIds(partsIds).stream().map(ProcessSpecVersion::getId).collect(Collectors.toList()); + handlePsvPermissions(psvIds, userList, processSpecVersionPermissionList, permissionStreamList); List<ProcessStream> processStreamList = processStreamService.getByComponentIdList(productId, componentIds, partsIds); processStreamApi(productId, userList, processionPermissionList, workStepPermissionList, permissionStreamList, processStreamList); } + } + + // 澶勭悊闆朵欢鏉冮檺 + if (partsId != null) { + List<ProcessSpecVersion> processStreamList = processSpecVersionService.list(new QueryWrapper<ProcessSpecVersion>().eq("id", psvId)); + if (processStreamList != null && !processStreamList.isEmpty()) { + List<String> psvIds = processStreamList.stream() + .map(ProcessSpecVersion::getId) + .collect(Collectors.toList()); + handlePsvPermissions(psvIds,userList,processSpecVersionPermissionList,permissionStreamList); + } + } + + // 澶勭悊宸ヨ壓瑙勭▼鐗堟湰鏉冮檺 + if (psvId!= null) { + List<ProcessStream> processStreamList = processStreamService.list(new QueryWrapper<ProcessStream>().eq("psv_id", psvId)); + processStreamApi(productId, userList, processionPermissionList, workStepPermissionList, permissionStreamList, processStreamList); } // 澶勭悊宸ュ簭鏉冮檺 @@ -972,17 +1026,14 @@ } } - // 澶勭悊闆朵欢鏉冮檺 - if (partsId != null) { - List<ProcessStream> processStreamList = processStreamService.list(new QueryWrapper<ProcessStream>().eq("parts_id", partsId)); - processStreamApi(productId, userList, processionPermissionList, workStepPermissionList, permissionStreamList, processStreamList); - } - if (!componentPermissionList.isEmpty()) { componentPermissionService.saveBatch(componentPermissionList); } if (!partsPermissionList.isEmpty()) { partsPermissionService.saveBatch(partsPermissionList); + } + if (!processSpecVersionPermissionList.isEmpty()) { + processSpecVersionPermissionService.saveBatch(processSpecVersionPermissionList); } if (!processionPermissionList.isEmpty()) { iProcessStreamPermissionService.saveBatch(processionPermissionList); @@ -991,11 +1042,12 @@ iWorkStepPermissionService.saveBatch(workStepPermissionList); } if (!permissionStreamList.isEmpty()) { - permissionStreamService.saveBatch(permissionStreamList); + permissionStreamNewService.saveBatch(permissionStreamList); } } - private void processStreamApi(String productId, Collection<SysUser> userList, List<ProcessionPermission> processionPermissionList, List<WorkStepPermission> workStepPermissionList, List<PermissionStream> permissionStreamList, List<ProcessStream> processStreamList) { + private void processStreamApi(String productId, Collection<SysUser> userList, List<ProcessionPermission> processionPermissionList, + List<WorkStepPermission> workStepPermissionList, List<PermissionStreamNew> permissionStreamList, List<ProcessStream> processStreamList) { if (processStreamList != null && !processStreamList.isEmpty()) { List<String> processIds = processStreamList.stream() .map(ProcessStream::getProcessId) @@ -1012,7 +1064,7 @@ } private void handleComponentPermissions(List<String> componentIds, Collection<SysUser> userList, - List<ComponentPermission> componentPermissionList, List<PermissionStream> permissionStreamList) { + List<ComponentPermission> componentPermissionList, List<PermissionStreamNew> permissionStreamList) { Map<String, ComponentPermission> componentPermissionMap = new HashMap<>(); Map<String, ComponentInfo> componentInfoMap = new HashMap<>(); String key; @@ -1034,16 +1086,16 @@ ComponentPermission cp = entry.getValue(); componentPermissionList.add(cp); ComponentInfo cpInfo = componentInfoMap.get(cp.getComponentId()); - PermissionStream s = new PermissionStream(); - s.setProductId(cpInfo.getProductId()); - s.setComponentId(cpInfo.getComponentId()); + PermissionStreamNew s = new PermissionStreamNew(); + s.setBusinessId(cpInfo.getProductId()); + s.setBusinessType("1"); s.setUserId(cp.getUserId()); permissionStreamList.add(s); } } private void handlePartsPermissions(List<String> partsIds, Collection<SysUser> userList, - List<PartsPermission> partsPermissionList, List<PermissionStream> permissionStreamList) { + List<PartsPermission> partsPermissionList, List<PermissionStreamNew> permissionStreamList) { Map<String, PartsPermission> partsPermissionHashMap = new HashMap<>(); Map<String, PartsInfo> partsInfoMap = new HashMap<>(); String key; @@ -1065,17 +1117,47 @@ PartsPermission pp = entry.getValue(); partsPermissionList.add(pp); PartsInfo ptInfo = partsInfoMap.get(pp.getPartsId()); - PermissionStream s = new PermissionStream(); - s.setProductId(ptInfo.getProductId()); - s.setComponentId(ptInfo.getComponentId()); - s.setPartsId(ptInfo.getPartsId()); + PermissionStreamNew s = new PermissionStreamNew(); + s.setBusinessId(ptInfo.getPartsId()); + s.setBusinessType("3"); + s.setUserId(pp.getUserId()); + permissionStreamList.add(s); + } + } + + private void handlePsvPermissions(List<String> psvIds, Collection<SysUser> userList, + List<ProcessSpecVersionPermission> processSpecVersionPermissionList, List<PermissionStreamNew> permissionStreamList) { + Map<String, ProcessSpecVersionPermission> processSpecVersionPermissionMap = new HashMap<>(); + Map<String, ProcessSpecVersion> processStreamMap = new HashMap<>(); + String key; + for (ProcessSpecVersion p : processSpecVersionService.listByIds(psvIds)) { + processStreamMap.put(p.getId(), p); + for (SysUser u : userList) { + key = p.getId() + "," + u.getId(); + processSpecVersionPermissionMap.put(key, new ProcessSpecVersionPermission(p.getId(), u.getId())); + } + } + List<ProcessSpecVersionPermission> processSpecVersionPermissions = processSpecVersionPermissionService.getByPsvIdsAndUserIds(psvIds, userList.stream().map(SysUser::getId).collect(Collectors.toList())); + if (processSpecVersionPermissions != null && !processSpecVersionPermissions.isEmpty()) { + for (ProcessSpecVersionPermission processionPermission : processSpecVersionPermissions) { + key = processionPermission.getPsvId() + "," + processionPermission.getUserId(); + processSpecVersionPermissionMap.remove(key); + } + } + for (Map.Entry<String, ProcessSpecVersionPermission> entry : processSpecVersionPermissionMap.entrySet()) { + ProcessSpecVersionPermission pp = entry.getValue(); + processSpecVersionPermissionList.add(pp); + ProcessSpecVersion processSpecVersion = processStreamMap.get(pp.getPsvId()); + PermissionStreamNew s = new PermissionStreamNew(); + s.setBusinessId(processSpecVersion.getId()); + s.setBusinessType("4"); s.setUserId(pp.getUserId()); permissionStreamList.add(s); } } private void handleProcessPermissions(List<String> processIds, Collection<SysUser> userList, - List<ProcessionPermission> processionPermissionList, List<PermissionStream> permissionStreamList) { + List<ProcessionPermission> processionPermissionList, List<PermissionStreamNew> permissionStreamList) { Map<String, ProcessionPermission> processionPermissionHashMap = new HashMap<>(); Map<String, ProcessStream> processStreamMap = new HashMap<>(); String key; @@ -1097,18 +1179,16 @@ ProcessionPermission pp = entry.getValue(); processionPermissionList.add(pp); ProcessStream processStream = processStreamMap.get(pp.getProcessId()); - PermissionStream s = new PermissionStream(); - s.setProductId(processStream.getProductId()); - s.setComponentId(processStream.getComponentId()); - s.setPartsId(processStream.getPartsId()); - s.setProcessId(processStream.getProcessId()); + PermissionStreamNew s = new PermissionStreamNew(); + s.setBusinessId(processStream.getProcessId()); + s.setBusinessType("5"); s.setUserId(pp.getUserId()); permissionStreamList.add(s); } } private void handleWorkStepPermissions(List<String> workStepIds, Collection<SysUser> userList, - List<WorkStepPermission> workStepPermissionList, List<PermissionStream> permissionStreamList) { + List<WorkStepPermission> workStepPermissionList, List<PermissionStreamNew> permissionStreamList) { Map<String, WorkStepPermission> workStepPermissionHashMap = new HashMap<>(); Map<String, WorkStep> workStepHashMap = new HashMap<>(); String key; @@ -1130,12 +1210,9 @@ WorkStepPermission ws = entry.getValue(); workStepPermissionList.add(ws); WorkStep workStep = workStepHashMap.get(ws.getStepId()); - PermissionStream s = new PermissionStream(); - s.setProductId(workStep.getProductId()); - s.setComponentId(workStep.getComponentId()); - s.setPartsId(workStep.getPartsId()); - s.setProcessId(workStep.getProcessId()); - s.setStepId(workStep.getId()); + PermissionStreamNew s = new PermissionStreamNew(); + s.setBusinessId(workStep.getId()); + s.setBusinessType("6"); s.setUserId(ws.getUserId()); permissionStreamList.add(s); } @@ -1177,7 +1254,7 @@ ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); } if (relativeFlag == 1) { - handleRelativePermissions(processStream.getProductId(), null, processStream.getProcessId(), null, userList); + handleRelativePermissions(processStream.getProductId(), null, processStream.getProcessId(), null,null, userList); } }else { result = processStreamService.assignAddDepart(processStream, mdcProductionList); @@ -1185,7 +1262,37 @@ ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); } if (relativeFlag == 1) { - handleRelatedPermissions(processStream, mdcProductionList, workStepService, workStepDepartmentService, permissionStreamService); + handleRelatedPermissions(processStream, mdcProductionList, workStepService, workStepDepartmentService, permissionStreamNewService); + } + } + return true; + } + + private boolean handleProcessSpecVersion(String paramId, Integer relativeFlag, Collection<MdcProduction> mdcProductionList,Collection<SysUser> userList) { + ProcessSpecVersion processSpecVersion = processSpecVersionService.getById(paramId); + if (processSpecVersion == null) { + ExceptionCast.cast(PartsInfoCode.PROCESSSPECVERSION_NOT_EXIST); + } + boolean hasPerm = checkProductPerm(4, processSpecVersion.getId()); + if (!hasPerm) { + ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); + } + boolean result; + if (userList!=null){ + result = processSpecVersionService.assignAddUser(processSpecVersion, userList); + if (!result) { + ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); + } + if (relativeFlag == 1) { + handleRelativePermissions(processSpecVersion.getProductId(), null, null,null, processSpecVersion.getId(), userList); + } + }else { + result = processSpecVersionService.assignAddDepart(processSpecVersion, mdcProductionList); + if (!result) { + ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); + } + if (relativeFlag == 1) { + handleRelatedPermissionsForProcessSpecVersion(processSpecVersion, mdcProductionList); } } return true; @@ -1207,7 +1314,7 @@ ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); } if (relativeFlag == 1) { - handleRelativePermissions(partsInfo.getProductId(), null, null, partsInfo.getPartsId(), userList); + handleRelativePermissions(partsInfo.getProductId(), null, null, partsInfo.getPartsId(),null, userList); } }else { result = partsInfoService.assignAddDepart(partsInfo, mdcProductionList); @@ -1242,7 +1349,7 @@ List<String> componentIds = componentInfoList.stream() .map(ComponentInfo::getComponentId) .collect(Collectors.toList()); - handleRelativePermissions(productInfo.getProductId(), componentIds, null, null, userList); + handleRelativePermissions(productInfo.getProductId(), componentIds, null, null, null,userList); } } }else { @@ -1281,7 +1388,7 @@ .collect(Collectors.toList()); } componentIds.add(componentInfo.getComponentId()); - handleRelativePermissions(componentInfo.getProductId(), componentIds, null, null, userList); + handleRelativePermissions(componentInfo.getProductId(), componentIds, null, null,null, userList); } }else { result = componentInfoService.assignAddDepart(componentInfo, mdcProductionList); @@ -1295,7 +1402,8 @@ return true; } - private void handleRelatedPermissions(Object parentEntity, Collection<MdcProduction> mdcProductionList, IWorkStepService workStepService, IWorkStepDepartmentService workStepDepartmentService, IPermissionStreamService permissionStreamService) { + private void handleRelatedPermissions(Object parentEntity, Collection<MdcProduction> mdcProductionList, IWorkStepService workStepService, + IWorkStepDepartmentService workStepDepartmentService, IPermissionStreamNewService permissionStreamNewService) { String parentId = getParentId(parentEntity); List<WorkStep> workStepList = workStepService.list(new QueryWrapper<WorkStep>().eq("process_id", parentId)); if (workStepList == null || workStepList.isEmpty()) { @@ -1323,48 +1431,54 @@ } List<WorkStepDepartment> newWorkStepDepartments = new ArrayList<>(); - List<PermissionStream> newPermissionStreams = new ArrayList<>(); + List<PermissionStreamNew> newPermissionStreams = new ArrayList<>(); for (Map.Entry<String, WorkStepDepartment> entry : allPermissions.entrySet()) { WorkStepDepartment wsDep = entry.getValue(); newWorkStepDepartments.add(wsDep); WorkStep workStep = workStepMap.get(wsDep.getStepId()); - PermissionStream permStream = new PermissionStream(); - permStream.setProductId(workStep.getProductId()); - permStream.setComponentId(workStep.getComponentId()); - permStream.setPartsId(workStep.getPartsId()); - permStream.setProcessId(workStep.getProcessId()); - permStream.setStepId(workStep.getId()); + PermissionStreamNew permStream = new PermissionStreamNew(); + permStream.setBusinessId(workStep.getId()); + permStream.setBusinessType("6"); permStream.setDepartId(wsDep.getDepartId()); newPermissionStreams.add(permStream); } - if (!newWorkStepDepartments.isEmpty()) { workStepDepartmentService.saveBatch(newWorkStepDepartments); } if (!newPermissionStreams.isEmpty()) { - permissionStreamService.saveBatch(newPermissionStreams); + permissionStreamNewService.saveBatch(newPermissionStreams); } } private void handleRelatedPermissionsForParts(PartsInfo partsInfo, Collection<MdcProduction> mdcProductionList) { - // 澶勭悊宸ュ簭鏉冮檺 - handleProcessPermissions(partsInfo,null, mdcProductionList); - // 澶勭悊宸ユ鏉冮檺 - handleWorkStepPermissions(partsInfo, mdcProductionList); + // 澶勭悊宸ヨ壓瑙勭▼鐗堟湰 + List<ProcessSpecVersion> processSpecVersionList = processSpecVersionService.list(new QueryWrapper<ProcessSpecVersion>().eq("parts_id", partsInfo.getPartsId())); + processSpecVersionList.forEach(item->{ + processSpecVersionService.assignAddDepart(item, mdcProductionList); + handleRelatedPermissionsForProcessSpecVersion(item, mdcProductionList); + }); } - private void handleProcessPermissions(PartsInfo partsInfo,ComponentInfo componentInfo,Collection<MdcProduction> mdcProductionList) { + private void handleRelatedPermissionsForProcessSpecVersion(ProcessSpecVersion processSpecVersion, Collection<MdcProduction> mdcProductionList) { + // 澶勭悊宸ュ簭鏉冮檺 + handleProcessPermissions(processSpecVersion,null, mdcProductionList); + // 澶勭悊宸ユ鏉冮檺 + handleWorkStepPermissions(processSpecVersion, mdcProductionList); + + } + + private void handleProcessPermissions(ProcessSpecVersion processSpecVersion,ComponentInfo componentInfo,Collection<MdcProduction> mdcProductionList) { List<ProcessStream> processStreamList=new ArrayList<>(); if (componentInfo != null) { processStreamList = processStreamService.list(new QueryWrapper<ProcessStream>().eq("component_id", componentInfo.getComponentId())); }else { - processStreamList = processStreamService.list(new QueryWrapper<ProcessStream>().eq("parts_id", partsInfo.getPartsId())); + processStreamList = processStreamService.list(new QueryWrapper<ProcessStream>().eq("psv_id", processSpecVersion.getId())); } if (processStreamList == null || processStreamList.isEmpty()) { return; } processStreamList.forEach(item->{ - handleRelatedPermissions(item, mdcProductionList, workStepService, workStepDepartmentService, permissionStreamService); + handleRelatedPermissions(item, mdcProductionList, workStepService, workStepDepartmentService, permissionStreamNewService); }); Map<String, ProcessionDepartment> allProcessPermissions = new HashMap<>(); Map<String, ProcessStream> processStreamMap = new HashMap<>(); @@ -1388,16 +1502,14 @@ } List<ProcessionDepartment> newProcessPermissions = new ArrayList<>(); - List<PermissionStream> newPermissionStreams = new ArrayList<>(); + List<PermissionStreamNew> newPermissionStreams = new ArrayList<>(); for (Map.Entry<String, ProcessionDepartment> entry : allProcessPermissions.entrySet()) { ProcessionDepartment procDep = entry.getValue(); newProcessPermissions.add(procDep); ProcessStream processStream = processStreamMap.get(procDep.getProcessId()); - PermissionStream permStream = new PermissionStream(); - permStream.setProductId(processStream.getProductId()); - permStream.setComponentId(processStream.getComponentId()); - permStream.setPartsId(processStream.getPartsId()); - permStream.setProcessId(processStream.getProcessId()); + PermissionStreamNew permStream = new PermissionStreamNew(); + permStream.setBusinessId(processStream.getProcessId()); + permStream.setBusinessType("5"); permStream.setDepartId(procDep.getDepartId()); newPermissionStreams.add(permStream); } @@ -1406,22 +1518,22 @@ processionDepartmentService.saveBatch(newProcessPermissions); } if (!newPermissionStreams.isEmpty()) { - permissionStreamService.saveBatch(newPermissionStreams); + permissionStreamNewService.saveBatch(newPermissionStreams); } } - private void handleWorkStepPermissions(PartsInfo partsInfo, Collection<MdcProduction> mdcProductionList) { - List<ProcessStream> processStreamList = processStreamService.list(new QueryWrapper<ProcessStream>().eq("parts_id", partsInfo.getPartsId())); + private void handleWorkStepPermissions(ProcessSpecVersion processSpecVersion, Collection<MdcProduction> mdcProductionList) { + List<ProcessStream> processStreamList = processStreamService.list(new QueryWrapper<ProcessStream>().eq("psv_id", processSpecVersion.getId())); if (processStreamList == null || processStreamList.isEmpty()) { return; } List<String> processIds = processStreamList.stream().map(ProcessStream::getProcessId).collect(Collectors.toList()); - List<WorkStep> workStepList = workStepService.getByProcessIds(partsInfo.getProductId(), processIds); + List<WorkStep> workStepList = workStepService.getByProcessIds(processSpecVersion.getProductId(), processIds); if (workStepList == null || workStepList.isEmpty()) { return; } workStepList.forEach(item->{ - handleRelatedPermissions(item, mdcProductionList, workStepService, workStepDepartmentService, permissionStreamService); + handleRelatedPermissions(item, mdcProductionList, workStepService, workStepDepartmentService, permissionStreamNewService); }); } @@ -1463,14 +1575,14 @@ } List<ComponentDepartment> newComponentPermissions = new ArrayList<>(); - List<PermissionStream> newPermissionStreams = new ArrayList<>(); + List<PermissionStreamNew> newPermissionStreams = new ArrayList<>(); for (Map.Entry<String, ComponentDepartment> entry : allComponentPermissions.entrySet()) { ComponentDepartment compDep = entry.getValue(); newComponentPermissions.add(compDep); ComponentInfo componentInfo = componentInfoMap.get(compDep.getComponentId()); - PermissionStream permStream = new PermissionStream(); - permStream.setProductId(componentInfo.getProductId()); - permStream.setComponentId(componentInfo.getComponentId()); + PermissionStreamNew permStream = new PermissionStreamNew(); + permStream.setBusinessId(componentInfo.getComponentId()); + permStream.setBusinessType("2"); permStream.setDepartId(compDep.getDepartId()); newPermissionStreams.add(permStream); } @@ -1479,7 +1591,7 @@ componentDepartmentService.saveBatch(newComponentPermissions); } if (!newPermissionStreams.isEmpty()) { - permissionStreamService.saveBatch(newPermissionStreams); + permissionStreamNewService.saveBatch(newPermissionStreams); } } @@ -1537,14 +1649,14 @@ } List<ComponentDepartment> newComponentPermissions = new ArrayList<>(); - List<PermissionStream> newPermissionStreams = new ArrayList<>(); + List<PermissionStreamNew> newPermissionStreams = new ArrayList<>(); for (Map.Entry<String, ComponentDepartment> entry : allComponentPermissions.entrySet()) { ComponentDepartment compDep = entry.getValue(); newComponentPermissions.add(compDep); childComponent = componentInfoMap.get(compDep.getComponentId()); - PermissionStream permStream = new PermissionStream(); - permStream.setProductId(childComponent.getProductId()); - permStream.setComponentId(childComponent.getComponentId()); + PermissionStreamNew permStream = new PermissionStreamNew(); + permStream.setBusinessId(childComponent.getComponentId()); + permStream.setBusinessType("2"); permStream.setDepartId(compDep.getDepartId()); newPermissionStreams.add(permStream); } @@ -1553,7 +1665,7 @@ componentDepartmentService.saveBatch(newComponentPermissions); } if (!newPermissionStreams.isEmpty()) { - permissionStreamService.saveBatch(newPermissionStreams); + permissionStreamNewService.saveBatch(newPermissionStreams); } } } @@ -1564,6 +1676,7 @@ return; } for (PartsInfo partsInfo : partsInfoList) { + partsInfoService.assignAddDepart(partsInfo, mdcProductionList); handleRelatedPermissionsForParts(partsInfo, mdcProductionList); } } @@ -1579,77 +1692,6 @@ /**绉婚櫎鏉冮檺*/ - - private boolean handleWorkStepRemoval(String paramId, Collection<SysUser> userList, Collection<MdcProduction> mdcProductionList) { - WorkStep workStep = workStepService.getById(paramId); - if (workStep == null) { - ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST); - } - checkProductPerm(6, workStep.getId()); - if (userList!=null){ - return workStepService.assignRemoveUser(workStep, userList); - }else { - return workStepService.assignRemoveDepart(workStep, mdcProductionList); - } - } - - private boolean handleProcessStreamRemoval(String paramId, Integer relativeFlag, Collection<SysUser> userList, Collection<MdcProduction> mdcProductionList) { - ProcessStream processStream = processStreamService.getById(paramId); - if (processStream == null) { - ExceptionCast.cast(ProcessInfoCode.PROCESS_NOT_EXIST); - } - checkProductPerm(5, processStream.getProcessId()); - boolean result; - if (userList!=null){ - result = processStreamService.assignRemoveUser(processStream, userList); - if (!result) { - ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); - } - if (relativeFlag == 1) { - handleRelatedRemovals(processStream.getProcessId(), userList, - workStepService, iWorkStepPermissionService, permissionStreamService, - "process_id"); - } - }else { - result = processStreamService.assignRemoveDepart(processStream, mdcProductionList); - if (!result) { - ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); - } - if (relativeFlag == 1) { - handleRelatedDepartmentRemovals(processStream.getProcessId(), mdcProductionList, - workStepService, workStepDepartmentService, permissionStreamService, - "process_id"); - } - } - return true; - } - - private boolean handlePartsInfoRemoval(String paramId, Integer relativeFlag, Collection<SysUser> userList, Collection<MdcProduction> mdcProductionList) { - PartsInfo partsInfo = partsInfoService.getById(paramId); - if (partsInfo == null) { - ExceptionCast.cast(PartsInfoCode.PARTS_NOT_EXIST); - } - checkProductPerm(3, partsInfo.getPartsId()); - boolean result; - if (userList!=null){ - result = partsInfoService.assignRemoveUser(partsInfo, userList); - if (!result) { - ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); - } - if (relativeFlag == 1) { - handlePartsRelatedRemovals(null,partsInfo, userList); - } - }else { - result = partsInfoService.assignRemoveDepart(partsInfo, mdcProductionList); - if (!result) { - ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); - } - if (relativeFlag == 1) { - handlePartsRelatedDepartmentRemovals(null,partsInfo, mdcProductionList); - } - } - return true; - } private boolean handleProductInfoRemoval(String paramId, Integer relativeFlag, Collection<SysUser> userList, Collection<MdcProduction> mdcProductionList) { ProductInfo productInfo = super.getById(paramId); @@ -1705,10 +1747,108 @@ return true; } + private boolean handlePartsInfoRemoval(String paramId, Integer relativeFlag, Collection<SysUser> userList, Collection<MdcProduction> mdcProductionList) { + PartsInfo partsInfo = partsInfoService.getById(paramId); + if (partsInfo == null) { + ExceptionCast.cast(PartsInfoCode.PARTS_NOT_EXIST); + } + checkProductPerm(3, partsInfo.getPartsId()); + boolean result; + if (userList!=null){ + result = partsInfoService.assignRemoveUser(partsInfo, userList); + if (!result) { + ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); + } + if (relativeFlag == 1) { + handlePartRelatedRemovals(partsInfo, userList); + } + }else { + result = partsInfoService.assignRemoveDepart(partsInfo, mdcProductionList); + if (!result) { + ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); + } + if (relativeFlag == 1) { + handlePartRelatedDepartmentRemovals(partsInfo, mdcProductionList); + } + } + return true; + } + + private boolean handleProcessSpecVersionRemoval(String paramId, Integer relativeFlag, Collection<SysUser> userList, Collection<MdcProduction> mdcProductionList) { + ProcessSpecVersion processSpecVersion = processSpecVersionService.getById(paramId); + if (processSpecVersion == null) { + ExceptionCast.cast(PartsInfoCode.PROCESSSPECVERSION_NOT_EXIST); + } + checkProductPerm(4, processSpecVersion.getPartsId()); + boolean result; + if (userList!=null){ + result = processSpecVersionService.assignRemoveUser(processSpecVersion, userList); + if (!result) { + ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); + } + if (relativeFlag == 1) { + handleProcessSpecVersionRelatedRemovals(null,processSpecVersion, userList); + } + }else { + result = processSpecVersionService.assignRemoveDepart(processSpecVersion, mdcProductionList); + if (!result) { + ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); + } + if (relativeFlag == 1) { + handleProcessSpecVersionRelatedDepartmentRemovals(null,processSpecVersion, mdcProductionList); + } + } + return true; + } + + private boolean handleProcessStreamRemoval(String paramId, Integer relativeFlag, Collection<SysUser> userList, Collection<MdcProduction> mdcProductionList) { + ProcessStream processStream = processStreamService.getById(paramId); + if (processStream == null) { + ExceptionCast.cast(ProcessInfoCode.PROCESS_NOT_EXIST); + } + checkProductPerm(5, processStream.getProcessId()); + boolean result; + if (userList!=null){ + result = processStreamService.assignRemoveUser(processStream, userList); + if (!result) { + ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); + } + if (relativeFlag == 1) { + handleRelatedRemovals(processStream.getProcessId(), userList, + workStepService, iWorkStepPermissionService, permissionStreamNewService, + "process_id"); + } + }else { + result = processStreamService.assignRemoveDepart(processStream, mdcProductionList); + if (!result) { + ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR); + } + if (relativeFlag == 1) { + handleRelatedDepartmentRemovals(processStream.getProcessId(), mdcProductionList, + workStepService, workStepDepartmentService, permissionStreamNewService, + "process_id"); + } + } + return true; + } + + private boolean handleWorkStepRemoval(String paramId, Collection<SysUser> userList, Collection<MdcProduction> mdcProductionList) { + WorkStep workStep = workStepService.getById(paramId); + if (workStep == null) { + ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST); + } + checkProductPerm(6, workStep.getId()); + if (userList!=null){ + return workStepService.assignRemoveUser(workStep, userList); + }else { + return workStepService.assignRemoveDepart(workStep, mdcProductionList); + } + } + private void handleRelatedRemovals(String parentId, Collection<SysUser> userList, IWorkStepService workStepService, IWorkStepPermissionService workStepPermissionService, - IPermissionStreamService permissionStreamService, + IPermissionStreamNewService permissionStreamNewService, String queryField) { List<WorkStep> workStepList = workStepService.list(new QueryWrapper<WorkStep>().eq(queryField, parentId)); if (workStepList.isEmpty()) { @@ -1717,20 +1857,20 @@ List<String> workStepIds = workStepList.stream().map(WorkStep::getId).collect(Collectors.toList()); List<String> userIdList = userList.stream().map(SysUser::getId).collect(Collectors.toList()); List<WorkStepPermission> workStepPermissions = workStepPermissionService.getByStepIdsAndUserIds(workStepIds, userIdList); - List<PermissionStream> permissionStreams = permissionStreamService.getByPartsIdsAndDepartIds(workStepIds, userIdList); + List<PermissionStreamNew> permissionStreams = permissionStreamNewService.loadPermissionStreamNewByBusinessIdsAndUserIds(workStepIds, userIdList,"6"); if (!workStepPermissions.isEmpty()) { workStepPermissionService.removeByCollection(workStepPermissions); } if (!permissionStreams.isEmpty()) { - permissionStreamService.removeByCollection(permissionStreams); + permissionStreamNewService.deletePermissionStreamNewByList(permissionStreams); } } private void handleRelatedDepartmentRemovals(String parentId, Collection<MdcProduction> mdcProductionList, IWorkStepService workStepService, IWorkStepDepartmentService workStepDepartmentService, - IPermissionStreamService permissionStreamService, + IPermissionStreamNewService permissionStreamNewService, String queryField) { List<WorkStep> workStepList = workStepService.list(new QueryWrapper<WorkStep>().eq(queryField, parentId)); if (workStepList.isEmpty()) { @@ -1739,22 +1879,22 @@ List<String> workStepIds = workStepList.stream().map(WorkStep::getId).collect(Collectors.toList()); List<String> departmentIdList = mdcProductionList.stream().map(MdcProduction::getId).collect(Collectors.toList()); List<WorkStepDepartment> workStepDepartments = workStepDepartmentService.getByPartsIdsAndDepartIds(workStepIds, departmentIdList); - List<PermissionStream> permissionStreams = permissionStreamService.getByPartsIdsAndDepartIds(workStepIds, departmentIdList); + List<PermissionStreamNew> permissionStreams = permissionStreamNewService.loadPermissionStreamNewByBusinessIdsAndDepartIds(workStepIds, departmentIdList,"6"); if (!workStepDepartments.isEmpty()) { workStepDepartmentService.removeByCollection(workStepDepartments); } if (!permissionStreams.isEmpty()) { - permissionStreamService.removeByCollection(permissionStreams); + permissionStreamNewService.deletePermissionStreamNewByList(permissionStreams); } } - private void handlePartsRelatedRemovals(ComponentInfo componentInfo,PartsInfo partsInfo,Collection<SysUser> userList) { + private void handleProcessSpecVersionRelatedRemovals(ComponentInfo componentInfo,ProcessSpecVersion processSpecVersion,Collection<SysUser> userList) { List<ProcessStream> processStreamList =new ArrayList<>(); String productId=""; - if (partsInfo!=null){ - processStreamList= processStreamService.list(new QueryWrapper<ProcessStream>().eq("parts_id", partsInfo.getPartsId())); - productId=partsInfo.getProductId(); + if (processSpecVersion!=null){ + processStreamList= processStreamService.list(new QueryWrapper<ProcessStream>().eq("psv_id", processSpecVersion.getId())); + productId=processSpecVersion.getProductId(); }else { processStreamList= processStreamService.list(new QueryWrapper<ProcessStream>().eq("component_id", componentInfo.getComponentId()).isNull("parts_id")); productId=componentInfo.getProductId(); @@ -1770,13 +1910,13 @@ } List<String> userIdList = userList.stream().map(SysUser::getId).collect(Collectors.toList()); List<ProcessionPermission> processionPermissions = iProcessStreamPermissionService.getByProcessIdsAndUserIds(processIds, userIdList); - List<PermissionStream> permissionStreams = permissionStreamService.getByPartsIdsAndUserIds(processIds, userIdList); + List<PermissionStreamNew> permissionStreams = permissionStreamNewService.loadPermissionStreamNewByBusinessIdsAndUserIds(processIds, userIdList,"5"); if (!processionPermissions.isEmpty()) { iProcessStreamPermissionService.removeByCollection(processionPermissions); } if (!permissionStreams.isEmpty()) { - permissionStreamService.removeByCollection(permissionStreams); + permissionStreamNewService.deletePermissionStreamNewByList(permissionStreams); } } @@ -1786,13 +1926,13 @@ } List<String> departmentIdList = mdcProductionList.stream().map(MdcProduction::getId).collect(Collectors.toList()); List<ProcessionDepartment> processionDepartments = processionDepartmentService.getByPartsIdsAndDepartIds(processIds, departmentIdList); - List<PermissionStream> permissionStreams = permissionStreamService.getByPartsIdsAndDepartIds(processIds, departmentIdList); + List<PermissionStreamNew> permissionStreams = permissionStreamNewService.loadPermissionStreamNewByBusinessIdsAndDepartIds(processIds, departmentIdList,"5"); if (!processionDepartments.isEmpty()) { processionDepartmentService.removeByCollection(processionDepartments); } if (!permissionStreams.isEmpty()) { - permissionStreamService.removeByCollection(permissionStreams); + permissionStreamNewService.deletePermissionStreamNewByList(permissionStreams); } } @@ -1800,7 +1940,7 @@ List<WorkStep> workStepList = workStepService.getByProcessIds(productId, processIds); if (workStepList!=null){ workStepList.forEach(item->{ - handleRelatedRemovals(item.getProcessId(), userList, workStepService, iWorkStepPermissionService, permissionStreamService, "process_id"); + handleRelatedRemovals(item.getProcessId(), userList, workStepService, iWorkStepPermissionService, permissionStreamNewService, "process_id"); }); } } @@ -1809,7 +1949,7 @@ List<WorkStep> workStepList = workStepService.getByProcessIds(productId, processIds); if (workStepList!=null){ workStepList.forEach(item->{ - handleRelatedDepartmentRemovals(item.getProcessId(), mdcProductionList, workStepService, workStepDepartmentService, permissionStreamService, "process_id"); + handleRelatedDepartmentRemovals(item.getProcessId(), mdcProductionList, workStepService, workStepDepartmentService, permissionStreamNewService, "process_id"); }); } } @@ -1820,8 +1960,30 @@ handleComponentRemovals(componentIds, userList); handlePartsRemovals(productInfo.getProductId(), componentIds, userList); componentInfoList.forEach(item->{ - handlePartsRelatedRemovals(item,null, userList); + handleProcessSpecVersionRelatedRemovals(item,null, userList); }); + } + + private void handlePartRelatedRemovals(PartsInfo partsInfo, Collection<SysUser> userList) { + List<ProcessSpecVersion> processSpecVersions = processSpecVersionService.getByPartsId(partsInfo.getPartsId()); + if (processSpecVersions!=null){ + List<String> psvIds = processSpecVersions.stream().map(ProcessSpecVersion::getId).collect(Collectors.toList()); + handleProcessSpecVersionRemovals(psvIds, userList); + processSpecVersions.forEach(item->{ + handleProcessSpecVersionRelatedRemovals(null,item, userList); + }); + } + } + + private void handlePartRelatedDepartmentRemovals(PartsInfo partsInfo, Collection<MdcProduction> mdcProductionList) { + List<ProcessSpecVersion> processSpecVersions = processSpecVersionService.getByPartsId(partsInfo.getPartsId()); + if (processSpecVersions!=null){ + List<String> psvIds = processSpecVersions.stream().map(ProcessSpecVersion::getId).collect(Collectors.toList()); + handleProcessSpecVersionDepartmentRemovals(psvIds, mdcProductionList); + processSpecVersions.forEach(item->{ + handleProcessSpecVersionRelatedDepartmentRemovals(null,item, mdcProductionList); + }); + } } private void handleProductRelatedDepartmentRemovals(ProductInfo productInfo, Collection<MdcProduction> mdcProductionList) { @@ -1830,7 +1992,7 @@ handleComponentDepartmentRemovals(componentIds, mdcProductionList); handlePartsDepartmentRemovals(productInfo.getProductId(), componentIds, mdcProductionList); componentInfoList.forEach(item->{ - handlePartsRelatedDepartmentRemovals(item,null, mdcProductionList); + handleProcessSpecVersionRelatedDepartmentRemovals(item,null, mdcProductionList); }); } @@ -1840,15 +2002,46 @@ } List<String> userIdList = userList.stream().map(SysUser::getId).collect(Collectors.toList()); List<ComponentPermission> componentPermissions = componentPermissionService.getByComponentIdsAndUserIds(componentIds, userIdList); - List<PermissionStream> permissionStreams = permissionStreamService.getByComponentIdsAndUserIds(componentIds, userIdList); + List<PermissionStreamNew> permissionStreams = permissionStreamNewService.loadPermissionStreamNewByBusinessIdsAndUserIds(componentIds, userIdList,"2"); if (!componentPermissions.isEmpty()) { componentPermissionService.removeByCollection(componentPermissions); } if (!permissionStreams.isEmpty()) { - permissionStreamService.removeByCollection(permissionStreams); + permissionStreamNewService.deletePermissionStreamNewByList(permissionStreams); } } + + private void handleProcessSpecVersionRemovals(List<String> psvIds, Collection<SysUser> userList) { + if (psvIds.isEmpty()) { + return; + } + List<String> userIdList = userList.stream().map(SysUser::getId).collect(Collectors.toList()); + List<ProcessSpecVersionPermission> processSpecVersionPermissions = processSpecVersionPermissionService.getByPsvIdsAndUserIds(psvIds, userIdList); + List<PermissionStreamNew> permissionStreams = permissionStreamNewService.loadPermissionStreamNewByBusinessIdsAndUserIds(psvIds, userIdList,"4"); + if (!processSpecVersionPermissions.isEmpty()) { + processSpecVersionPermissionService.removeByCollection(processSpecVersionPermissions); + } + if (!permissionStreams.isEmpty()) { + permissionStreamNewService.deletePermissionStreamNewByList(permissionStreams); + } + } + + private void handleProcessSpecVersionDepartmentRemovals(List<String> psvIds, Collection<MdcProduction> mdcProductionList) { + if (psvIds.isEmpty()) { + return; + } + List<String> departmentIdList = mdcProductionList.stream().map(MdcProduction::getId).collect(Collectors.toList()); + List<ProcessSpecVersionDepartment> processSpecVersionDepartments =processSpecVersionDepartmentService.getByPsvIdsAndDepartIds(psvIds, departmentIdList); + List<PermissionStreamNew> permissionStreams = permissionStreamNewService.loadPermissionStreamNewByBusinessIdsAndDepartIds(psvIds, departmentIdList,"4"); + if (!processSpecVersionDepartments.isEmpty()) { + processSpecVersionDepartmentService.removeByCollection(processSpecVersionDepartments); + } + if (!permissionStreams.isEmpty()) { + permissionStreamNewService.deletePermissionStreamNewByList(permissionStreams); + } + } + private void handleComponentDepartmentRemovals(List<String> componentIds, Collection<MdcProduction> mdcProductionList) { if (componentIds.isEmpty()) { @@ -1856,28 +2049,29 @@ } List<String> departmentIdList = mdcProductionList.stream().map(MdcProduction::getId).collect(Collectors.toList()); List<ComponentDepartment> componentDepartments = componentDepartmentService.getByComponentIdsAndDepartIds(componentIds, departmentIdList); - List<PermissionStream> permissionStreams = permissionStreamService.getByComponentIdsAndDepartIds(componentIds, departmentIdList); + List<PermissionStreamNew> permissionStreams = permissionStreamNewService.loadPermissionStreamNewByBusinessIdsAndDepartIds(componentIds, departmentIdList,"2"); if (!componentDepartments.isEmpty()) { componentDepartmentService.removeByCollection(componentDepartments); } if (!permissionStreams.isEmpty()) { - permissionStreamService.removeByCollection(permissionStreams); + permissionStreamNewService.deletePermissionStreamNewByList(permissionStreams); } } - private void handlePartsRemovals(String productId, List<String> componentIds, Collection<SysUser> userList) { + private void handlePartsRemovals(String productId, List<String> componentIds,Collection<SysUser> userList) { List<PartsInfo> partsInfoList = partsInfoService.getByComponentIdList(productId, componentIds); partsInfoList.forEach(item->{ partsInfoService.assignRemoveUser(item,userList); - handlePartsRelatedRemovals(null,item, userList); + //鍒犻櫎 + handlePartRelatedRemovals(item, userList); }); } private void handlePartsDepartmentRemovals(String productId, List<String> componentIds, Collection<MdcProduction> mdcProductionList) { List<PartsInfo> partsInfoList = partsInfoService.getByComponentIdList(productId, componentIds); partsInfoList.forEach(item->{ partsInfoService.assignRemoveDepart(item,mdcProductionList); - handlePartsRelatedDepartmentRemovals(null,item, mdcProductionList); + handlePartRelatedDepartmentRemovals(item, mdcProductionList); }); } @@ -1893,7 +2087,7 @@ handlePartsDepartmentRemovals(componentInfo.getProductId(), componentIds, mdcProductionList); if (childrenList != null) { childrenList.forEach(item->{ - handlePartsRelatedDepartmentRemovals(item,null, mdcProductionList); + handleProcessSpecVersionRelatedDepartmentRemovals(item,null, mdcProductionList); }); } }else { @@ -1901,21 +2095,21 @@ handlePartsRemovals(componentInfo.getProductId(), componentIds, userList); if (childrenList != null) { childrenList.forEach(item->{ - handlePartsRelatedRemovals(item,null, userList); + handleProcessSpecVersionRelatedRemovals(item,null, userList); }); } } } - private void handlePartsRelatedDepartmentRemovals(ComponentInfo componentInfo,PartsInfo partsInfo, Collection<MdcProduction> mdcProductionList) { + private void handleProcessSpecVersionRelatedDepartmentRemovals(ComponentInfo componentInfo,ProcessSpecVersion processSpecVersion, Collection<MdcProduction> mdcProductionList) { List<ProcessStream> processStreamList=new ArrayList<>(); String productId=""; if (componentInfo!=null){ processStreamList = processStreamService.list(new QueryWrapper<ProcessStream>().eq("component_id", componentInfo.getComponentId())); productId=componentInfo.getProductId(); }else { - processStreamList = processStreamService.list(new QueryWrapper<ProcessStream>().eq("parts_id", partsInfo.getPartsId())); - productId=partsInfo.getProductId(); + processStreamList = processStreamService.list(new QueryWrapper<ProcessStream>().eq("psv_id", processSpecVersion.getId())); + productId=processSpecVersion.getProductId(); } List<String> processIds = processStreamList.stream().map(ProcessStream::getProcessId).collect(Collectors.toList()); handleProcessDepartmentRemovals(processIds, mdcProductionList); -- Gitblit v1.9.3