流程备料计划生成流程生产订单和请购单
This commit is contained in:
		
							parent
							
								
									03408aad46
								
							
						
					
					
						commit
						343d967e15
					
				|  | @ -0,0 +1,129 @@ | |||
| package nccloud.web.mmpac.pickm.action; | ||||
| 
 | ||||
| import nc.itf.ic.m4a.IGeneralInMaintain; | ||||
| import nc.itf.mmpac.pickm.IPickmQueryService; | ||||
| import nc.itf.pu.m20.IPraybillMaintain; | ||||
| import nc.itf.uap.pf.busiflow.PfButtonClickContext; | ||||
| import nc.util.mmf.busi.service.PFPubService; | ||||
| import nc.util.mmf.framework.base.MMValueCheck; | ||||
| import nc.vo.ic.m4a.entity.GeneralInVO; | ||||
| import nc.vo.mmpac.pickm.entity.AggPickmVO; | ||||
| import nc.vo.mmpac.pickm.entity.PickmItemVO; | ||||
| import nc.vo.pu.m20.entity.PraybillHeaderVO; | ||||
| import nc.vo.pu.m20.entity.PraybillVO; | ||||
| import nc.vo.pub.AggregatedValueObject; | ||||
| import nc.vo.pub.BusinessException; | ||||
| import nc.vo.pub.CircularlyAccessibleValueObject; | ||||
| import nc.vo.pub.ISuperVO; | ||||
| import nc.vo.pub.compiler.PfParameterVO; | ||||
| import nccloud.dto.mmpac.pickm.pub.entity.PickmQueryInfoDTO; | ||||
| import nccloud.framework.core.exception.ExceptionUtils; | ||||
| import nccloud.framework.core.json.IJson; | ||||
| import nccloud.framework.service.ServiceLocator; | ||||
| import nccloud.framework.web.action.itf.ICommonAction; | ||||
| import nccloud.framework.web.container.IRequest; | ||||
| import nccloud.framework.web.json.JsonFactory; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| 
 | ||||
