合并备料计划生成出库申请单-2005适配2312
This commit is contained in:
		
							parent
							
								
									d9c533b614
								
							
						
					
					
						commit
						dc913b0687
					
				|  | @ -0,0 +1,10 @@ | ||||||
|  | <?xml version='1.0' encoding='gb2312'?> | ||||||
|  | <module name="ic"> | ||||||
|  | 	<public> | ||||||
|  | 	    <!-- 备料计划转出库申请 --> | ||||||
|  | 	    <component priority="0" singleton="true"  remote="false" tx="NONE"  supportAlias="true"> | ||||||
|  | 	      <interface>nccloud.pubitf.ic.outbound.service.IOutboundTransferVoService1</interface> | ||||||
|  | 	      <implementation>nccloud.pubimpl.ic.outbound.service.OutboundTransferVoServiceImpl1</implementation> | ||||||
|  | 	    </component> | ||||||
|  | 	</public> | ||||||
|  | </module> | ||||||
|  | @ -0,0 +1,109 @@ | ||||||
|  | package nccloud.web.ic.outbound.sapplybill.action; | ||||||
|  | 
 | ||||||
|  | import nc.pub.templet.converter.util.helper.ExceptionUtils; | ||||||
|  | import nc.pubitf.pu.m422x.ic.m4455.IQuery422XFor4455; | ||||||
|  | import nc.ui.querytemplate.querytree.IQueryScheme; | ||||||
|  | import nc.vo.ic.pub.util.StringUtil; | ||||||
|  | import nc.vo.ic.pub.util.ValueCheckUtil; | ||||||
|  | import nc.vo.pu.m422x.entity.PickmReqAppVO; | ||||||
|  | import nc.vo.pub.BusinessException; | ||||||
|  | import nc.vo.scmpub.res.billtype.ICBillType; | ||||||
|  | import nccloud.dto.scmpub.page.entity.SCMQueryTreeFormatVO; | ||||||
|  | import nccloud.framework.core.json.IJson; | ||||||
|  | import nccloud.framework.service.ServiceLocator; | ||||||
|  | import nccloud.framework.web.action.itf.ICommonAction; | ||||||
|  | import nccloud.framework.web.container.ClientInfo; | ||||||
|  | import nccloud.framework.web.container.IRequest; | ||||||
|  | import nccloud.framework.web.container.SessionContext; | ||||||
|  | import nccloud.framework.web.json.JsonFactory; | ||||||
|  | import nccloud.framework.web.ui.pattern.billgrid.BillGrid; | ||||||
|  | import nccloud.framework.web.ui.pattern.billgrid.BillGridOperator; | ||||||
|  | import nccloud.nc.vo.pub.pf.PullBillInfoVO; | ||||||
|  | import nccloud.pubitf.ic.pub.service.IICPubQueryService; | ||||||
|  | import nccloud.pubitf.platform.query.INCCloudQueryService; | ||||||
|  | import nccloud.pubitf.riart.businesstype.IPFBusinessTypeService; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 查询备料计划的数据-出库申请单拉单使用 | ||||||
|  |  * | ||||||
|  |  * @author mzr | ||||||
|  |  * @date 2024/12/21 | ||||||
|  |  */ | ||||||
|  | public class QueryPickmFor4455Action implements ICommonAction { | ||||||
|  |     public Object doAction(IRequest request) { | ||||||
|  |         String read = request.read(); | ||||||
|  |         IJson json = JsonFactory.create(); | ||||||
|  |         SCMQueryTreeFormatVO info = (SCMQueryTreeFormatVO) json.fromJson(read, SCMQueryTreeFormatVO.class); | ||||||
|  | 
 | ||||||
|  |         INCCloudQueryService queryutil = (INCCloudQueryService) ServiceLocator.find(INCCloudQueryService.class); | ||||||
|  |         IQueryScheme scheme = queryutil.convertCondition(info.getQueryInfo()); | ||||||
|  | 
 | ||||||
|  |         /*Object transtype = info.getQueryInfo().getUserdefObj().get("transtype"); | ||||||
|  |         PullBillInfoVO[] refbillinfos = queryRefPara(transtype); | ||||||
|  |         appendRefWhr(scheme, refbillinfos);*/ | ||||||
|  | 
 | ||||||
|  |         IICPubQueryService<?, ?> schemeservice = (IICPubQueryService) ServiceLocator.find(IICPubQueryService.class); | ||||||
|  | 
 | ||||||
|  |         scheme = schemeservice.appendOrgPermission(scheme); | ||||||
|  | 
 | ||||||
|  |         PickmReqAppVO[] vos = null; | ||||||
|  | 
 | ||||||
|  |         IQuery422XFor4455 queryService = (IQuery422XFor4455) ServiceLocator.find(IQuery422XFor4455.class); | ||||||
|  |         try { | ||||||
|  |             vos = queryService.queryPickmAppsFor4455(scheme); | ||||||
|  |         } catch (BusinessException e) { | ||||||
|  |             ExceptionUtils.wrapException(e); | ||||||
|  |         } | ||||||
|  |         if (null == vos) { | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |         // VO与UI数据格式转换 卡片列表:BillGridOperator | ||||||
|  |         BillGridOperator operator = new BillGridOperator(info.getTempletid(), info.getPageCode()); | ||||||
|  |         BillGrid[] grids = operator.toBillGrids(vos); | ||||||
|  |         /*if (grids != null) { | ||||||
|  |             StoreReqScaleUtil util = new StoreReqScaleUtil(); | ||||||
|  |             for (BillGrid billGrid : grids) { | ||||||
|  |                 util.processGrid(billGrid, false); | ||||||
|  |             } | ||||||
|  |         }*/ | ||||||
|  |         return grids; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void appendRefWhr(IQueryScheme scheme, PullBillInfoVO[] refbillinfos) { | ||||||
|  |         if (null == refbillinfos || refbillinfos.length == 0) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         for (PullBillInfoVO info : refbillinfos) { | ||||||
|  |             if ("422X".equals(info.getSrc_billtype())) { | ||||||
|  |                 List<String> busitypes = info.getBusitypes(); | ||||||
|  |                 if (!ValueCheckUtil.isNullORZeroLength(busitypes)) { | ||||||
|  |                     scheme.put("busitypearray", busitypes.toArray(new String[0])); | ||||||
|  |                     List<String> tranList = info.getTranstypes(); | ||||||
|  |                     if (!ValueCheckUtil.isNullORZeroLength(tranList) | ||||||
|  |                             && !StringUtil.isSEmptyOrNull((String) tranList.get(0))) { | ||||||
|  |                         scheme.put("transtypearray", tranList.toArray(new String[0])); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private PullBillInfoVO[] queryRefPara(Object transtype) { | ||||||
|  |         ClientInfo clientinfo = SessionContext.getInstance().getClientInfo(); | ||||||
|  |         String groupId = clientinfo.getPk_group(); | ||||||
|  |         String userId = clientinfo.getUserid(); | ||||||
|  | 
 | ||||||
|  |         IPFBusinessTypeService pfservice = (IPFBusinessTypeService) ServiceLocator.find(IPFBusinessTypeService.class); | ||||||
|  |         PullBillInfoVO[] refbillinfos = null; | ||||||
|  |         try { | ||||||
|  |             refbillinfos = pfservice.getPullBillInfo(ICBillType.SapplyBill.getCode(), | ||||||
|  |                     (null == transtype) ? null : (String) transtype, groupId, userId); | ||||||
|  |         } catch (BusinessException e) { | ||||||
|  |             ExceptionUtils.wrapException(e); | ||||||
|  |         } | ||||||
|  |         return refbillinfos; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,48 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nccloud.web.ic.outbound.sapplybill.action; | ||||||
|  | 
 | ||||||
|  | import nc.vo.ic.m4455.entity.SapplyBillVO; | ||||||
|  | import nccloud.dto.ic.pub.entity.TransferInfo; | ||||||
|  | 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 nccloud.framework.web.ui.pattern.billcard.BillCard; | ||||||
|  | import nccloud.framework.web.ui.pattern.billcard.BillCardOperator; | ||||||
|  | import nccloud.pubitf.ic.outbound.service.IOutboundTransferVoService1; | ||||||
|  | import nccloud.web.ic.pub.precision.ICBaseBillcardPrecisionHandler; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * ±¸Áϼƻ®×ª³ö¿âÉêÇë | ||||||
|  |  * | ||||||
|  |  * @author mzr | ||||||
|  |  * @date 2024/12/25 | ||||||
|  |  */ | ||||||
|  | public class TransToSapplyBill1Action implements ICommonAction { | ||||||
|  |     public TransToSapplyBill1Action() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public Object doAction(IRequest request) { | ||||||
|  |         String read = request.read(); | ||||||
|  |         IJson json = JsonFactory.create(); | ||||||
|  |         TransferInfo transInfo = (TransferInfo) json.fromJson(read, TransferInfo.class); | ||||||
|  |         SapplyBillVO[] vos = null; | ||||||
|  |         IOutboundTransferVoService1 service = (IOutboundTransferVoService1) ServiceLocator.find(IOutboundTransferVoService1.class); | ||||||
|  |         vos = service.transPickmTo4455(transInfo); | ||||||
|  |         BillCardOperator operator = new BillCardOperator(transInfo.getPagecode()); | ||||||
|  |         BillCard[] cards = new BillCard[vos.length]; | ||||||
|  | 
 | ||||||
|  |         for (int i = 0; i < vos.length; ++i) { | ||||||
|  |             cards[i] = operator.toCard(vos[i]); | ||||||
|  |             ICBaseBillcardPrecisionHandler handler = new SapplyBillPrecisionHandler(cards[i]); | ||||||
|  |             handler.process(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return cards; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,110 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8" standalone="no" ?> | ||||||
|  | <actions> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.query</name> | ||||||
|  |         <label>出库申请单查询</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillQueryAction</clazz> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.queryPage</name> | ||||||
|  |         <label>出库申请单查询</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillPageQueryAction</clazz> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.maintain</name> | ||||||
|  |         <label>出库申请单删除、提交、收回</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillMaintainAction</clazz> | ||||||
|  | 		<btncode>Commit,UnCommit,Delete</btncode> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.save</name> | ||||||
|  |         <label>出库申请单保存</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillSaveAction</clazz> | ||||||
|  | 		<btncode>Save</btncode> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.saveAndCommit</name> | ||||||
|  |         <label>出库申请单保存提交</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillSaveCommitAction</clazz> | ||||||
|  | 		<btncode>SaveCommit, Commit</btncode> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.canbecopy</name> | ||||||
|  |         <label>出库申请单查询是否可以复制</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillBeforeCopyAction</clazz> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.copy</name> | ||||||
|  |         <label>出库申请单复制</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillCopyAction</clazz> | ||||||
|  | 		<btncode>Copy</btncode> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.cardquery</name> | ||||||
|  |         <label>出库申请单卡片态查询</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillQueryCardAction</clazz> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.query422x</name> | ||||||
|  |         <label>拉单物资需求申请单查询</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.Query422XFor4455Action</clazz> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.transfervo</name> | ||||||
|  |         <label>物资需求申请单-转单</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.TransToSapplyBillAction</clazz> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.queryPickm</name> | ||||||
|  |         <label>拉单备料计划查询</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.QueryPickmFor4455Action</clazz> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.transfervo1</name> | ||||||
|  |         <label>备料计划申请单-转单</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.TransToSapplyBill1Action</clazz> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.print</name> | ||||||
|  |         <label>出库申请单打印</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillPrintAction</clazz> | ||||||
|  | 		<btncode>Print,output,Print_list</btncode> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.combine</name> | ||||||
|  |         <label>出库申请单合并显示</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillCombineAction</clazz> | ||||||
|  | 		<btncode>CombinePrint</btncode> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.checkprem</name> | ||||||
|  | 		<label>出库申请单修改、打印校验权限</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillDataPermissionAction</clazz> | ||||||
|  | 		<btncode>Edit,Print</btncode> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.headAfterEdit</name> | ||||||
|  |         <label>出库申请单表头区域改变事件</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.events.SapplyBillHeadAfterEventAction</clazz> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.bodyAfterEdit</name> | ||||||
|  |         <label>出库申请单表体区域改变事件</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.events.SapplyBillBodyAfterEditAction</clazz> | ||||||
|  |     </action> | ||||||
|  |     <action> | ||||||
|  |         <name>ic.sapplybill.rowOpenClose</name> | ||||||
|  |         <label>出库申请单表体行打开关闭操作</label> | ||||||
|  |         <clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillRowOpenCloseAction</clazz> | ||||||
|  | 	</action> | ||||||
|  | 	<action> | ||||||
|  |   		<name>ic.sapplybill.billOpenClose</name> | ||||||
|  |   		<label>出库申请单整单打开关闭操作</label> | ||||||
|  |   		<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillOpenCloseAction</clazz> | ||||||
|  |  	</action> | ||||||
|  | 	<action> | ||||||
|  | 		<name>ic.sapplybill.ntpLinkList</name> | ||||||
|  | 		<label>预算联查出库申请列表数据加载</label> | ||||||
|  | 		<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillNtpLinkListAction</clazz> | ||||||
|  |     </action> | ||||||
|  | </actions> | ||||||
|  | @ -0,0 +1,27 @@ | ||||||
|  | <authorizes> | ||||||
|  |    <authorize> | ||||||
|  |       <appcode>400801200,400801204</appcode> | ||||||
|  |       <actions> | ||||||
|  |           <action>ic.sapplybill.query</action> | ||||||
|  |           <action>ic.sapplybill.queryPage</action> | ||||||
|  |           <action>ic.sapplybill.maintain</action> | ||||||
|  |           <action>ic.sapplybill.save</action> | ||||||
|  |           <action>ic.sapplybill.saveAndCommit</action> | ||||||
|  |           <action>ic.sapplybill.canbecopy</action> | ||||||
|  |           <action>ic.sapplybill.copy</action> | ||||||
|  |           <action>ic.sapplybill.cardquery</action> | ||||||
|  |           <action>ic.sapplybill.query422x</action> | ||||||
|  |           <action>ic.sapplybill.transfervo</action> | ||||||
|  |           <action>ic.sapplybill.queryPickm</action> | ||||||
|  |           <action>ic.sapplybill.transfervo1</action> | ||||||
|  |           <action>ic.sapplybill.print</action> | ||||||
|  |           <action>ic.sapplybill.combine</action> | ||||||
|  |           <action>ic.sapplybill.checkprem</action> | ||||||
|  |           <action>ic.sapplybill.headAfterEdit</action> | ||||||
|  |           <action>ic.sapplybill.bodyAfterEdit</action> | ||||||
|  |           <action>ic.sapplybill.rowOpenClose</action> | ||||||
|  |           <action>ic.sapplybill.billOpenClose</action> | ||||||
|  |           <action>ic.sapplybill.ntpLinkList</action> | ||||||
|  |       </actions> | ||||||
|  |    </authorize> | ||||||
|  | </authorizes> | ||||||
|  | @ -0,0 +1,148 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nc.bs.pub.action; | ||||||
|  | 
 | ||||||
|  | import java.util.Hashtable; | ||||||
|  | 
 | ||||||
|  | import nc.bs.dao.BaseDAO; | ||||||
|  | import nc.bs.framework.common.NCLocator; | ||||||
|  | import nc.bs.ic.pub.env.ICBSContext; | ||||||
|  | import nc.bs.ic.pub.util.ICBillVOQuery; | ||||||
|  | import nc.bs.pub.compiler.AbstractCompiler2; | ||||||
|  | import nc.bs.scmpub.pf.PfParameterUtil; | ||||||
|  | import nc.itf.ic.m4455.self.ISapplyBillMaintain; | ||||||
|  | import nc.jdbc.framework.processor.ColumnProcessor; | ||||||
|  | import nc.vo.ic.m4455.entity.SapplyBillBodyVO; | ||||||
|  | import nc.vo.ic.m4455.entity.SapplyBillVO; | ||||||
|  | import nc.vo.ic.pub.pf.ICPFParameter; | ||||||
|  | import nc.vo.ic.pub.util.ValueCheckUtil; | ||||||
|  | import nc.vo.ml.NCLangRes4VoTransl; | ||||||
|  | import nc.vo.pub.BusinessException; | ||||||
|  | import nc.vo.pub.compiler.PfParameterVO; | ||||||
|  | import nc.vo.pub.lang.UFDouble; | ||||||
|  | import nc.vo.pubapp.pattern.exception.ExceptionUtils; | ||||||
|  | import nc.vo.pubapp.pattern.pub.MathTool; | ||||||
|  | import nccloud.baseapp.core.log.NCCForUAPLogger; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 合并备料计划保存前校验申请数量是否超过计划数量-2005适配2312 | ||||||
|  |  * | ||||||
|  |  * @author mzr | ||||||
|  |  * @date 2025/3/26 | ||||||
|  |  */ | ||||||
|  | public class N_4455_WRITE extends AbstractCompiler2 { | ||||||
|  |     private Hashtable m_keyHas = null; | ||||||
|  |     private Hashtable m_methodReturnHas = new Hashtable(); | ||||||
|  | 
 | ||||||
|  |     private BaseDAO baseDAO = null; | ||||||
|  | 
 | ||||||
|  |     public N_4455_WRITE() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public Object runComClass(PfParameterVO vo) throws BusinessException { | ||||||
|  |         try { | ||||||
|  |             super.m_tmpVo = vo; | ||||||
|  |             ICBSContext context = new ICBSContext(); | ||||||
|  |             ICPFParameter pfparam = (ICPFParameter)this.getUserObj(); | ||||||
|  |             if (pfparam == null) { | ||||||
|  |                 pfparam = new ICPFParameter(); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             if (ValueCheckUtil.isNullORZeroLength(pfparam.getBusinessCheckMap())) { | ||||||
|  |                 pfparam.setBAtpCheckFlag(false); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             context.setICPFParameter(pfparam); | ||||||
|  |             SapplyBillVO[] outVOs = (SapplyBillVO[])this.getVos(); | ||||||
|  |             // 保存前校验申请数量是否超过计划数量 | ||||||
|  |             for (SapplyBillVO billVO : outVOs) { | ||||||
|  |                 SapplyBillBodyVO[] bodyVOS = billVO.getBodys(); | ||||||
|  |                 for (SapplyBillBodyVO bodyVO : bodyVOS) { | ||||||
|  |                     // 只判断来源单据是备料计划的出库申请 | ||||||
|  |                     if (!"55A3".equals(bodyVO.getCsourcetype())) { | ||||||
|  |                         continue; | ||||||
|  |                     } | ||||||
|  |                     String csourcebillbid = bodyVO.getCsourcebillbid(); | ||||||
|  |                     // 查询备料计划中的计划出库数量,通过备料计划的表体主键 | ||||||
|  |                     String getPlanNumSql = "SELECT nplanoutastnum " | ||||||
|  |                             + "FROM mm_pickm_b " | ||||||
|  |                             + "WHERE NVL(dr,0) = 0 AND cpickm_bid = '[csourcebillbid]'"; | ||||||
|  |                     getPlanNumSql = getPlanNumSql.replace("[csourcebillbid]", csourcebillbid); | ||||||
|  |                     Object nplanoutastnum = getBaseDAO().executeQuery(getPlanNumSql, | ||||||
|  |                             new ColumnProcessor("nplanoutastnum")); | ||||||
|  |                     if (nplanoutastnum == null) { | ||||||
|  |                         continue; | ||||||
|  |                     } | ||||||
|  |                     UFDouble plantNum = new UFDouble(String.valueOf(nplanoutastnum)); | ||||||
|  |                     // 通过备料计划的表体主键查询已申请数量 | ||||||
|  |                     String getApplyNumSql = "SELECT NVL(SUM(nassistnum),0) nassistnum " | ||||||
|  |                             + "FROM ic_sapply_b " | ||||||
|  |                             + "WHERE NVL(dr,0) = 0 AND csourcebillbid = '[csourcebillbid]'"; | ||||||
|  |                     getApplyNumSql = getApplyNumSql.replace("[csourcebillbid]", csourcebillbid); | ||||||
|  |                     // 修改的时候加上子表主键 | ||||||
|  |                     if (null != outVOs[0] && null != outVOs[0].getHead() && null != outVOs[0].getHead().getCgeneralhid()) { | ||||||
|  |                         getApplyNumSql += " AND cgeneralbid != '" + bodyVO.getPrimaryKey() + "'"; | ||||||
|  |                     } | ||||||
|  |                     Object nassistnum = getBaseDAO().executeQuery(getApplyNumSql, | ||||||
|  |                             new ColumnProcessor("nassistnum")); | ||||||
|  |                     UFDouble applyNum = new UFDouble(String.valueOf(nassistnum)); | ||||||
|  |                     NCCForUAPLogger.debug(String.format( | ||||||
|  |                             "出库申请保存: 来源单据表体主键 = [%S], 计划出库数量 = [%S], 已申请数量 = [%S], 本次申请数量 = [%S],", | ||||||
|  |                             csourcebillbid, plantNum, applyNum, bodyVO.getNassistnum() | ||||||
|  |                     )); | ||||||
|  |                     UFDouble applyNum1 = applyNum.add(bodyVO.getNassistnum()); | ||||||
|  |                     if (MathTool.compareTo(plantNum, applyNum1) < 0) { | ||||||
|  |                         nccloud.framework.core.exception.ExceptionUtils.wrapBusinessException("申请数量已超出计划数量,请检查!"); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             if (null != outVOs[0] && null != outVOs[0].getHead() && null != outVOs[0].getHead().getCgeneralhid()) { | ||||||
|  |                 PfParameterUtil<SapplyBillVO> util = new PfParameterUtil(this.getPfParameterVO(), outVOs); | ||||||
|  |                 SapplyBillVO[] originBills = (SapplyBillVO[])util.getOrginBills(); | ||||||
|  |                 if (originBills == null) { | ||||||
|  |                     originBills = (SapplyBillVO[])(new ICBillVOQuery()).fetchVOWithLoc(outVOs); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 SapplyBillVO[] clientFullBills = (SapplyBillVO[])util.getClientFullInfoBill(); | ||||||
|  |                 return ((ISapplyBillMaintain)NCLocator.getInstance().lookup(ISapplyBillMaintain.class)).update(clientFullBills, originBills); | ||||||
|  |             } else { | ||||||
|  |                 SapplyBillVO[] retunVos = new SapplyBillVO[outVOs.length]; | ||||||
|  |                 ISapplyBillMaintain service = (ISapplyBillMaintain)NCLocator.getInstance().lookup(ISapplyBillMaintain.class); | ||||||
|  | 
 | ||||||
|  |                 for(int i = 0; i < outVOs.length; ++i) { | ||||||
|  |                     retunVos[i] = service.insert(new SapplyBillVO[]{outVOs[i]})[0]; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 return retunVos; | ||||||
|  |             } | ||||||
|  |         } catch (Exception ex) { | ||||||
|  |             ExceptionUtils.marsh(ex); | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getCodeRemark() { | ||||||
|  |         return NCLangRes4VoTransl.getNCLangRes().getStrByID("4008003_0", "04008003-0108"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void setParameter(String key, Object val) { | ||||||
|  |         if (this.m_keyHas == null) { | ||||||
|  |             this.m_keyHas = new Hashtable(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (val != null) { | ||||||
|  |             this.m_keyHas.put(key, val); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private BaseDAO getBaseDAO() { | ||||||
|  |         if (this.baseDAO == null) { | ||||||
|  |             this.baseDAO = new BaseDAO(); | ||||||
|  |         } | ||||||
|  |         return this.baseDAO; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,243 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nccloud.pubimpl.ic.outbound.service; | ||||||
|  | 
 | ||||||
|  | import nc.bs.framework.common.InvocationInfoProxy; | ||||||
|  | import nc.bs.framework.common.NCLocator; | ||||||
|  | import nc.impl.pubapp.pattern.data.vo.VOQuery; | ||||||
|  | import nc.itf.scmpub.reference.uap.pf.PfServiceScmUtil; | ||||||
|  | import nc.itf.uap.pf.IPfExchangeService; | ||||||
|  | import nc.vo.ic.general.deal.TransBillBaseProcess; | ||||||
|  | import nc.vo.ic.general.define.ICBillBodyVO; | ||||||
|  | import nc.vo.ic.general.define.ICBillHeadVO; | ||||||
|  | import nc.vo.ic.general.define.ICBillVO; | ||||||
|  | import nc.vo.ic.m4455.entity.SapplyBillVO; | ||||||
|  | import nc.vo.ic.m4c.deal.Bill4CFor45Process; | ||||||
|  | import nc.vo.ic.m4c.entity.SaleOutVO; | ||||||
|  | import nc.vo.ic.material.query.InvInfoQuery; | ||||||
|  | import nc.vo.ic.org.OrgInfoQuery; | ||||||
|  | import nc.vo.ic.param.ICSysParam; | ||||||
|  | import nc.vo.ic.pub.calc.BusiCalculator; | ||||||
|  | import nc.vo.ic.pub.define.ICContext; | ||||||
|  | import nc.vo.ic.pub.pf.billtype.BillTypeInfoQuery; | ||||||
|  | import nc.vo.ic.pub.util.StringUtil; | ||||||
|  | import nc.vo.ic.pub.util.VOEntityUtil; | ||||||
|  | import nc.vo.ic.pub.util.ValueCheckUtil; | ||||||
|  | import nc.vo.ic.warehouse.WarehouseInfoQuery; | ||||||
|  | import nc.vo.ml.LanguageVO; | ||||||
|  | import nc.vo.ml.NCLangRes4VoTransl; | ||||||
|  | import nc.vo.mmpac.pickm.entity.PickmHeadVO; | ||||||
|  | import nc.vo.mmpac.pickm.entity.PickmItemVO; | ||||||
|  | import nc.vo.pu.m422x.entity.PickmReqAppVO; | ||||||
|  | import nc.vo.pub.AggregatedValueObject; | ||||||
|  | import nc.vo.pub.BusinessException; | ||||||
|  | import nc.vo.pub.CircularlyAccessibleValueObject; | ||||||
|  | import nc.vo.pub.compiler.PfParameterVO; | ||||||
|  | import nc.vo.pub.lang.UFDate; | ||||||
|  | import nc.vo.pub.lang.UFDateTime; | ||||||
|  | import nc.vo.pub.pfflow01.BillbusinessVO; | ||||||
|  | import nc.vo.pubapp.pattern.exception.ExceptionUtils; | ||||||
|  | import nc.vo.pubapp.scale.ScaleUtils; | ||||||
|  | import nc.vo.pubapp.util.VORowNoUtils; | ||||||
|  | import nc.vo.scmpub.res.billtype.ICBillType; | ||||||
|  | import nc.vo.scmpub.res.billtype.SOBillType; | ||||||
|  | import nccloud.dto.ic.pub.entity.TransVoInfo; | ||||||
|  | import nccloud.dto.ic.pub.entity.TransferInfo; | ||||||
|  | import nccloud.pubitf.ic.outbound.service.IOutboundTransferVoService1; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | public class OutboundTransferVoServiceImpl1 implements IOutboundTransferVoService1 { | ||||||
|  |     public static final Integer ZERO_INTEGER = 0; | ||||||
|  |     private ICContext context = new ICContext() { | ||||||
|  |         public String getUserID() { | ||||||
|  |             return InvocationInfoProxy.getInstance().getUserId(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public UFDateTime getServerDateTime() { | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public String getPk_group() { | ||||||
|  |             return InvocationInfoProxy.getInstance().getGroupId(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public String getModuleEnableDate() { | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public LanguageVO getCurrentLanguage() { | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public UFDateTime getBizDateTime() { | ||||||
|  |             return new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime()); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public UFDate getBizDate() { | ||||||
|  |             return new UFDate(InvocationInfoProxy.getInstance().getBizDateTime()); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public String getBDDocMultLangName(String bddocname) { | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     public SapplyBillVO[] transPickmTo4455(TransferInfo info) { | ||||||
|  |         if (null == info) { | ||||||
|  |             return null; | ||||||
|  |         } else { | ||||||
|  |             TransVoInfo[] voInfos = info.getInfo(); | ||||||
|  |             if (voInfos.length < 1) { | ||||||
|  |                 return null; | ||||||
|  |             } else { | ||||||
|  |                 VOQuery<PickmHeadVO> query = new VOQuery(PickmHeadVO.class); | ||||||
|  |                 PickmHeadVO[] hvos = (PickmHeadVO[]) query.query(info.getInfo()[0].getHids()); | ||||||
|  |                 VOQuery<PickmItemVO> queryb = new VOQuery(PickmItemVO.class); | ||||||
|  |                 PickmItemVO[] bvos = (PickmItemVO[]) queryb.query(info.getInfo()[0].getBids()); | ||||||
|  |                 PickmReqAppVO[] volist = new PickmReqAppVO[hvos.length]; | ||||||
|  | 
 | ||||||
|  |                 for (int i = 0; i < hvos.length; ++i) { | ||||||
|  |                     PickmReqAppVO vo = new PickmReqAppVO(); | ||||||
|  |                     vo.setParentVO(hvos[i]); | ||||||
|  |                     List<PickmItemVO> bodyvo = new ArrayList(); | ||||||
|  | 
 | ||||||
|  |                     for (int j = 0; j < bvos.length; ++j) { | ||||||
|  |                         if (bvos[j].getCpickmid().equals(hvos[i].getCpickmid())) { | ||||||
|  |                             bodyvo.add(bvos[j]); | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                     vo.setChildrenVO((CircularlyAccessibleValueObject[]) bodyvo.toArray(new PickmItemVO[0])); | ||||||
|  |                     volist[i] = vo; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 IPfExchangeService service = (IPfExchangeService) NCLocator.getInstance().lookup(IPfExchangeService.class); | ||||||
|  |                 AggregatedValueObject[] vochange = new AggregatedValueObject[0]; | ||||||
|  | 
 | ||||||
|  |                 try { | ||||||
|  |                     String cbilltype = info.getInfo()[0].getCbilltype(); | ||||||
|  |                     vochange = service.runChangeDataAryNeedClassify(cbilltype, ICBillType.SapplyBill.getCode(), volist, (PfParameterVO) null, -1); | ||||||
|  |                 } catch (BusinessException e) { | ||||||
|  |                     ExceptionUtils.wrappBusinessException(e.getMessage()); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 vochange = this.addFromSource(vochange); | ||||||
|  |                 return (SapplyBillVO[]) ((SapplyBillVO[]) vochange); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     private AggregatedValueObject[] addFromSource(AggregatedValueObject[] retvos) { | ||||||
|  |         this.processRowNO(this.processAfterVoChange((AggregatedValueObject[]) retvos)); | ||||||
|  |         if (retvos instanceof SaleOutVO[]) { | ||||||
|  |             Bill4CFor45Process proc = new Bill4CFor45Process(false); | ||||||
|  |             proc.setBPushSave(false); | ||||||
|  |             proc.setBusiCalc(BusiCalculator.getBusiCalculatorAtBS()); | ||||||
|  |             proc.setIcSysParam(new ICSysParam(InvocationInfoProxy.getInstance().getGroupId())); | ||||||
|  |             proc.setInvQuery(new InvInfoQuery()); | ||||||
|  |             proc.setOrgInfoQry(new OrgInfoQuery()); | ||||||
|  |             proc.setScale(ScaleUtils.getScaleUtilAtBS()); | ||||||
|  |             proc.setWhQuery(new WarehouseInfoQuery()); | ||||||
|  |             proc.setBilltypeQuery(new BillTypeInfoQuery()); | ||||||
|  |             proc.setContext(this.context); | ||||||
|  |             retvos = proc.changeToSaleOutVO((SaleOutVO[]) ((SaleOutVO[]) retvos)); | ||||||
|  |             this.checkCbiz((SaleOutVO[]) ((SaleOutVO[]) retvos)); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return (AggregatedValueObject[]) retvos; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected AggregatedValueObject[] processAfterVoChange(AggregatedValueObject[] retvos) { | ||||||
|  |         this.setClientDbilldate(retvos); | ||||||
|  |         TransBillBaseProcess<ICBillVO, ICBillHeadVO, ICBillBodyVO> process = new TransBillBaseProcess(false, false); | ||||||
|  |         process.setBusiCalc(BusiCalculator.getBusiCalculatorAtBS()); | ||||||
|  |         process.setIcSysParam(new ICSysParam(InvocationInfoProxy.getInstance().getGroupId())); | ||||||
|  |         process.setInvQuery(new InvInfoQuery()); | ||||||
|  |         process.setOrgInfoQry(new OrgInfoQuery()); | ||||||
|  |         process.setScale(ScaleUtils.getScaleUtilAtBS()); | ||||||
|  |         process.setWhQuery(new WarehouseInfoQuery()); | ||||||
|  |         process.setBilltypeQuery(new BillTypeInfoQuery()); | ||||||
|  |         process.setContext(this.context); | ||||||
|  |         return process.processBillVOs((ICBillVO[]) ((ICBillVO[]) retvos)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected void setClientDbilldate(AggregatedValueObject[] retvos) { | ||||||
|  |         long time = InvocationInfoProxy.getInstance().getBizDateTime(); | ||||||
|  |         UFDate date = new UFDate(time); | ||||||
|  |         AggregatedValueObject[] var5 = retvos; | ||||||
|  |         int var6 = retvos.length; | ||||||
|  | 
 | ||||||
|  |         for (int var7 = 0; var7 < var6; ++var7) { | ||||||
|  |             AggregatedValueObject retvo = var5[var7]; | ||||||
|  |             ICBillVO billvo = (ICBillVO) retvo; | ||||||
|  |             billvo.getHead().setDbilldate(date); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected AggregatedValueObject[] processRowNO(AggregatedValueObject[] retvos) { | ||||||
|  |         if (ValueCheckUtil.isNullORZeroLength(retvos)) { | ||||||
|  |             return retvos; | ||||||
|  |         } else { | ||||||
|  |             long time = InvocationInfoProxy.getInstance().getBizDateTime(); | ||||||
|  |             UFDate date = new UFDate(time); | ||||||
|  |             AggregatedValueObject[] var5 = retvos; | ||||||
|  |             int var6 = retvos.length; | ||||||
|  | 
 | ||||||
|  |             for (int var7 = 0; var7 < var6; ++var7) { | ||||||
|  |                 AggregatedValueObject bill = var5[var7]; | ||||||
|  |                 CircularlyAccessibleValueObject[] bodys = bill.getChildrenVO(); | ||||||
|  |                 if (!ValueCheckUtil.isNullORZeroLength(bodys)) { | ||||||
|  |                     CircularlyAccessibleValueObject[] var10 = bodys; | ||||||
|  |                     int var11 = bodys.length; | ||||||
|  | 
 | ||||||
|  |                     for (int var12 = 0; var12 < var11; ++var12) { | ||||||
|  |                         CircularlyAccessibleValueObject body = var10[var12]; | ||||||
|  |                         body.setAttributeValue("crowno", (Object) null); | ||||||
|  |                         if (body.getAttributeValue("nnum") != null) { | ||||||
|  |                             body.setAttributeValue("dbizdate", date); | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                     VORowNoUtils.setVOsRowNoByRule(bodys, "crowno"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             return retvos; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void checkCbiz(SaleOutVO[] vos) { | ||||||
|  |         String[] cbiztypes = VOEntityUtil.getVOsNotRepeatValue(VOEntityUtil.getHeadVOs(vos), "cbiztype"); | ||||||
|  |         if (!ValueCheckUtil.isNullORZeroLength(cbiztypes)) { | ||||||
|  |             String pk_group = InvocationInfoProxy.getInstance().getGroupId(); | ||||||
|  |             String arriveCode = SOBillType.Delivery.getCode(); | ||||||
|  |             String[] var5 = cbiztypes; | ||||||
|  |             int var6 = cbiztypes.length; | ||||||
|  | 
 | ||||||
|  |             for (int var7 = 0; var7 < var6; ++var7) { | ||||||
|  |                 String biztype = var5[var7]; | ||||||
|  |                 BillbusinessVO[] businessVOs = PfServiceScmUtil.findBillbusinessVOs(biztype, pk_group); | ||||||
|  |                 if (!ValueCheckUtil.isNullORZeroLength(businessVOs)) { | ||||||
|  |                     BillbusinessVO[] var10 = businessVOs; | ||||||
|  |                     int var11 = businessVOs.length; | ||||||
|  | 
 | ||||||
|  |                     for (int var12 = 0; var12 < var11; ++var12) { | ||||||
|  |                         BillbusinessVO vo = var10[var12]; | ||||||
|  |                         if (StringUtil.isStringEqual(vo.getPk_billtype(), arriveCode)) { | ||||||
|  |                             ExceptionUtils.wrappBusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("4008003_0", "04008003-0251")); | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | @ -0,0 +1,14 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nccloud.pubitf.ic.outbound.service; | ||||||
|  | 
 | ||||||
|  | import nc.vo.ic.m4455.entity.SapplyBillVO; | ||||||
|  | import nccloud.dto.ic.pub.entity.TransferInfo; | ||||||
|  | 
 | ||||||
|  | public interface IOutboundTransferVoService1 { | ||||||
|  |     SapplyBillVO[] transPickmTo4455(TransferInfo info); | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | @ -0,0 +1,88 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nc.bs.pu.m422x.query; | ||||||
|  | 
 | ||||||
|  | import nc.bs.scmpub.util.SCMDataAccessUtils; | ||||||
|  | import nc.impl.pubapp.pattern.data.vo.VOQuery; | ||||||
|  | import nc.ui.querytemplate.querytree.IQueryScheme; | ||||||
|  | import nc.vo.mmpac.pickm.entity.PickmHeadVO; | ||||||
|  | import nc.vo.mmpac.pickm.entity.PickmItemVO; | ||||||
|  | import nc.vo.pu.m422x.entity.PickmReqAppVO; | ||||||
|  | import nc.vo.pubapp.pattern.model.tool.BillComposite; | ||||||
|  | import nc.vo.pubapp.query2.sql.process.QuerySchemeProcessor; | ||||||
|  | 
 | ||||||
|  | import java.util.HashSet; | ||||||
|  | import java.util.Set; | ||||||
|  | 
 | ||||||
|  | public abstract class Abstract422XRefQueryBP1 { | ||||||
|  |     protected String headtb; | ||||||
|  |     protected String itemtb; | ||||||
|  |     protected QuerySchemeProcessor psor; | ||||||
|  | 
 | ||||||
|  |     public Abstract422XRefQueryBP1(IQueryScheme queryScheme) { | ||||||
|  |         this.psor = new QuerySchemeProcessor(queryScheme); | ||||||
|  |         this.headtb = this.psor.getMainTableAlias(); | ||||||
|  |         // this.itemtb = this.psor.getTableAliasOfAttribute("pk_storereq_b.pk_storereq_b"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getHeadtb() { | ||||||
|  |         return this.headtb; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getItemtb() { | ||||||
|  |         return this.itemtb; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public QuerySchemeProcessor getPsor() { | ||||||
|  |         return this.psor; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public abstract StringBuilder makeGetPKSql(); | ||||||
|  | 
 | ||||||
|  |     public PickmReqAppVO[] queryPickmReqVOs() { | ||||||
|  |         SCMDataAccessUtils utils = new SCMDataAccessUtils(10000); | ||||||
|  |         // this.psor.appendCurrentGroup(); | ||||||
|  |         StringBuilder sql = this.makeGetPKSql(); | ||||||
|  |         String[][] pks = utils.query(sql.toString()).toTwoDimensionStringArray(); | ||||||
|  |         if (null != pks && pks.length != 0) { | ||||||
|  |             Set<String> headPks = new HashSet(); | ||||||
|  |             String[] itemPks = new String[pks.length]; | ||||||
|  | 
 | ||||||
|  |             for (int i = 0; i < pks.length; ++i) { | ||||||
|  |                 headPks.add(pks[i][0]); | ||||||
|  |                 itemPks[i] = pks[i][1]; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             PickmHeadVO[] headers = (PickmHeadVO[]) (new VOQuery(PickmHeadVO.class)).query((String[]) headPks.toArray(new String[headPks.size()])); | ||||||
|  |             PickmItemVO[] items = (PickmItemVO[]) (new VOQuery(PickmItemVO.class)).query(itemPks); | ||||||
|  |             BillComposite<PickmReqAppVO> bc = new BillComposite(PickmReqAppVO.class); | ||||||
|  |             PickmReqAppVO tempVO = new PickmReqAppVO(); | ||||||
|  |             bc.append(tempVO.getMetaData().getParent(), headers); | ||||||
|  |             bc.append(tempVO.getMetaData().getVOMeta(PickmItemVO.class), items); | ||||||
|  |             PickmReqAppVO[] queryResult = (PickmReqAppVO[]) bc.composite(); | ||||||
|  |             // return this.processQueryResult(queryResult); | ||||||
|  |             return queryResult; | ||||||
|  |         } else { | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setHeadtb(String headtb) { | ||||||
|  |         this.headtb = headtb; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setItemtb(String itemtb) { | ||||||
|  |         this.itemtb = itemtb; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setPsor(QuerySchemeProcessor psor) { | ||||||
|  |         this.psor = psor; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected PickmReqAppVO[] processQueryResult(PickmReqAppVO[] queryResult) { | ||||||
|  |         return queryResult; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,54 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nc.bs.pu.m422x.query; | ||||||
|  | 
 | ||||||
|  | import nc.bs.pu.m422x.plugin.StoreReqAppPluginPoint; | ||||||
|  | import nc.bs.pu.m422x.query.rule.CanOutreqNumCalcRule; | ||||||
|  | import nc.impl.pubapp.pattern.rule.processer.AroundProcesser; | ||||||
|  | import nc.ui.querytemplate.querytree.IQueryScheme; | ||||||
|  | import nc.vo.pu.m422x.entity.StoreReqAppVO; | ||||||
|  | import nccloud.baseapp.core.log.NCCForUAPLogger; | ||||||
|  | import nccloud.commons.lang.ArrayUtils; | ||||||
|  | 
 | ||||||
|  | public class QueryFor4455BP1 extends Abstract422XRefQueryBP1 { | ||||||
|  |     public QueryFor4455BP1(IQueryScheme queryScheme) { | ||||||
|  |         super(queryScheme); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void addRule(AroundProcesser<StoreReqAppVO> processer) { | ||||||
|  |         processer.addAfterRule(new CanOutreqNumCalcRule()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public StringBuilder makeGetPKSql() { | ||||||
|  |         StringBuilder wholeSql = new StringBuilder(); | ||||||
|  |         wholeSql.append(" SELECT DISTINCT a.cpickmid,b.cpickm_bid"); | ||||||
|  |         wholeSql.append(" FROM"); | ||||||
|  |         wholeSql.append(" ("); | ||||||
|  |         wholeSql.append(" SELECT cpickmid"); | ||||||
|  |         wholeSql.append(this.psor.getFinalFromWhere()); | ||||||
|  |         // 查询审核通过 | ||||||
|  |         wholeSql.append(" AND fbillstatus = 1"); | ||||||
|  |         // wholeSql.append(" AND APPROVERTIME > '2024-11-01'"); | ||||||
|  |         // NCCForUAPLogger.debug("finalFromWhere = " + this.psor.getFinalFromWhere()); | ||||||
|  |         wholeSql.append(" ) a"); | ||||||
|  |         wholeSql.append(" INNER JOIN mm_pickm_b b ON b.cpickmid = a.cpickmid AND b.dr = 0 "); | ||||||
|  |         // 未出库数量>0 | ||||||
|  |         wholeSql.append(" WHERE "); | ||||||
|  |         wholeSql.append(" ( COALESCE(b.nplanoutastnum, 0) - COALESCE(b.nshouldastnum, 0) - COALESCE(b.npscastnum, 0) - COALESCE(b.naccoutastnum, 0) ) > 0 "); | ||||||
|  |         NCCForUAPLogger.debug("wholeSql = " + wholeSql); | ||||||
|  |         return wholeSql; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected StoreReqAppVO[] processQueryResult(StoreReqAppVO[] queryResult) { | ||||||
|  |         if (ArrayUtils.isEmpty(queryResult)) { | ||||||
|  |             return null; | ||||||
|  |         } else { | ||||||
|  |             AroundProcesser<StoreReqAppVO> processer = new AroundProcesser(StoreReqAppPluginPoint.PULL_4455); | ||||||
|  |             this.addRule(processer); | ||||||
|  |             return (StoreReqAppVO[]) processer.after(queryResult); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,40 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nc.pubimpl.pu.m422x.ic.m4455; | ||||||
|  | 
 | ||||||
|  | import nc.bs.pu.m422x.query.QueryFor4455BP; | ||||||
|  | import nc.bs.pu.m422x.query.QueryFor4455BP1; | ||||||
|  | import nc.pubitf.pu.m422x.ic.m4455.IQuery422XFor4455; | ||||||
|  | import nc.ui.querytemplate.querytree.IQueryScheme; | ||||||
|  | import nc.vo.pu.m422x.entity.PickmReqAppVO; | ||||||
|  | import nc.vo.pu.m422x.entity.StoreReqAppVO; | ||||||
|  | import nc.vo.pub.BusinessException; | ||||||
|  | import nc.vo.pubapp.pattern.exception.ExceptionUtils; | ||||||
|  | 
 | ||||||
|  | public class Query422XFor4455Impl implements IQuery422XFor4455 { | ||||||
|  |     public Query422XFor4455Impl() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public StoreReqAppVO[] queryStoreReqAppsFor4455(IQueryScheme queryScheme) throws BusinessException { | ||||||
|  |         try { | ||||||
|  |             return (new QueryFor4455BP(queryScheme)).queryStoreReqVOs(); | ||||||
|  |         } catch (Exception e) { | ||||||
|  |             ExceptionUtils.marsh(e); | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public PickmReqAppVO[] queryPickmAppsFor4455(IQueryScheme queryScheme) throws BusinessException { | ||||||
|  |         try { | ||||||
|  |             return (new QueryFor4455BP1(queryScheme)).queryPickmReqVOs(); | ||||||
|  |         } catch (Exception e) { | ||||||
|  |             ExceptionUtils.marsh(e); | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nc.pubitf.pu.m422x.ic.m4455; | ||||||
|  | 
 | ||||||
|  | import nc.ui.querytemplate.querytree.IQueryScheme; | ||||||
|  | import nc.vo.pu.m422x.entity.PickmReqAppVO; | ||||||
|  | import nc.vo.pu.m422x.entity.StoreReqAppVO; | ||||||
|  | import nc.vo.pub.BusinessException; | ||||||
|  | 
 | ||||||
|  | public interface IQuery422XFor4455 { | ||||||
|  |     StoreReqAppVO[] queryStoreReqAppsFor4455(IQueryScheme var1) throws BusinessException; | ||||||
|  | 
 | ||||||
|  |     PickmReqAppVO[] queryPickmAppsFor4455(IQueryScheme queryScheme) throws BusinessException; | ||||||
|  | } | ||||||
|  | @ -0,0 +1,21 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nc.vo.pu.m422x.entity; | ||||||
|  | 
 | ||||||
|  | import nc.vo.mmpac.pickm.entity.PickmHeadVO; | ||||||
|  | import nc.vo.mmpac.pickm.entity.PickmItemVO; | ||||||
|  | import nc.vo.pubapp.pattern.model.meta.entity.bill.AbstractBillMeta; | ||||||
|  | 
 | ||||||
|  | public class PickmAppVOMeta extends AbstractBillMeta { | ||||||
|  |     public PickmAppVOMeta() { | ||||||
|  |         this.init(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void init() { | ||||||
|  |         this.setParent(PickmHeadVO.class); | ||||||
|  |         this.addChildren(PickmItemVO.class); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,48 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nc.vo.pu.m422x.entity; | ||||||
|  | 
 | ||||||
|  | import nc.vo.annotation.AggVoInfo; | ||||||
|  | import nc.vo.mmpac.pickm.entity.PickmHeadVO; | ||||||
|  | import nc.vo.mmpac.pickm.entity.PickmItemVO; | ||||||
|  | import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill; | ||||||
|  | import nc.vo.pubapp.pattern.model.meta.entity.bill.BillMetaFactory; | ||||||
|  | import nc.vo.pubapp.pattern.model.meta.entity.bill.IBillMeta; | ||||||
|  | 
 | ||||||
|  | @AggVoInfo( | ||||||
|  |         parentVO = "nc.vo.mmpac.pickm.entity.PickmHeadVO" | ||||||
|  | ) | ||||||
|  | public class PickmReqAppVO extends AbstractBill { | ||||||
|  |     private static final long serialVersionUID = -3077249229044777149L; | ||||||
|  | 
 | ||||||
|  |     public PickmReqAppVO() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /*public static StoreReqAppCloseVO[] getCloseVO(PickmReqAppVO[] vos) { | ||||||
|  |         return (StoreReqAppCloseVO[]) (new BillToViewConvertor(StoreReqAppCloseVO.class)).convert(vos); | ||||||
|  |     }*/ | ||||||
|  | 
 | ||||||
|  |     public PickmItemVO[] getBVO() { | ||||||
|  |         return (PickmItemVO[]) ((PickmItemVO[]) this.getChildrenVO()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public PickmHeadVO getHVO() { | ||||||
|  |         return (PickmHeadVO) this.getParent(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public IBillMeta getMetaData() { | ||||||
|  |         IBillMeta billMeta = BillMetaFactory.getInstance().getBillMeta(PickmAppVOMeta.class); | ||||||
|  |         return billMeta; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setBVO(PickmItemVO[] voaChildren) { | ||||||
|  |         this.setChildrenVO(voaChildren); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setHVO(PickmHeadVO voaParent) { | ||||||
|  |         this.setParent(voaParent); | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue