解决MPR运算回写备料计划报错问题-张鑫0514

This commit is contained in:
zhangxinah@yonyou.com 2025-05-14 18:24:18 +08:00
parent 1492a58adb
commit 803f6ba915
1 changed files with 117 additions and 123 deletions

View File

@ -47,22 +47,20 @@ public class PloProdDeptRule implements IRule<AggregatedPoVO> {
String prodDeptid = plo.getCproddeptid(); String prodDeptid = plo.getCproddeptid();
String prodDeptvid = plo.getCproddeptvid(); String prodDeptvid = plo.getCproddeptvid();
Integer posource = plo.getFposource(); Integer posource = plo.getFposource();
if (PoSourceEnum.COMPUT == posource && MMValueCheck.isEmpty(prodDeptid) if (PoSourceEnum.COMPUT == posource && MMValueCheck.isEmpty(prodDeptid) && MMValueCheck.isEmpty(prodDeptvid)
&& MMValueCheck.isEmpty(prodDeptvid) && MMValueCheck.isNotEmpty(stockorgid) && MMValueCheck.isNotEmpty(stockorgid) && MMValueCheck.isNotEmpty(stockorgvid)) {
&& MMValueCheck.isNotEmpty(stockorgvid)) {
List<String> vids = map.get(stockorgid); List<String> vids = map.get(stockorgid);
if (null == vids) { if (null == vids) {
List<String> list = new ArrayList<String>(); List<String> list = new ArrayList<String>();
list.add(vid); list.add(vid);
map.put(stockorgid, list); map.put(stockorgid, list);
} } else {
else {
vids.add(vid); vids.add(vid);
} }
} }
String vsrcbid = plo.getVsrcbid();//来源单据表体主键 String vsrcbid = plo.getVsrcbid();// 来源单据表体主键
int fdemandbill = plo.getFdemandbill();//需求来源 // 需求来源为备料计划的才回写
if (PoSourceEnum.COMPUT == posource && fdemandbill == 1) { if (PoSourceEnum.COMPUT == posource && plo.getFdemandbill() != null && plo.getFdemandbill() == 1) {
vsrcbidList.add(vsrcbid); vsrcbidList.add(vsrcbid);
} }
} }
@ -70,31 +68,30 @@ public class PloProdDeptRule implements IRule<AggregatedPoVO> {
String[] vsrcbids = vsrcbidList.toArray(new String[vsrcbidList.size()]); String[] vsrcbids = vsrcbidList.toArray(new String[vsrcbidList.size()]);
Map<String, AggPickmVO> pickmVOMap; Map<String, AggPickmVO> pickmVOMap;
try { try {
pickmVOMap = NCLocator.getInstance().lookup(IPickmPubQueryService.class) pickmVOMap = NCLocator.getInstance().lookup(IPickmPubQueryService.class).queryPickm4Issue(vsrcbids);
.queryPickm4Issue(vsrcbids);
} catch (BusinessException e) { } catch (BusinessException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
pickmVOMap.getClass(); pickmVOMap.getClass();
for (AggregatedPoVO agg : vos) { for (AggregatedPoVO agg : vos) {
PoVO plo = agg.getParentVO(); PoVO plo = agg.getParentVO();
String vsrcbid = plo.getVsrcbid();//来源单据表体主键 String vsrcbid = plo.getVsrcbid();// 来源单据表体主键
AggPickmVO aggPickmVOData = pickmVOMap.get(vsrcbid); AggPickmVO aggPickmVOData = pickmVOMap.get(vsrcbid);
if (aggPickmVOData != null) { if (aggPickmVOData != null) {
PickmItemVO[] children = (PickmItemVO[]) aggPickmVOData.getChildren(PickmItemVO.class); PickmItemVO[] children = (PickmItemVO[]) aggPickmVOData.getChildren(PickmItemVO.class);
String vbdef5 = "";//合同编号 String vbdef5 = "";// 合同编号
String vbdef6 = "";//合同销售订单号 String vbdef6 = "";// 合同销售订单号
String vbdef7 = "";//标前项目号 String vbdef7 = "";// 标前项目号
for (PickmItemVO pickmItemVO : children) { for (PickmItemVO pickmItemVO : children) {
if (pickmItemVO.getCpickm_bid().equals(vsrcbid)) { if (pickmItemVO.getCpickm_bid().equals(vsrcbid)) {
vbdef5 = pickmItemVO.getVbdef5();//合同编号 vbdef5 = pickmItemVO.getVbdef5();// 合同编号
vbdef6 = pickmItemVO.getVbdef6();//合同销售订单号 vbdef6 = pickmItemVO.getVbdef6();// 合同销售订单号
vbdef7 = pickmItemVO.getVbdef7();//标前项目号 vbdef7 = pickmItemVO.getVbdef7();// 标前项目号
} }
} }
plo.setVdef2(vbdef5);//合同编号 plo.setVdef2(vbdef5);// 合同编号
plo.setVdef3(vbdef6);//合同销售订单号 plo.setVdef3(vbdef6);// 合同销售订单号
plo.setVdef4(vbdef7);//标前项目号 plo.setVdef4(vbdef7);// 标前项目号
} }
} }
} }
@ -103,10 +100,8 @@ public class PloProdDeptRule implements IRule<AggregatedPoVO> {
while (i.hasNext()) { while (i.hasNext()) {
String key = i.next(); String key = i.next();
List<String> vids = map.get(key); List<String> vids = map.get(key);
Map<String, MaterialProdVO> results = Map<String, MaterialProdVO> results = MaterialPubService.queryMaterialProduceInfoByPks(
MaterialPubService.queryMaterialProduceInfoByPks(vids.toArray(new String[0]), key, new String[] { vids.toArray(new String[0]), key, new String[] { MaterialProdVO.PK_PRODEPTDOC });
MaterialProdVO.PK_PRODEPTDOC
});
for (AggregatedPoVO agg : vos) { for (AggregatedPoVO agg : vos) {
PoVO plo = agg.getParentVO(); PoVO plo = agg.getParentVO();
String vid = plo.getCmaterialvid(); String vid = plo.getCmaterialvid();
@ -147,8 +142,7 @@ public class PloProdDeptRule implements IRule<AggregatedPoVO> {
} }
} }
} }
} } catch (BusinessException e) {
catch (BusinessException e) {
ExceptionUtils.wrappException(e); ExceptionUtils.wrappException(e);
} }