| /** | ||||
|  * 备料计划转请购单 | ||||
|  */ | ||||
| public class PickmToBuyingreqAction implements ICommonAction { | ||||
|     @Override | ||||
|     public Object doAction(IRequest iRequest) { | ||||
|         String read = iRequest.read(); | ||||
|         IJson json = JsonFactory.create(); | ||||
|         try { | ||||
|             // 获取请求查询信息 | ||||
|             PickmQueryInfoDTO paramDTO = json.fromJson(read, PickmQueryInfoDTO.class); | ||||
|             // 获取主键 | ||||
|             String[] cpickmids = paramDTO.getCpickmids(); | ||||
| //            String[] cpickmbids = paramDTO.getCpickmbids(); | ||||
| //            if (MMValueCheck.isEmpty(cpickmids) && (null == cpickmbids || cpickmbids.length == 0)) { | ||||
| //                return null; | ||||
| //            } | ||||
|             AggPickmVO[] aggVOs = null; | ||||
|             IPickmQueryService service = ServiceLocator.find(IPickmQueryService.class); | ||||
|             if (MMValueCheck.isNotEmpty(cpickmids)) { | ||||
|                 aggVOs = service.queryBillsByPks(cpickmids); | ||||
|             } | ||||
|             if (MMValueCheck.isEmpty(aggVOs)) { | ||||
|                 /*@res "单据已被修改或删除,请刷新界面重新操作!"*/ | ||||
|                 ExceptionUtils.wrapBusinessException(nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("5008100_0", "05008100-0009")); | ||||
|             } | ||||
| //            AggPickmVO[] aggPickmVOS=processAggVOs(aggVOs); | ||||
|             // 转换数据 | ||||
|             PraybillVO[] prayVOs = convertToGeneralInVO(processAggVOs(aggVOs), null); | ||||
|             IPraybillMaintain maintain= ServiceLocator.find(IPraybillMaintain.class); | ||||
|             PraybillVO[] insertVos = maintain.insert(prayVOs); | ||||
|             Map<String, Object> returnMap = new HashMap<>(); | ||||
|             returnMap.put("data", insertVos); | ||||
|             returnMap.put("success", true); | ||||
|             return returnMap; | ||||
|         } catch (Exception e) { | ||||
|             ExceptionUtils.wrapException(e); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|     private PraybillVO[] convertToGeneralInVO(AggregatedValueObject[] sourceBillVOs, PfParameterVO srcParaVo) | ||||
|             throws BusinessException { | ||||
|         // 来源交易类型或单据类型,需要在单据类型中注册 | ||||
|         String srcBillOrTranstype = "55A3"; | ||||
|         // 目标交易类型或单据类型,需要在单据类型中注册 | ||||
|         String destBillOrTranstype = "20"; | ||||
|         // classifyMode int型参数,调用模式,参照PfButtonClickContext中定义,代码中调用为接口方式 ClassifyByItfdef | ||||
|         int classifyMode = PfButtonClickContext.ClassifyByItfdef; | ||||
|         PraybillVO[] inVOS = (PraybillVO[]) PFPubService.runChangeData(srcBillOrTranstype, destBillOrTranstype, sourceBillVOs, srcParaVo, classifyMode); | ||||
|         if (MMValueCheck.isEmpty(inVOS)) { | ||||
|             ExceptionUtils.wrapBusinessException("备料计划转换请购单失败"); | ||||
|         } | ||||
|         for (PraybillVO inVO : inVOS) { | ||||
|             // 其它入库单的仓库、交易类型取自【业务参数设置】的默认值 | ||||
|             PraybillHeaderVO head = inVO.getHVO(); | ||||
|             head.setCtrantypeid("0001A110000000001S1E"); | ||||
|             // head.setCwarehouseid(""); | ||||
|         } | ||||
|         return inVOS; | ||||
|     } | ||||
| 
 | ||||
|     public AggPickmVO[] processAggVOs(AggPickmVO[] aggVOs) { | ||||
|         Map<Object, List<AggPickmVO>> groupMap = new HashMap<>(); | ||||
| 
 | ||||
|         for (AggPickmVO vo : aggVOs) { | ||||
|             Object pk_org = vo.getParentVO().getPk_org(); | ||||
|             groupMap.computeIfAbsent(pk_org, k -> new ArrayList<>()).add(vo); | ||||
|         } | ||||
| 
 | ||||
|         List<AggPickmVO> resultList = new ArrayList<>(); | ||||
| 
 | ||||
|         for (Map.Entry<Object, List<AggPickmVO>> entry : groupMap.entrySet()) { | ||||
|             List<AggPickmVO> group = entry.getValue(); | ||||
| 
 | ||||
|             // 修改1:使用ISuperVO列表收集子对象 | ||||
|             List<PickmItemVO> mergedChildren = new ArrayList<PickmItemVO>(); | ||||
|             for (AggPickmVO vo : group) { | ||||
|                 PickmItemVO[] items = (PickmItemVO[]) vo.getChildren(PickmItemVO.class); | ||||
|                 if (items != null) { | ||||
|                     for (PickmItemVO child : items) { | ||||
|                         // CircularlyAccessibleValueObject 实现了 ISuperVO | ||||
|                         mergedChildren.add(child); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             AggPickmVO newVO = new AggPickmVO(); | ||||
|             newVO.setParent(group.get(0).getParentVO()); | ||||
|             // 修改2:转换为ISuperVO数组 | ||||
|             newVO.setChildren(PickmItemVO.class, mergedChildren.toArray(new PickmItemVO[0])); | ||||
| 
 | ||||
|             resultList.add(newVO); | ||||
|         } | ||||
| 
 | ||||
|         return resultList.toArray(new AggPickmVO[0]); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  | @ -0,0 +1,129 @@ | |||
| package nccloud.web.mmpac.pickm.action; | ||||
| 
 | ||||
| import nc.itf.mmpac.pickm.IPickmQueryService; | ||||
| import nc.itf.mmpac.pmo.pac0002.IPMOMaintainService; | ||||
| import nc.itf.pu.m20.IPraybillMaintain; | ||||
| import nc.itf.uap.pf.busiflow.PfButtonClickContext; | ||||
| import nc.util.mmf.busi.service.PFPubService; | ||||
| import nc.util.mmf.framework.base.MMValueCheck; | ||||
| import nc.vo.mmpac.pickm.entity.AggPickmVO; | ||||
| import nc.vo.mmpac.pickm.entity.PickmItemVO; | ||||
| import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; | ||||
| import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO; | ||||
| import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; | ||||
| import nc.vo.pu.m20.entity.PraybillHeaderVO; | ||||
| import nc.vo.pu.m20.entity.PraybillVO; | ||||
| import nc.vo.pub.AggregatedValueObject; | ||||
| import nc.vo.pub.BusinessException; | ||||
| import nc.vo.pub.compiler.PfParameterVO; | ||||
| import nccloud.dto.mmpac.pickm.pub.entity.PickmQueryInfoDTO; | ||||
| import nccloud.framework.core.exception.ExceptionUtils; | ||||
| import nccloud.framework.core.json.IJson; | ||||
| import nccloud.framework.service.ServiceLocator; | ||||
| import nccloud.framework.web.action.itf.ICommonAction; | ||||
| import nccloud.framework.web.container.IRequest; | ||||
| import nccloud.framework.web.json.JsonFactory; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| 
 | ||||
| public class PickmToPmo implements ICommonAction { | ||||
|     @Override | ||||
|     public Object doAction(IRequest iRequest) { | ||||
|         String read = iRequest.read(); | ||||
|         IJson json = JsonFactory.create(); | ||||
|         try { | ||||
|             // 获取请求查询信息 | ||||
|             PickmQueryInfoDTO paramDTO = json.fromJson(read, PickmQueryInfoDTO.class); | ||||
|             // 获取主键 | ||||
|             String[] cpickmids = paramDTO.getCpickmids(); | ||||
| //            String[] cpickmbids = paramDTO.getCpickmbids(); | ||||
| //            if (MMValueCheck.isEmpty(cpickmids) && (null == cpickmbids || cpickmbids.length == 0)) { | ||||
| //                return null; | ||||
| //            } | ||||
|             AggPickmVO[] aggVOs = null; | ||||
|             IPickmQueryService service = ServiceLocator.find(IPickmQueryService.class); | ||||
|             if (MMValueCheck.isNotEmpty(cpickmids)) { | ||||
|                 aggVOs = service.queryBillsByPks(cpickmids); | ||||
|             } | ||||
|             if (MMValueCheck.isEmpty(aggVOs)) { | ||||
|                 /*@res "单据已被修改或删除,请刷新界面重新操作!"*/ | ||||
|                 ExceptionUtils.wrapBusinessException(nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("5008100_0", "05008100-0009")); | ||||
|             } | ||||
| 
 | ||||
| 
 | ||||
|             PMOAggVO[] prayVOs = convertToGeneralInVO(processAggVOs(aggVOs), null); | ||||
|             IPMOMaintainService maintain= ServiceLocator.find(IPMOMaintainService.class); | ||||
|             PMOAggVO[] insertVos = maintain.insert(prayVOs); | ||||
|             Map<String, Object> returnMap = new HashMap<>(); | ||||
|             returnMap.put("data", insertVos); | ||||
|             returnMap.put("success", true); | ||||
|             return returnMap; | ||||
|         } catch (Exception e) { | ||||
|             ExceptionUtils.wrapException(e); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|     private PMOAggVO[] convertToGeneralInVO(AggregatedValueObject[] sourceBillVOs, PfParameterVO srcParaVo) | ||||
|             throws BusinessException { | ||||
|         // 来源交易类型或单据类型,需要在单据类型中注册 | ||||
|         String srcBillOrTranstype = "55A3"; | ||||
|         // 目标交易类型或单据类型,需要在单据类型中注册 | ||||
|         String destBillOrTranstype = "55A2"; | ||||
|         // classifyMode int型参数,调用模式,参照PfButtonClickContext中定义,代码中调用为接口方式 ClassifyByItfdef | ||||
|         int classifyMode = PfButtonClickContext.ClassifyByItfdef; | ||||
|         PMOAggVO[] inVOS = (PMOAggVO[]) PFPubService.runChangeData(srcBillOrTranstype, destBillOrTranstype, sourceBillVOs, srcParaVo, classifyMode); | ||||
|         if (MMValueCheck.isEmpty(inVOS)) { | ||||
|             ExceptionUtils.wrapBusinessException("备料计划转换流程生产订单失败"); | ||||
|         } | ||||
|         for (PMOAggVO inVO : inVOS) { | ||||
|             // 其它入库单的仓库、交易类型取自【业务参数设置】的默认值 | ||||
|             PMOHeadVO head = inVO.getParentVO(); | ||||
|             head.setCtrantypeid("0001A110000000001S1E"); | ||||
| 
 | ||||
|             for (PMOItemVO itemVO: inVO.getChildrenVO()){ | ||||
| 
 | ||||
|             } | ||||
|             // head.setCwarehouseid(""); | ||||
|         } | ||||
|         return inVOS; | ||||
|     } | ||||
| 
 | ||||
|     public AggPickmVO[] processAggVOs(AggPickmVO[] aggVOs) { | ||||
|         Map<Object, List<AggPickmVO>> groupMap = new HashMap<>(); | ||||
| 
 | ||||
|         for (AggPickmVO vo : aggVOs) { | ||||
|             Object pk_org = vo.getParentVO().getPk_org(); | ||||
|             groupMap.computeIfAbsent(pk_org, k -> new ArrayList<>()).add(vo); | ||||
|         } | ||||
| 
 | ||||
|         List<AggPickmVO> resultList = new ArrayList<>(); | ||||
| 
 | ||||
|         for (Map.Entry<Object, List<AggPickmVO>> entry : groupMap.entrySet()) { | ||||
|             List<AggPickmVO> group = entry.getValue(); | ||||
| 
 | ||||
|             // 修改1:使用ISuperVO列表收集子对象 | ||||
|             List<PickmItemVO> mergedChildren = new ArrayList<PickmItemVO>(); | ||||
|             for (AggPickmVO vo : group) { | ||||
|                 PickmItemVO[] items = (PickmItemVO[]) vo.getChildren(PickmItemVO.class); | ||||
|                 if (items != null) { | ||||
|                     for (PickmItemVO child : items) { | ||||
|                         // CircularlyAccessibleValueObject 实现了 ISuperVO | ||||
|                         mergedChildren.add(child); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             AggPickmVO newVO = new AggPickmVO(); | ||||
|             newVO.setParent(group.get(0).getParentVO()); | ||||
|             // 修改2:转换为ISuperVO数组 | ||||
|             newVO.setChildren(PickmItemVO.class, mergedChildren.toArray(new PickmItemVO[0])); | ||||
| 
 | ||||
|             resultList.add(newVO); | ||||
|         } | ||||
| 
 | ||||
|         return resultList.toArray(new AggPickmVO[0]); | ||||
|     } | ||||
| } | ||||
|  | @ -257,6 +257,9 @@ | |||
| 			<action>mmpac.pickm.replaceAutoMatch</action> | ||||
| 			<action>mmpac.pickm.queryByCond</action> | ||||
| 			<action>mmpac.pickm.convertOtherIn</action> | ||||
| 
 | ||||
| 			<action>mmpac.pickm.buyingreq</action> | ||||
| 			<action>mmpac.pickm.pom</action> | ||||
| 			<action>mmpac.pickm.pickmItemsQuery</action> | ||||
| 		</actions> | ||||
| 	</authorize> | ||||
|  |  | |||
|  | @ -161,4 +161,16 @@ | |||
| 		<clazz>nccloud.web.mmpac.pickm.action.PickmToGeneralInAction | ||||
| 		</clazz> | ||||
| 	</action> | ||||
| 	<action> | ||||
| 		<name>mmpac.pickm.buyingreq</name> | ||||
| 		<label>备料计划-请购</label> | ||||
| 		<clazz>nccloud.web.mmpac.pickm.action.PickmToBuyingreqAction | ||||
| 		</clazz> | ||||
| 	</action> | ||||
| 	<action> | ||||
| 		<name>mmpac.pickm.pom</name> | ||||
| 		<label>备料计划-请购</label> | ||||
| 		<clazz>nccloud.web.mmpac.pickm.action.PickmToPmo | ||||
| 		</clazz> | ||||
| 	</action> | ||||
| </actions> | ||||
|  | @ -0,0 +1,74 @@ | |||
| // | ||||
| // Source code recreated from a .class file by IntelliJ IDEA | ||||
| // (powered by FernFlower decompiler) | ||||
| // | ||||
| 
 | ||||
| package nc.bs.mmpac.pickm.rule; | ||||
| 
 | ||||
| 
 | ||||
| import nc.impl.pubapp.pattern.rule.IRule; | ||||
| import nc.itf.ic.m4a.IGeneralInMaintain; | ||||
| import nc.itf.pu.m20.IPraybillMaintain; | ||||
| import nc.itf.uap.pf.busiflow.PfButtonClickContext; | ||||
| import nc.util.mmf.busi.service.PFPubService; | ||||
| import nc.util.mmf.framework.base.MMValueCheck; | ||||
| import nc.vo.mmpac.pickm.entity.AggPickmVO; | ||||
| import nc.vo.pu.m20.entity.PraybillHeaderVO; | ||||
| import nc.vo.pub.AggregatedValueObject; | ||||
| import nc.vo.pub.BusinessException; | ||||
| import nc.vo.pub.compiler.PfParameterVO; | ||||
| import nc.vo.pu.m20.entity.PraybillVO; | ||||
| import nccloud.framework.core.exception.ExceptionUtils; | ||||
| import nccloud.framework.service.ServiceLocator; | ||||
| 
 | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
| 
 | ||||
| public class ToBuyingreqRule implements IRule<AggPickmVO> { | ||||
|     public ToBuyingreqRule() { | ||||
|     } | ||||
| 
 | ||||
|     public void process(AggPickmVO[] aggVOs) { | ||||
|         if (!MMValueCheck.isEmpty(aggVOs)) { | ||||
|             try { | ||||
|                 PraybillVO[] prayVOs = convertToGeneralInVO(aggVOs, null); | ||||
|                 IPraybillMaintain maintain= ServiceLocator.find(IPraybillMaintain.class); | ||||
|                 PraybillVO[] insertVos = maintain.insert(prayVOs); | ||||
|                 Map<String, Object> returnMap = new HashMap<>(); | ||||
|                 returnMap.put("data", insertVos); | ||||
|                 returnMap.put("success", true); | ||||
|             } catch (BusinessException e) { | ||||
|                 throw new RuntimeException(e); | ||||
|             } | ||||
| 
 | ||||
|         } | ||||
|     } | ||||
|     /** | ||||
|      * 方法功能描述:批量执行VO转换,若来源及目标单据类型没有注册或传入来源单据不能转换,则抛出业务异常 | ||||
|      * | ||||
|      * @param sourceBillVOs AggregatedValueObject[]型参数,来源单据VO数组 | ||||
|      * @param srcParaVo     PfParameterVO型参数,平台的运行参数类,一般为NULL即可 | ||||
|      * @return AggregatedValueObject[]型VO转换后的目标单据数组 | ||||
|      * @throws BusinessException 若VO转换失败,则抛出业务异常 | ||||
|      */ | ||||
|     private PraybillVO[] convertToGeneralInVO(AggregatedValueObject[] sourceBillVOs, PfParameterVO srcParaVo) | ||||
|             throws BusinessException { | ||||
|         // 来源交易类型或单据类型,需要在单据类型中注册 | ||||
|         String srcBillOrTranstype = "55A3"; | ||||
|         // 目标交易类型或单据类型,需要在单据类型中注册 | ||||
|         String destBillOrTranstype = "20"; | ||||
|         // classifyMode int型参数,调用模式,参照PfButtonClickContext中定义,代码中调用为接口方式 ClassifyByItfdef | ||||
|         int classifyMode = PfButtonClickContext.ClassifyByItfdef; | ||||
|         PraybillVO[] inVOS = (PraybillVO[]) PFPubService.runChangeData(srcBillOrTranstype, destBillOrTranstype, sourceBillVOs, srcParaVo, classifyMode); | ||||
|         if (MMValueCheck.isEmpty(inVOS)) { | ||||
|             ExceptionUtils.wrapBusinessException("备料计划转换请购单失败"); | ||||
|         } | ||||
|         for (PraybillVO inVO : inVOS) { | ||||
|             // 其它入库单的仓库、交易类型取自【业务参数设置】的默认值 | ||||
|             PraybillHeaderVO head = inVO.getHVO(); | ||||
|             head.setCtrantypeid("0001A110000000001S1E"); | ||||
|             // head.setCwarehouseid(""); | ||||
|         } | ||||
|         return inVOS; | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,81 @@ | |||
| // | ||||
| // Source code recreated from a .class file by IntelliJ IDEA | ||||
| // (powered by FernFlower decompiler) | ||||
| // | ||||
| 
 | ||||
| package nc.bs.mmpac.pickm.rule; | ||||
| 
 | ||||
| 
 | ||||
| import nc.impl.pubapp.pattern.rule.IRule; | ||||
| import nc.itf.mmpac.pmo.pac0002.IPMOMaintainService; | ||||
| import nc.itf.pu.m20.IPraybillMaintain; | ||||
| import nc.itf.uap.pf.busiflow.PfButtonClickContext; | ||||
| import nc.util.mmf.busi.service.PFPubService; | ||||
| import nc.util.mmf.framework.base.MMValueCheck; | ||||
| import nc.vo.mmpac.pickm.entity.AggPickmVO; | ||||
| import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; | ||||
| import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO; | ||||
| import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; | ||||
| import nc.vo.pu.m20.entity.PraybillHeaderVO; | ||||
| import nc.vo.pu.m20.entity.PraybillVO; | ||||
| import nc.vo.pub.AggregatedValueObject; | ||||
| import nc.vo.pub.BusinessException; | ||||
| import nc.vo.pub.compiler.PfParameterVO; | ||||
| import nccloud.framework.core.exception.ExceptionUtils; | ||||
| import nccloud.framework.service.ServiceLocator; | ||||
| 
 | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
| 
 | ||||
| public class ToPmoRule implements IRule<AggPickmVO> { | ||||
|     public ToPmoRule() { | ||||
|     } | ||||
| 
 | ||||
|     public void process(AggPickmVO[] aggVOs) { | ||||
|         if (!MMValueCheck.isEmpty(aggVOs)) { | ||||
|             try { | ||||
|                 PMOAggVO[] prayVOs = convertToGeneralInVO(aggVOs, null); | ||||
|                 IPMOMaintainService maintain= ServiceLocator.find(IPMOMaintainService.class); | ||||
|                 PMOAggVO[] insertVos = maintain.insert(prayVOs); | ||||
|                 Map<String, Object> returnMap = new HashMap<>(); | ||||
|                 returnMap.put("data", insertVos); | ||||
|                 returnMap.put("success", true); | ||||
|             } catch (BusinessException e) { | ||||
|                 throw new RuntimeException(e); | ||||
|             } | ||||
| 
 | ||||
|         } | ||||
|     } | ||||
|     /** | ||||
|      * 方法功能描述:批量执行VO转换,若来源及目标单据类型没有注册或传入来源单据不能转换,则抛出业务异常 | ||||
|      * | ||||
|      * @param sourceBillVOs AggregatedValueObject[]型参数,来源单据VO数组 | ||||
|      * @param srcParaVo     PfParameterVO型参数,平台的运行参数类,一般为NULL即可 | ||||
|      * @return AggregatedValueObject[]型VO转换后的目标单据数组 | ||||
|      * @throws BusinessException 若VO转换失败,则抛出业务异常 | ||||
|      */ | ||||
|     private PMOAggVO[] convertToGeneralInVO(AggregatedValueObject[] sourceBillVOs, PfParameterVO srcParaVo) | ||||
|             throws BusinessException { | ||||
|         // 来源交易类型或单据类型,需要在单据类型中注册 | ||||
|         String srcBillOrTranstype = "55A3"; | ||||
|         // 目标交易类型或单据类型,需要在单据类型中注册 | ||||
|         String destBillOrTranstype = "55A2"; | ||||
|         // classifyMode int型参数,调用模式,参照PfButtonClickContext中定义,代码中调用为接口方式 ClassifyByItfdef | ||||
|         int classifyMode = PfButtonClickContext.ClassifyByItfdef; | ||||
|         PMOAggVO[] inVOS = (PMOAggVO[]) PFPubService.runChangeData(srcBillOrTranstype, destBillOrTranstype, sourceBillVOs, srcParaVo, classifyMode); | ||||
|         if (MMValueCheck.isEmpty(inVOS)) { | ||||
|             ExceptionUtils.wrapBusinessException("备料计划转换流程生产订单失败"); | ||||
|         } | ||||
|         for (PMOAggVO inVO : inVOS) { | ||||
|             // 其它入库单的仓库、交易类型取自【业务参数设置】的默认值 | ||||
|             PMOHeadVO head = inVO.getParentVO(); | ||||
|             head.setCtrantypeid("0001A110000000001S1E"); | ||||
| 
 | ||||
|             for (PMOItemVO itemVO: inVO.getChildrenVO()){ | ||||
| 
 | ||||
|             } | ||||
|             // head.setCwarehouseid(""); | ||||
|         } | ||||
|         return inVOS; | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue