diff --git a/mmpps/src/public/nc/rule/mmpps/plo/PloProdDeptRule.java b/mmpps/src/public/nc/rule/mmpps/plo/PloProdDeptRule.java index 938c68b..d73cf44 100644 --- a/mmpps/src/public/nc/rule/mmpps/plo/PloProdDeptRule.java +++ b/mmpps/src/public/nc/rule/mmpps/plo/PloProdDeptRule.java @@ -32,129 +32,123 @@ import nc.vo.mmpac.pickm.entity.PickmItemVO; public class PloProdDeptRule implements IRule { - @Override - public void process(AggregatedPoVO[] vos) { - if (null == vos) { - return; - } - Map> map = new HashMap>(); - ArrayList vsrcbidList = new ArrayList<>(); - for (AggregatedPoVO agg : vos) { - PoVO plo = agg.getParentVO(); - String vid = plo.getCmaterialvid(); - String stockorgid = plo.getCstockorgid(); - String stockorgvid = plo.getCstockorgvid(); - String prodDeptid = plo.getCproddeptid(); - String prodDeptvid = plo.getCproddeptvid(); - Integer posource = plo.getFposource(); - if (PoSourceEnum.COMPUT == posource && MMValueCheck.isEmpty(prodDeptid) - && MMValueCheck.isEmpty(prodDeptvid) && MMValueCheck.isNotEmpty(stockorgid) - && MMValueCheck.isNotEmpty(stockorgvid)) { - List vids = map.get(stockorgid); - if (null == vids) { - List list = new ArrayList(); - list.add(vid); - map.put(stockorgid, list); - } - else { - vids.add(vid); - } - } - String vsrcbid = plo.getVsrcbid();//来源单据表体主键 - int fdemandbill = plo.getFdemandbill();//需求来源 - if (PoSourceEnum.COMPUT == posource && fdemandbill == 1) { - vsrcbidList.add(vsrcbid); - } - } - if (vsrcbidList != null && vsrcbidList.size() > 0) { - String[] vsrcbids = vsrcbidList.toArray(new String[vsrcbidList.size()]); - Map pickmVOMap; - try { - pickmVOMap = NCLocator.getInstance().lookup(IPickmPubQueryService.class) - .queryPickm4Issue(vsrcbids); - } catch (BusinessException e) { - throw new RuntimeException(e); - } - pickmVOMap.getClass(); - for (AggregatedPoVO agg : vos) { - PoVO plo = agg.getParentVO(); - String vsrcbid = plo.getVsrcbid();//来源单据表体主键 - AggPickmVO aggPickmVOData = pickmVOMap.get(vsrcbid); - if (aggPickmVOData != null) { - PickmItemVO[] children = (PickmItemVO[]) aggPickmVOData.getChildren(PickmItemVO.class); - String vbdef5 = "";//合同编号 - String vbdef6 = "";//合同销售订单号 - String vbdef7 = "";//标前项目号 - for (PickmItemVO pickmItemVO : children) { - if (pickmItemVO.getCpickm_bid().equals(vsrcbid)) { - vbdef5 = pickmItemVO.getVbdef5();//合同编号 - vbdef6 = pickmItemVO.getVbdef6();//合同销售订单号 - vbdef7 = pickmItemVO.getVbdef7();//标前项目号 - } - } - plo.setVdef2(vbdef5);//合同编号 - plo.setVdef3(vbdef6);//合同销售订单号 - plo.setVdef4(vbdef7);//标前项目号 - } - } - } - Set stockorgids = map.keySet(); - Iterator i = stockorgids.iterator(); - while (i.hasNext()) { - String key = i.next(); - List vids = map.get(key); - Map results = - MaterialPubService.queryMaterialProduceInfoByPks(vids.toArray(new String[0]), key, new String[] { - MaterialProdVO.PK_PRODEPTDOC - }); - for (AggregatedPoVO agg : vos) { - PoVO plo = agg.getParentVO(); - String vid = plo.getCmaterialvid(); - String stockorgid = plo.getCstockorgid(); - String stockorgvid = plo.getCstockorgvid(); - Integer posource = plo.getFposource(); - if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(stockorgid) - && MMValueCheck.isNotEmpty(stockorgvid)) { - if (null != results) { - MaterialProdVO prodvo = results.get(vid); - if (null != prodvo) { - plo.setCproddeptid(prodvo.getPk_prodeptdoc());// 生产部门ID - } - } - } - } - } - // 根据生产部门ID查询设置VID - List proddeptids = new ArrayList(); - for (AggregatedPoVO agg : vos) { - PoVO plo = agg.getParentVO(); - String prodDeptid = plo.getCproddeptid(); - Integer posource = plo.getFposource(); - if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) { - proddeptids.add(prodDeptid); - } - } - IDeptPubService deptPubService = this.getDeptPubService(); - try { - HashMap results = deptPubService.getLastVIDSByDeptIDS(proddeptids.toArray(new String[0])); - if (null != results) { - for (AggregatedPoVO agg : vos) { - PoVO plo = agg.getParentVO(); - String prodDeptid = plo.getCproddeptid(); - Integer posource = plo.getFposource(); - if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) { - plo.setCproddeptvid(results.get(prodDeptid)); - } - } - } - } - catch (BusinessException e) { - ExceptionUtils.wrappException(e); - } + @Override + public void process(AggregatedPoVO[] vos) { + if (null == vos) { + return; + } + Map> map = new HashMap>(); + ArrayList vsrcbidList = new ArrayList<>(); + for (AggregatedPoVO agg : vos) { + PoVO plo = agg.getParentVO(); + String vid = plo.getCmaterialvid(); + String stockorgid = plo.getCstockorgid(); + String stockorgvid = plo.getCstockorgvid(); + String prodDeptid = plo.getCproddeptid(); + String prodDeptvid = plo.getCproddeptvid(); + Integer posource = plo.getFposource(); + if (PoSourceEnum.COMPUT == posource && MMValueCheck.isEmpty(prodDeptid) && MMValueCheck.isEmpty(prodDeptvid) + && MMValueCheck.isNotEmpty(stockorgid) && MMValueCheck.isNotEmpty(stockorgvid)) { + List vids = map.get(stockorgid); + if (null == vids) { + List list = new ArrayList(); + list.add(vid); + map.put(stockorgid, list); + } else { + vids.add(vid); + } + } + String vsrcbid = plo.getVsrcbid();// 来源单据表体主键 + // 需求来源为备料计划的才回写 + if (PoSourceEnum.COMPUT == posource && plo.getFdemandbill() != null && plo.getFdemandbill() == 1) { + vsrcbidList.add(vsrcbid); + } + } + if (vsrcbidList != null && vsrcbidList.size() > 0) { + String[] vsrcbids = vsrcbidList.toArray(new String[vsrcbidList.size()]); + Map pickmVOMap; + try { + pickmVOMap = NCLocator.getInstance().lookup(IPickmPubQueryService.class).queryPickm4Issue(vsrcbids); + } catch (BusinessException e) { + throw new RuntimeException(e); + } + pickmVOMap.getClass(); + for (AggregatedPoVO agg : vos) { + PoVO plo = agg.getParentVO(); + String vsrcbid = plo.getVsrcbid();// 来源单据表体主键 + AggPickmVO aggPickmVOData = pickmVOMap.get(vsrcbid); + if (aggPickmVOData != null) { + PickmItemVO[] children = (PickmItemVO[]) aggPickmVOData.getChildren(PickmItemVO.class); + String vbdef5 = "";// 合同编号 + String vbdef6 = "";// 合同销售订单号 + String vbdef7 = "";// 标前项目号 + for (PickmItemVO pickmItemVO : children) { + if (pickmItemVO.getCpickm_bid().equals(vsrcbid)) { + vbdef5 = pickmItemVO.getVbdef5();// 合同编号 + vbdef6 = pickmItemVO.getVbdef6();// 合同销售订单号 + vbdef7 = pickmItemVO.getVbdef7();// 标前项目号 + } + } + plo.setVdef2(vbdef5);// 合同编号 + plo.setVdef3(vbdef6);// 合同销售订单号 + plo.setVdef4(vbdef7);// 标前项目号 + } + } + } + Set stockorgids = map.keySet(); + Iterator i = stockorgids.iterator(); + while (i.hasNext()) { + String key = i.next(); + List vids = map.get(key); + Map results = MaterialPubService.queryMaterialProduceInfoByPks( + vids.toArray(new String[0]), key, new String[] { MaterialProdVO.PK_PRODEPTDOC }); + for (AggregatedPoVO agg : vos) { + PoVO plo = agg.getParentVO(); + String vid = plo.getCmaterialvid(); + String stockorgid = plo.getCstockorgid(); + String stockorgvid = plo.getCstockorgvid(); + Integer posource = plo.getFposource(); + if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(stockorgid) + && MMValueCheck.isNotEmpty(stockorgvid)) { + if (null != results) { + MaterialProdVO prodvo = results.get(vid); + if (null != prodvo) { + plo.setCproddeptid(prodvo.getPk_prodeptdoc());// 生产部门ID + } + } + } + } + } + // 根据生产部门ID查询设置VID + List proddeptids = new ArrayList(); + for (AggregatedPoVO agg : vos) { + PoVO plo = agg.getParentVO(); + String prodDeptid = plo.getCproddeptid(); + Integer posource = plo.getFposource(); + if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) { + proddeptids.add(prodDeptid); + } + } + IDeptPubService deptPubService = this.getDeptPubService(); + try { + HashMap results = deptPubService.getLastVIDSByDeptIDS(proddeptids.toArray(new String[0])); + if (null != results) { + for (AggregatedPoVO agg : vos) { + PoVO plo = agg.getParentVO(); + String prodDeptid = plo.getCproddeptid(); + Integer posource = plo.getFposource(); + if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) { + plo.setCproddeptvid(results.get(prodDeptid)); + } + } + } + } catch (BusinessException e) { + ExceptionUtils.wrappException(e); + } - } + } - private IDeptPubService getDeptPubService() { - return NCLocator.getInstance().lookup(IDeptPubService.class); - } + private IDeptPubService getDeptPubService() { + return NCLocator.getInstance().lookup(IDeptPubService.class); + } }