生产订单推送高压mes优化取值
This commit is contained in:
		
							parent
							
								
									9d13298270
								
							
						
					
					
						commit
						214cfc40f7
					
				|  | @ -135,12 +135,30 @@ public class AfterApproveSyncHighpressureMesRule implements IRule<PMOAggVO> { | |||
|                 // 日期信息 | ||||
|                 itemObj.put("requiredDate", item.getTrequiredate().toString()); // 需用日期 | ||||
|                 // 上级-上一个生产订单的信息 | ||||
|                 itemObj.put("bipParentProcessProductionOrderId", null); | ||||
|                 itemObj.put("bipParentProcessProductionOrderRowNum", null); | ||||
|                 String vsrccode = findPrevOrder(cpmohid, vbillcode); | ||||
|                 if (vsrccode != null && !vsrccode.isEmpty()) { | ||||
|                     itemObj.put("bipParentProcessProductionOrderId", vsrccode);// 上一个生产订单单号 | ||||
| 
 | ||||
|                 if( null !=item.getVparentbillcode()){ | ||||
|                     itemObj.put("bipParentProcessProductionOrderId",  item.getVparentbillcode()); | ||||
|                     itemObj.put("bipParentProcessProductionOrderRowNum", item.getVparentmorowno()); | ||||
|                 }else{ | ||||
|                     if (item.getVsrcid() == null) { | ||||
|                         itemObj.put("bipParentProcessProductionOrderId", null); | ||||
|                         itemObj.put("bipParentProcessProductionOrderRowNum", null); | ||||
|                         // itemObj.put("bipParentProcessProductionOrderId", vsrccode);// 上一个生产订单单号 | ||||
|                     }else{ | ||||
|                         Map<String,Object> vsrccode = findPrevOrder(item.getVsrcid(),item.getVsrctype()); | ||||
|                         if(null != vsrccode){ | ||||
|                             itemObj.put("bipParentProcessProductionOrderId", vsrccode.get("code")); | ||||
|                             itemObj.put("bipParentProcessProductionOrderRowNum", vsrccode.get("rowno")); | ||||
|                         }else{ | ||||
|                             itemObj.put("bipParentProcessProductionOrderId", null); | ||||
|                             itemObj.put("bipParentProcessProductionOrderRowNum", null); | ||||
|                         } | ||||
| 
 | ||||
|                     } | ||||
| 
 | ||||
|                 } | ||||
| 
 | ||||
| 
 | ||||
|                 // 顶级-源头单据信息 | ||||
|                 itemObj.put("bipOriginProcessProductionOrderId", item.getVfirstcode()); | ||||
|                 itemObj.put("bipOriginProcessProductionOrderRowNum", item.getVfirstrowno()); | ||||
|  | @ -222,38 +240,25 @@ public class AfterApproveSyncHighpressureMesRule implements IRule<PMOAggVO> { | |||
|     /** | ||||
|      * 查询上一个生产订单的信息 | ||||
|      * | ||||
|      * @param hid       当前生产订单的ID | ||||
|      * @param vbillcode 当前生产订单的单号 | ||||
|      * @param srcid       来源单据子表 | ||||
|      * @param 	vsrctrantype       来源单据类型 | ||||
|      */ | ||||
|     private String findPrevOrder(String hid, String vbillcode) throws BusinessException { | ||||
|         String preCode = null; | ||||
|         BillFlowModel billFlow = new BillFlowModel(); | ||||
|         LightBillVO vo = billFlow.querySourceBillVO(hid, MMBillType.ProduceOrder.getCode(), LinkQueryType.OnlyQueryBill); | ||||
|         if (vo == null) { | ||||
|     private Map<String,Object> findPrevOrder(String srcid,String vsrctrantype) throws BusinessException { | ||||
|         // 查询计划订单 | ||||
|         Map<String,Object> plo=new HashMap<>(); | ||||
|         while(vsrctrantype.equals("55B4") ) { | ||||
|             String ploSql="SELECT vsrctype,vsrcid,VSRCBID  FROM mm_plo WHERE cpoid='"+srcid+"'\n"; | ||||
|             plo = (Map<String, Object>) baseDAO.executeQuery(ploSql, new MapProcessor()); | ||||
|             vsrctrantype = plo.get("vsrctype").toString(); | ||||
|             srcid = plo.get("vsrcid").toString(); | ||||
|         } | ||||
|         if(vsrctrantype.equals("55A3")){ | ||||
|             String ploSql="SELECT  vsourcemoid,vsourcemorowcode as rowno,vsourcemocode as code FROM mm_pickm WHERE  cpickmid='"+srcid+"'\n"; | ||||
|             plo = (Map<String, Object>) baseDAO.executeQuery(ploSql, new MapProcessor()); | ||||
|             return plo; | ||||
|         }else{ | ||||
|             return null; | ||||
|         } | ||||
|         LightBillVO[] sourceBillVOs = vo.getSourceBillVOs(); | ||||
|         if (sourceBillVOs == null || sourceBillVOs.length == 0) { | ||||
|             return null; | ||||
|         } | ||||
|         List<BillFlowVO> list = this.dealVO(vo); | ||||
|         if (list == null || list.isEmpty()) { | ||||
|             return null; | ||||
|         } | ||||
|         for (BillFlowVO billFlowVO : list) { | ||||
|             // 判断是否为来源单据 -1来源单据 0本单据 1下游单据 | ||||
|             if ("-1".equals(billFlowVO.getIsForward())) { | ||||
|                 LightBillVO lightBillVO = billFlowVO.getLightBillVO(); | ||||
|                 String billType = lightBillVO.getType(); | ||||
|                 String billCode = lightBillVO.getCode(); | ||||
|                 // 不断向下寻找流程生产订单,直到找到最后一个流程生产订单 | ||||
|                 if ("55A2".equals(billType) && !billCode.equals(vbillcode)) { | ||||
|                     preCode = billCode; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         NCCForUAPLogger.debug("preCode = " + preCode); | ||||
|         return preCode; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue