拆单相关调整
This commit is contained in:
		
							parent
							
								
									95e20dbb57
								
							
						
					
					
						commit
						74d5ffeb7b
					
				|  | @ -0,0 +1,129 @@ | |||
| package nc.bs.ic.m4a.util; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.Set; | ||||
| 
 | ||||
| import org.apache.commons.lang3.StringUtils; | ||||
| 
 | ||||
| import nc.bs.framework.common.NCLocator; | ||||
| import nc.bs.ic.general.util.GenFinanceProcess; | ||||
| import nc.bs.ic.general.util.GeneralFinanceContext; | ||||
| import nc.itf.uap.IUAPQueryBS; | ||||
| import nc.jdbc.framework.processor.ColumnProcessor; | ||||
| import nc.pubitf.ia.mi4.ic.IIAI4ForIC4ASign; | ||||
| import nc.vo.ia.bill.entity.base.AbstractBaseBill; | ||||
| import nc.vo.ia.bill.entity.base.AbstractBaseHeadVO; | ||||
| import nc.vo.ia.bill.entity.base.AbstractBaseItemVO; | ||||
| import nc.vo.ia.mi4.entity.I4BillVO; | ||||
| import nc.vo.ia.mi4.entity.I4HeadVO; | ||||
| import nc.vo.ia.mi4.entity.I4ItemVO; | ||||
| 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.m4a.entity.GeneralInBodyVO; | ||||
| import nc.vo.ic.m4a.entity.GeneralInHeadVO; | ||||
| import nc.vo.ic.m4a.entity.GeneralInVO; | ||||
| import nc.vo.ic.pub.util.VOEntityUtil; | ||||
| import nc.vo.pub.BusinessException; | ||||
| import nc.vo.pubapp.pattern.pub.SqlBuilder; | ||||
| import nc.vo.scmpub.res.billtype.IABillType; | ||||
| 
 | ||||
