From 99213dbf9350c46f83935386852985c8d649b570 Mon Sep 17 00:00:00 2001 From: mzr Date: Sun, 21 Sep 2025 09:18:51 +0800 Subject: [PATCH] =?UTF-8?q?BOM=E6=9B=BF=E4=BB=A3=E6=96=99=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0=E4=BF=AE=E6=94=B9=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=9Abcanreplace=E3=80=81freplacetype=E3=80=81bisdisplace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nccloud/openapi/mmbd/bom/BomResource.java | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/uapbd/src/public/nccloud/openapi/mmbd/bom/BomResource.java b/uapbd/src/public/nccloud/openapi/mmbd/bom/BomResource.java index 647102a7..4c21bc94 100644 --- a/uapbd/src/public/nccloud/openapi/mmbd/bom/BomResource.java +++ b/uapbd/src/public/nccloud/openapi/mmbd/bom/BomResource.java @@ -13,7 +13,6 @@ import nc.itf.bd.bom.bom0202.IBomBillQueryService; import nc.jdbc.framework.generator.IdGenerator; import nc.mmbd.utils.factoryparam.MMBDFactoryParameter; import nc.uif.pub.exception.UifException; -import nc.util.mmf.framework.base.MMArrayUtil; import nc.util.mmf.framework.base.MMStringUtil; import nc.util.mmf.framework.base.MMValueCheck; import nc.vo.bd.bom.bom0202.entity.AggBomVO; @@ -24,6 +23,7 @@ import nc.vo.pub.BusinessException; import nc.vo.pub.VOStatus; import nc.vo.pub.lang.UFBoolean; import nc.vo.pub.lang.UFDouble; +import nc.ws.opm.pub.utils.result.APIErrCodeEnum; import nccloud.api.mmbd.bom.IAPIBomBusinessService; import nccloud.api.rest.utils.ResultMessageUtil; import nccloud.framework.core.exception.ExceptionUtils; @@ -96,7 +96,7 @@ public class BomResource extends AbstractNCCRestResource { if (MMValueCheck.isEmpty(paramList)) { return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含表头信息和表体信息", "1"); } else { - IAPIBomBusinessService service = (IAPIBomBusinessService)NCLocator.getInstance().lookup(IAPIBomBusinessService.class); + IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class); JSONString result = service.update(paramList); return result; } @@ -110,7 +110,7 @@ public class BomResource extends AbstractNCCRestResource { if (MMValueCheck.isEmpty(paramMap)) { return ResultMessageUtil.exceptionToJSON("传入数据异常,未传入查询条件", "1"); } else { - IAPIBomBusinessService service = (IAPIBomBusinessService)NCLocator.getInstance().lookup(IAPIBomBusinessService.class); + IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class); JSONString result = service.query(paramMap); return result; } @@ -124,9 +124,7 @@ public class BomResource extends AbstractNCCRestResource { if (MMValueCheck.isEmpty(paramMap)) { return ResultMessageUtil.exceptionToJSON("传入数据异常,未传入更新数据", "1"); } else { - try{ - - + try { IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class); IBomBillQueryService qry = (IBomBillQueryService) NCLocator.getInstance().lookup(IBomBillQueryService.class); IBomBillMaintainService bomBillMaintainService = (IBomBillMaintainService) NCLocator.getInstance().lookup(IBomBillMaintainService.class); @@ -136,10 +134,15 @@ public class BomResource extends AbstractNCCRestResource { String cbomid = (String) param.get("cbomid"); String targetCbomReplaceId = (String) param.get("cbom_replaceid"); // 目标替代ID String targetCbomBid = (String) param.get("cbombid"); // 目标物料项ID + String freplacetype = param.get("freplacetype") + ""; // 替代类型 // 校验必要参数 if (MMValueCheck.isEmpty(cbomid) || MMValueCheck.isEmpty(targetCbomBid)) { - ExceptionUtils.wrapBusinessException("cbomid和cbombid为必传参数"); + return ResultMessageUtil.exceptionToJSON("cbomid和cbombid为必传参数", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); + } + + if (MMValueCheck.isEmpty(freplacetype) || !Arrays.asList("1", "2").contains(freplacetype)) { + return ResultMessageUtil.exceptionToJSON("传入替代类型为空或者值范围错误", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); } // 查询BOM数据 @@ -157,6 +160,11 @@ public class BomResource extends AbstractNCCRestResource { for (BomItemVO bomItemVO : bomItemVOS) { // 匹配目标物料项 if (targetCbomBid.equals(bomItemVO.getCbom_bid())) { + bomItemVO.setStatus(VOStatus.UPDATED); + // bcanreplace 可替代 + bomItemVO.setBcanreplace(UFBoolean.TRUE); + // freplacetype 替代类型 1=全部替代;2=部分替代; + bomItemVO.setFreplacetype(Integer.valueOf(freplacetype)); BomReplVO[] replVOS = bomItemVO.getRepl(); List replList = MMValueCheck.isEmpty(replVOS) ? new ArrayList<>() @@ -216,27 +224,27 @@ public class BomResource extends AbstractNCCRestResource { bomReplVOS.addAll(Arrays.asList(result)); } } - List> bomReplVOList = new ArrayList<>(); + List> bomReplVOList = new ArrayList<>(); HYPubBO hybo = new HYPubBO(); for (Map param : paramMap) { String cbomid = (String) param.get("cbomid"); String targetCbomReplaceId = (String) param.get("cbom_replaceid"); // 目标替代ID String targetCbomBid = (String) param.get("cbombid"); // 目标物料项ID - if(!MMStringUtil.isEmpty(targetCbomReplaceId)){ + if (!MMStringUtil.isEmpty(targetCbomReplaceId)) { bomReplVOList.add(param); continue; - }else{ + } else { if (param.containsKey("creplmaterialvid")) { - String mrlCode= (String) param.get("creplmaterialvid"); - String mrlid=(String) hybo.findColValue("bd_material","pk_material"," code = '" + mrlCode + "' "); + String mrlCode = (String) param.get("creplmaterialvid"); + String mrlid = (String) hybo.findColValue("bd_material", "pk_material", " code = '" + mrlCode + "' "); for (AggBomVO aggBomVO : bomReplVOS) { for (BomItemVO bomItemVO : aggBomVO.getChildrenVO()) { if (targetCbomBid.equals(bomItemVO.getCbom_bid())) { for (BomReplVO replVO : bomItemVO.getRepl()) { - if(replVO.getCreplmaterialvid().equals(mrlid)){ - param.put("cbom_replaceid",replVO.getCbom_replaceid()); + if (replVO.getCreplmaterialvid().equals(mrlid)) { + param.put("cbom_replaceid", replVO.getCbom_replaceid()); bomReplVOList.add(param); continue; } @@ -261,6 +269,8 @@ public class BomResource extends AbstractNCCRestResource { // 提取属性设置为工具方法,减少冗余 private void setReplVOProperties(BomReplVO replVO, Map param) throws UifException { + // bisdisplace 取代 + replVO.setBisdisplace(UFBoolean.TRUE); HYPubBO hybo = new HYPubBO(); // if (param.containsKey("pk_group")) { // replVO.setPk_group((String) param.get("pk_group"));