diff --git a/uapbd/src/public/nccloud/openapi/mmbd/bom/BomResource.java b/uapbd/src/public/nccloud/openapi/mmbd/bom/BomResource.java index c17808c..647102a 100644 --- a/uapbd/src/public/nccloud/openapi/mmbd/bom/BomResource.java +++ b/uapbd/src/public/nccloud/openapi/mmbd/bom/BomResource.java @@ -13,6 +13,8 @@ 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; import nc.vo.bd.bom.bom0202.entity.BomItemVO; @@ -94,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; } @@ -108,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; } @@ -122,7 +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); @@ -214,9 +216,42 @@ public class BomResource extends AbstractNCCRestResource { bomReplVOS.addAll(Arrays.asList(result)); } } + 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)){ + bomReplVOList.add(param); + continue; + }else{ + if (param.containsKey("creplmaterialvid")) { + 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()) { - return ResultMessageUtil.toJSON(bomReplVOS, "BOM更新成功"); + if (targetCbomBid.equals(bomItemVO.getCbom_bid())) { + for (BomReplVO replVO : bomItemVO.getRepl()) { + if(replVO.getCreplmaterialvid().equals(mrlid)){ + param.put("cbom_replaceid",replVO.getCbom_replaceid()); + bomReplVOList.add(param); + continue; + } + } + } + } + + } + + } + + } + + } + return ResultMessageUtil.toJSON(bomReplVOList, "BOM更新成功"); } catch (BusinessException e) { return ResultMessageUtil.exceptionToJSON(e); }