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 | 33 ++++++++++++++++++++++++++++++++- 1 files changed, 32 insertions(+), 1 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 fa3c6c1..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; @@ -78,6 +87,26 @@ //娴佺▼鍚嶇О涓嶈兘閲嶅 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); @@ -124,7 +153,9 @@ } return null; }).filter(work -> work != null).toList(); - workDao.insertMany(workList); + if(CollectionUtils.isNotEmpty(workList)){ + workDao.insertMany(workList); + } } -- Gitblit v1.8.0