| public class Bill4AFinanceProcess | ||||
|   extends GenFinanceProcess<GeneralInVO, GeneralInBodyVO> | ||||
| { | ||||
| 	public Bill4AFinanceProcess() { super(GeneralFinanceContext.createOneDomainContext(IABillType.QTRK)); } | ||||
|    | ||||
| 	protected void deleteIABill(String[] billids) throws BusinessException { | ||||
| 		((IIAI4ForIC4ASign)NCLocator.getInstance().lookup(IIAI4ForIC4ASign.class)).deleteI4ForIC4AUnsign(billids); | ||||
| 	} | ||||
|    | ||||
| 	protected void insertOneDomainIAByService(AbstractBaseBill[] iabills, GeneralInVO[] icbills) throws BusinessException { | ||||
| 		String[] costorgs = loadCostInfoForCalbody( | ||||
| 				(ICBillHeadVO[])VOEntityUtil.getHeadVOs(icbills)); | ||||
| 		fillIABillCostOrg(iabills, costorgs); | ||||
| 		GeneralInVO[] _icbills = filterIcbills(icbills);//库存其它入库单筛选-华丰 | ||||
| 		I4BillVO[] _iabills = filterIabills(iabills, _icbills);//筛选核算库存信息-华丰 | ||||
| 		((IIAI4ForIC4ASign)NCLocator.getInstance().lookup(IIAI4ForIC4ASign.class)).insertI4ForIC4Asign((I4BillVO[])_iabills); | ||||
| 	} | ||||
| 	 | ||||
| 	//处理备料计划-转库-其它入库,如果寄存供应商有值,则这一行物料信息不生成存货核算单据 | ||||
| 	private I4BillVO[] filterIabills(AbstractBaseBill[] iabills, GeneralInVO[] icbills) throws BusinessException { | ||||
| 		I4BillVO _iabill = null; | ||||
| 		ArrayList<I4BillVO> iabillsList = new ArrayList<I4BillVO>(); | ||||
| 		ArrayList<I4ItemVO> itemList = new ArrayList<I4ItemVO>(); | ||||
| 		 | ||||
| 		ICBillBodyVO[] icBillBodys = (ICBillBodyVO[])VOEntityUtil.getBodyVOs(icbills);//获取所有入库单表体 | ||||
| 		Set<String> values = VOEntityUtil.getVOsValueSet(icBillBodys, "cgeneralbid");//获取所有入库单子表主键 | ||||
| 		 | ||||
| 		for(int i = 0; i < iabills.length; i++) { | ||||
| 			I4BillVO iabill = (I4BillVO)iabills[i]; | ||||
| 			I4HeadVO headVO = iabill.getParentVO(); | ||||
| 			I4ItemVO[] itemVOs = iabill.getChildrenVO(); | ||||
| 			if(itemVOs != null && itemVOs.length > 0) { | ||||
| 				for(int j = 0; j < itemVOs.length; j++) {//核算库存子表过滤筛选 | ||||
| 					I4ItemVO itemVO = itemVOs[j]; | ||||
| 					String csrcbid = itemVO.getCsrcbid();//获取来源单据id | ||||
| 					if(values.contains(csrcbid)) { | ||||
| 						itemList.add(itemVO); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			 | ||||
| 			if(itemList != null && itemList.size() > 0) {//筛选后的核算库存子表数大于0 | ||||
| 				iabillsList.add(_iabill); | ||||
| 			} | ||||
| 			 | ||||
| 		} | ||||
| 		 | ||||
| 		return iabillsList.toArray(new I4BillVO[0]); | ||||
| 	} | ||||
| 	 | ||||
| 	 | ||||
| 	//库存其它入库单筛选 | ||||
| 	private GeneralInVO[] filterIcbills(GeneralInVO[] icbills) throws BusinessException { | ||||
| 		GeneralInVO _icbill = null; | ||||
| 		ArrayList<GeneralInVO> icbillsList = new ArrayList<GeneralInVO>(); | ||||
| 		ArrayList<GeneralInBodyVO> itemList = new ArrayList<GeneralInBodyVO>(); | ||||
| 		 | ||||
| 		for(int i = 0; i < icbills.length; i++) { | ||||
| 			GeneralInVO iabill = (GeneralInVO)icbills[i]; | ||||
| 			GeneralInHeadVO headVO = iabill.getHead(); | ||||
| 			GeneralInBodyVO[] itemVOs = iabill.getBodys(); | ||||
| 			if(itemVOs != null && itemVOs.length > 0) { | ||||
| 				for(int j = 0; j < itemVOs.length; j++) {//库存子表过滤筛选 | ||||
| 					GeneralInBodyVO itemVO = itemVOs[j]; | ||||
| 					String csourcetype = itemVO.getCsourcetype();//获取核算库存来源单据类型 | ||||
| 					String cvmivenderid = itemVO.getCvmivenderid();//获取寄存商户id | ||||
| 					String csourcebillbid = itemVO.getCsourcebillbid();//获取来源单据子表id | ||||
| 					String csourcetype_zk = querySourceType(csourcebillbid);//转库单来源单据类型 | ||||
| 					if("4K".equals(csourcetype) && StringUtils.isNotEmpty(cvmivenderid) | ||||
| 							&& "55A3".equals(csourcetype_zk)) { | ||||
| 						itemList.add(itemVO); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			 | ||||
| 			if(itemList != null && itemList.size() > 0) {//筛选后的核算库存子表数大于0 | ||||
| 				icbillsList.add(_icbill); | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		return icbillsList.toArray(new GeneralInVO[0]); | ||||
| 	} | ||||
| 	 | ||||
| 	 | ||||
| 	//转库单来源单据类型查询 | ||||
| 	public String querySourceType(String id) throws BusinessException { | ||||
| 		if(StringUtils.isNotEmpty(id)) { | ||||
| 			SqlBuilder sb = new SqlBuilder(); | ||||
| 			sb.reset(); | ||||
| 			sb.append("select csourcetype from ic_whstrans_b where cspecialbid = '" + id + "' and dr = 0"); | ||||
| 			IUAPQueryBS querybs = NCLocator.getInstance().lookup(IUAPQueryBS.class); | ||||
| 			Object result = querybs.executeQuery(sb.toString(), new ColumnProcessor()); | ||||
| 			if(result != null && !"".equals(result)) { | ||||
| 				return result.toString(); | ||||
| 			} | ||||
| 		} | ||||
| 		return ""; | ||||
| 	} | ||||
| } | ||||
		Loading…
	
		Reference in New Issue