From f2cd828d3719efd7796f5bd7692b3d9946b5b772 Mon Sep 17 00:00:00 2001 From: Fancy <Fancy.fx@outlook.com> Date: 星期四, 11 七月 2024 11:37:21 +0800 Subject: [PATCH] check process used can not change product --- pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessSv.java | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 42 insertions(+), 3 deletions(-) diff --git a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessSv.java b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessSv.java index e7bed98..961200e 100644 --- a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessSv.java +++ b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessSv.java @@ -3,6 +3,7 @@ import com.dy.common.webFilter.UserTokenContext; import com.dy.common.webUtil.QueryResultVo; import com.dy.pmsGlobal.daoOth.OthFileMapper; +import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper; import com.dy.pmsGlobal.daoPr.PrProductionNodeMapper; import com.dy.pmsGlobal.daoPr.PrProductionProcessMapper; import com.dy.pmsGlobal.daoPr.PrWorkingInstructionMapper; @@ -10,11 +11,14 @@ import com.dy.pmsGlobal.dyFile.FileRestVo; import com.dy.pmsGlobal.pojoBa.BaUser; import com.dy.pmsGlobal.pojoOth.OthFile; +import com.dy.pmsGlobal.pojoPr.PrAssemblyPlan; import com.dy.pmsGlobal.pojoPr.PrProductionNode; import com.dy.pmsGlobal.pojoPr.PrProductionProcess; import com.dy.pmsGlobal.pojoPr.PrWorkingInstruction; import com.dy.pmsGlobal.util.UserUtil; +import com.dy.pmsProduct.taskPlan.PlanStatusEnum; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -29,6 +33,7 @@ @Slf4j @Service public class ProcessSv { + private PrAssemblyPlanMapper assemblyDao; private PrProductionProcessMapper processDao; private PrProductionNodeMapper nodeDao; private PrWorkingInstructionMapper workDao; @@ -37,6 +42,10 @@ private OthFileMapper othFileMapper; @Value("${dy.webFile.fmUrl}") private String fmUrl ; + @Autowired + public void setAssemblyDao(PrAssemblyPlanMapper assemblyDao) { + this.assemblyDao = assemblyDao; + } @Autowired public void setProcessDao(PrProductionProcessMapper dao){ processDao = dao; @@ -63,6 +72,10 @@ } @Transactional public int save(PrProductionProcess process){ + //娴佺▼鍚嶇О涓嶈兘閲嶅 + if (processDao.exists(process.name, process.id)) { + throw new RuntimeException("娴佺▼鍚嶇О涓嶈兘閲嶅"); + } prepareProcess(process); int count = processDao.insertSelective(process); saveNodesAndInstructions(process); @@ -71,6 +84,30 @@ @Transactional public int update(PrProductionProcess process){ + //娴佺▼鍚嶇О涓嶈兘閲嶅 + if (processDao.exists(process.name, process.id)) { + throw new RuntimeException("娴佺▼鍚嶇О涓嶈兘閲嶅"); + } + PrProductionProcess originProductionProcess = processDao.selectByPrimaryKey(process.id); + //濡傛灉宸茬粡缁戝畾浠诲姟(鐩墠涓嶅寘鎷殏鍋淺缁撴潫鐘舵�� 鎶曞叆鏁颁负0鐨勪换鍔� 浠ュ鐨� 鎵�鏈変换鍔�),浜у搧\鑺傜偣id涓嶈兘鍒犻櫎涓嶈兘淇敼 + if(!originProductionProcess.getProName().equals(process.getProName())){ + //缁勮浠诲姟璁″垝 + PrAssemblyPlan params = new PrAssemblyPlan(); + params.setProcessId(process.id); + List<PrAssemblyPlan> planList = assemblyDao.selectAssyPlanSimplify(params); + List<PrAssemblyPlan> onlinePlanList = planList.stream().filter(plan -> plan.getStatus() == PlanStatusEnum.NORMAL.getCode()).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(planList)) { + if (planList.stream().anyMatch(plan -> plan.getInputNumber() > 0)) { + throw new RuntimeException("瀛樺湪缁戝畾鐨勪换鍔�,骞朵笖鎶曞叆鐢熶骇,浜у搧涓嶈兘淇敼"); + }else if(CollectionUtils.isNotEmpty(onlinePlanList)){ + //鍏堝皢缁勮浠诲姟缃负鏆傚仠鐘舵�� + onlinePlanList.forEach(plan -> { + plan.status = PlanStatusEnum.PAUSE.getCode(); + assemblyDao.updateByPrimaryKeySelective(plan); + }); + } + } + } prepareProcess(process); int count = processDao.updateByPrimaryKeySelective(process); // 浼樺寲锛氬彧鏈夊綋鑺傜偣鏈夊彉鏇存椂鎵嶅垹闄ゅ苟閲嶆柊鎻掑叆 @@ -116,7 +153,9 @@ } return null; }).filter(work -> work != null).toList(); - workDao.insertMany(workList); + if(CollectionUtils.isNotEmpty(workList)){ + workDao.insertMany(workList); + } } @@ -159,8 +198,8 @@ return rsVo ; } - public List<Map<String,String>> queryAll(){ - return processDao.queryAll(); + public List<Map<String,String>> queryAll(Long proId){ + return processDao.queryAll(proId); } private void addUrl(PrWorkingInstruction ins){ -- Gitblit v1.8.0