diff --git a/mmpac/src/private/nc/bs/mmpac/pickm/rule/subitems/transfer/PickmSubItemTransferFromBom.java b/mmpac/src/private/nc/bs/mmpac/pickm/rule/subitems/transfer/PickmSubItemTransferFromBom.java new file mode 100644 index 00000000..1180587b --- /dev/null +++ b/mmpac/src/private/nc/bs/mmpac/pickm/rule/subitems/transfer/PickmSubItemTransferFromBom.java @@ -0,0 +1,276 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package nc.bs.mmpac.pickm.rule.subitems.transfer; + +import java.util.ArrayList; +import java.util.List; + +import nc.bs.framework.common.NCLocator; +import nc.bs.mmpac.pickm.rule.subitems.PickmSubItemBuilderUtils; +import nc.bs.mmpac.pickm.rule.subitems.cache.PickmSubItemBuilderDateCache; +import nc.itf.mmpac.pickm.IPickmQueryService; +import nc.util.mmf.framework.base.MMNumberUtil; +import nc.util.mmf.framework.base.MMValueCheck; +import nc.vo.bd.bom.bom0202.enumeration.ControlEnum; +import nc.vo.bd.bom.bom0202.enumeration.SupplyModeEnum; +import nc.vo.bd.bom.bom0202.paramvo.BomItemParamForPickm; +import nc.vo.bd.bom.bom0202.paramvo.BomItemResultVOForPickm; +import nc.vo.bd.bom.bom0202.paramvo.BomWipParamForPickm; +import nc.vo.bd.bom.bom0202.paramvo.dpac.ResultForMoVO; +import nc.vo.mmpac.pickm.consts.PickmLangConsts; +import nc.vo.mmpac.pickm.entity.AggPickmVO; +import nc.vo.mmpac.pickm.entity.PickmHeadVO; +import nc.vo.mmpac.pickm.entity.PickmItemVO; +import nc.vo.mmpac.pickm.entity.PickmTransTypeVO; +import nc.vo.mmpac.pickm.enumeration.FreplaceinfoEnum; +import nc.vo.mmpac.pickm.enumeration.FsourcetypeEnum; +import nc.vo.pub.BusinessException; +import nc.vo.pub.lang.UFBoolean; +import nc.vo.pub.lang.UFDateTime; +import nc.vo.pub.lang.UFDouble; +import nc.vo.pubapp.calculator.HslParseUtil; +import nc.vo.pubapp.pattern.exception.ExceptionUtils; +import nccloud.pubitf.arap.openapi.IGatheringbillOpenService; + +public class PickmSubItemTransferFromBom extends PickmSubItemTransfer { + public PickmSubItemTransferFromBom(PickmSubItemBuilderDateCache cache) { + super(cache); + } + + public PickmItemVO[] processTransfer(PickmHeadVO pickmHeadVO) throws BusinessException { + PickmSubItemBuilderUtils keyUtils = new PickmSubItemBuilderUtils(this.subItemdateCache); + String[] keys = keyUtils.getKey(pickmHeadVO); + if (MMValueCheck.isEmpty(keys)) { + return null; + } else { + List subItemList = new ArrayList(); + + for(String key : keys) { + BomItemResultVOForPickm bomItemResultParam = (BomItemResultVOForPickm)this.subItemdateCache.getAggBomMap().get(key); + if (null != bomItemResultParam) { + if (!MMValueCheck.isEmpty(bomItemResultParam.getBkititem()) && bomItemResultParam.getBkititem().booleanValue()) { + pickmHeadVO.setBkititem(bomItemResultParam.getBkititem()); + } + + if (MMValueCheck.isNotEmpty(bomItemResultParam.getBomItemparam())) { + BomItemParamForPickm[] bomItems = bomItemResultParam.getBomItemparam(); + + for(BomItemParamForPickm bomItem : bomItems) { + if (MMValueCheck.isNotEmpty(bomItem.getBomitemparent())) { + this.subItemdateCache.getBomItemParentMap().put(bomItem.getCbom_bid(), bomItem.getBomitemparent()); + } + + PickmItemVO item = this.createSubItem(pickmHeadVO, bomItemResultParam, bomItem); + List pickmFormWipList = new ArrayList(); + if (!FsourcetypeEnum.WWBILL_STATE.equalsValue(pickmHeadVO.getFsourcetype()) && MMValueCheck.isNotEmpty(bomItem.getBomwipparams())) { + UFDouble bodyNum = UFDouble.ZERO_DBL; + + for(BomWipParamForPickm wipPara : bomItem.getBomwipparams()) { + bodyNum = MMNumberUtil.add(new UFDouble[]{bodyNum, wipPara.getNnum()}); + } + + PickmTransTypeVO pickmTransTypeVO = (PickmTransTypeVO)this.subItemdateCache.getPickmTransTypeVOMap().get(pickmHeadVO.getVbusitypeid()); + UFBoolean isConsiderDissipationnum = MMValueCheck.isEmpty(pickmTransTypeVO.getBcontainwaste()) ? UFBoolean.FALSE : pickmTransTypeVO.getBcontainwaste(); + PickmSubItemTransferFromWIP wipUtils = new PickmSubItemTransferFromWIP(this.subItemdateCache); + pickmFormWipList = wipUtils.trans(pickmHeadVO.getNnumber(), pickmHeadVO.getNastnum(), bodyNum, bomItem.getNitemnum(), bomItem.getNitemnumwithloss(), item, bomItem.getBomwipparams(), isConsiderDissipationnum); + } + + if (MMValueCheck.isEmpty(pickmFormWipList)) { + subItemList.add(item); + } else { + subItemList.addAll(pickmFormWipList); + } + } + } + } + } + + return (PickmItemVO[])subItemList.toArray(new PickmItemVO[0]); + } + } + + private PickmItemVO createSubItem(PickmHeadVO pickmHeadVO, BomItemResultVOForPickm bomVO, BomItemParamForPickm bomItem) throws BusinessException { + PickmItemVO pickmItemVO = new PickmItemVO(); + pickmItemVO.setStatus(2); + this.setBaseInfo(pickmHeadVO, pickmItemVO, bomVO, bomItem); + this.setBackInfo(pickmItemVO, bomItem); + this.setReplaceInfo(pickmItemVO, bomItem); + this.setNumberValue(pickmHeadVO, pickmItemVO, bomItem); + this.setOrgAndStock(pickmHeadVO, pickmItemVO, bomItem); + this.setFreeItem(pickmItemVO, bomItem); + this.setVdefItem(pickmItemVO, bomItem); + if(pickmHeadVO.getCpickmid() != null) { + //20251202 备料重算取消更新备料计划子表自定义项已下达数量 + this.setVbdef16(pickmHeadVO,pickmItemVO, bomItem); + } + return pickmItemVO; + } + + private void setVdefItem(PickmItemVO pickmItemVO, BomItemParamForPickm bomItem) { + pickmItemVO.setVbdef1(bomItem.getVdef1()); + pickmItemVO.setVbdef2(bomItem.getVdef2()); + pickmItemVO.setVbdef3(bomItem.getVdef3()); + pickmItemVO.setVbdef4(bomItem.getVdef4()); + pickmItemVO.setVbdef5(bomItem.getVdef5()); + pickmItemVO.setVbdef6(bomItem.getVdef6()); + pickmItemVO.setVbdef7(bomItem.getVdef7()); + pickmItemVO.setVbdef8(bomItem.getVdef8()); + pickmItemVO.setVbdef9(bomItem.getVdef9()); + pickmItemVO.setVbdef10(bomItem.getVdef10()); + pickmItemVO.setVbdef11(bomItem.getVdef11()); + pickmItemVO.setVbdef12(bomItem.getVdef12()); + pickmItemVO.setVbdef13(bomItem.getVdef13()); + pickmItemVO.setVbdef14(bomItem.getVdef14()); + pickmItemVO.setVbdef15(bomItem.getVdef15()); + // pickmItemVO.setVbdef16("15"); + pickmItemVO.setVbdef17(bomItem.getVdef17()); + pickmItemVO.setVbdef18(bomItem.getVdef18()); + pickmItemVO.setVbdef19(bomItem.getVdef19()); + pickmItemVO.setVbdef20(bomItem.getVdef20()); + } + private void setVbdef16(PickmHeadVO pickmHeadVO, PickmItemVO pickmItemVO, BomItemParamForPickm bomItem) throws BusinessException { + IPickmQueryService service= ((IPickmQueryService) NCLocator.getInstance() + .lookup(IPickmQueryService.class)); + AggPickmVO aggPickmVO = service.querySingleBillByPk(pickmHeadVO.getCpickmid()); + PickmItemVO[] pickmItemVOs = (PickmItemVO[])aggPickmVO.getChildrenVO(); + if (pickmItemVOs != null && pickmItemVOs.length > 0) { + for (PickmItemVO pickmItemVO1 : pickmItemVOs) { + if(null != pickmItemVO.getCbombid() && null != pickmItemVO1.getCbombid()){ + if(pickmItemVO1.getCbombid().equals(pickmItemVO.getCbombid())) { + pickmItemVO.setVbdef16(pickmItemVO1.getVbdef16()); + } + } + } + } + // pickmItemVO.setVbdef16("15"); + } + + private void setOrgAndStock(PickmHeadVO pickmHeadVO, PickmItemVO pickmItemVO, BomItemParamForPickm bomItemVO) { + PickmTransferSourceFactory factory = new PickmTransferSourceFactory(this.subItemdateCache); + factory.setSouceInfo(pickmHeadVO, pickmItemVO, bomItemVO.getIleadtimenum(), (String)null, (UFDateTime)null); + } + + private void setBaseInfo(PickmHeadVO pickmHeadVO, PickmItemVO pickmItemVO, BomItemResultVOForPickm bomVO, BomItemParamForPickm bomItemVO) { + pickmItemVO.setPk_group(pickmHeadVO.getPk_group()); + pickmItemVO.setPk_org(pickmHeadVO.getPk_org()); + pickmItemVO.setPk_org_v(pickmHeadVO.getPk_org_v()); + pickmItemVO.setCbombid(bomItemVO.getCbom_bid()); + pickmItemVO.setFbomtype(bomVO.getFbomtype()); + pickmItemVO.setVbomrowno(bomItemVO.getVrowno()); + pickmItemVO.setBautobuilt(UFBoolean.TRUE); + pickmItemVO.setVbbomversion(bomItemVO.getVitemversion()); + if (!MMValueCheck.isEmpty(bomItemVO.getVitemversion()) && !MMValueCheck.isEmpty(this.subItemdateCache.getItemBOMVersionNo()) && this.subItemdateCache.getItemBOMVersionNo().containsKey(bomItemVO.getVitemversion())) { + ResultForMoVO result = (ResultForMoVO)this.subItemdateCache.getItemBOMVersionNo().get(bomItemVO.getVitemversion()); + if (!MMValueCheck.isEmpty(result)) { + pickmItemVO.setVbbomversionnumber(result.getBomVersion()); + } + } + + pickmItemVO.setVbpbomversion(bomItemVO.getVpackversion()); + if (!MMValueCheck.isEmpty(bomItemVO.getVpackversion()) && !MMValueCheck.isEmpty(this.subItemdateCache.getItemBOMVersionNo()) && this.subItemdateCache.getItemBOMVersionNo().containsKey(bomItemVO.getVpackversion())) { + ResultForMoVO result = (ResultForMoVO)this.subItemdateCache.getItemBOMVersionNo().get(bomItemVO.getVpackversion()); + if (!MMValueCheck.isEmpty(result)) { + pickmItemVO.setVbpbomversionnumber(result.getBomVersion()); + } + } + + pickmItemVO.setCbmaterialid(bomItemVO.getCmaterialid()); + pickmItemVO.setCbmaterialvid(bomItemVO.getCmaterialvid()); + pickmItemVO.setCbunitid(bomItemVO.getCmeasureid()); + pickmItemVO.setCbastunitid(bomItemVO.getCassmeasureid()); + if (MMValueCheck.isEmpty(HslParseUtil.getUFDoubleHsl(bomItemVO.getVchangerate()))) { + ExceptionUtils.wrappBusinessException(PickmLangConsts.getERR_BOMHSLNULL()); + } + + pickmItemVO.setVbchangerate(bomItemVO.getVchangerate()); + pickmItemVO.setFitemtype(bomItemVO.getFitemtype() - 1); + pickmItemVO.setFitemsource(bomItemVO.getFitemsource() - 1); + pickmItemVO.setFsupplytype(bomItemVO.getFsupplymode() - 1); + pickmItemVO.setBcandeliver(bomItemVO.getBdeliver()); + pickmItemVO.setVbmatchcode(bomItemVO.getVmatingno()); + pickmItemVO.setBmainmaterial(bomItemVO.getBmainmaterial()); + pickmItemVO.setBunibatch(bomItemVO.getBbmixbatch()); + pickmItemVO.setBchkitemforwr(bomItemVO.getBbkititemcheck()); + if (bomItemVO.getFcontrol().equals(Integer.valueOf(ControlEnum.CONTROL.value().toString()))) { + pickmItemVO.setBcontroll(UFBoolean.TRUE); + } else { + pickmItemVO.setBcontroll(UFBoolean.FALSE); + } + + if (MMValueCheck.isNotEmpty(bomVO.getBkititem()) && bomVO.getBkititem().booleanValue() && MMValueCheck.isNotEmpty(bomItemVO.getBkitmaterial()) && bomItemVO.getBkitmaterial().booleanValue()) { + pickmItemVO.setBkitmaterial(bomItemVO.getBkitmaterial()); + } + + pickmItemVO.setBupwardround(bomItemVO.getBupint()); + if (bomItemVO.getBcustommaterial() != null) { + pickmItemVO.setBcustomermaterial(bomItemVO.getBcustommaterial()); + } else { + pickmItemVO.setBcustomermaterial(UFBoolean.FALSE); + } + + if (bomItemVO.getBprojectmaterial() != null) { + pickmItemVO.setBprojectmaterial(bomItemVO.getBprojectmaterial()); + } else { + pickmItemVO.setBprojectmaterial(UFBoolean.FALSE); + } + + pickmItemVO.setNfixshrinknum(bomItemVO.getNbfixshrinknum()); + pickmItemVO.setNfixshrinkastnum(bomItemVO.getNbfixshrinkastnum()); + } + + private void setBackInfo(PickmItemVO pickmItemVO, BomItemParamForPickm bomItemVO) { + pickmItemVO.setFbackflushtype(bomItemVO.getFbackflushtype()); + pickmItemVO.setFbackflushtime(bomItemVO.getFbackflushtime()); + } + + private void setReplaceInfo(PickmItemVO pickmItemVO, BomItemParamForPickm bomItemVO) { + pickmItemVO.setBcanreplace(bomItemVO.getBcanreplace()); + if (!MMValueCheck.isEmpty(pickmItemVO.getBcanreplace()) && pickmItemVO.getBcanreplace().booleanValue()) { + pickmItemVO.setFreplacetype(bomItemVO.getFreplacetype()); + } + + if (!MMValueCheck.isEmpty(pickmItemVO.getBcanreplace()) && pickmItemVO.getBcanreplace().booleanValue()) { + pickmItemVO.setFreplaceinfo(Integer.valueOf(FreplaceinfoEnum.NOTREPLACE.value().toString())); + } else { + pickmItemVO.setFreplaceinfo(Integer.valueOf(FreplaceinfoEnum.CANNOTREPLACE.value().toString())); + } + + } + + private void setNumberValue(PickmHeadVO pickmHeadVO, PickmItemVO pickmItemVO, BomItemParamForPickm bomItemVO) { + boolean isFixQuantifySupply = bomItemVO.getFsupplymode().equals(Integer.valueOf(SupplyModeEnum.FIX_QUANTIFY_SUPPLY.value().toString())); + UFDouble itemNum = bomItemVO.getNitemnumwithloss(); + UFDouble itemNoDisspationNum = bomItemVO.getNitemnum(); + boolean upint = MMValueCheck.isEmpty(bomItemVO.getBupint()) ? false : bomItemVO.getBupint().booleanValue(); + pickmItemVO.setBupwardround(UFBoolean.valueOf(upint)); + PickmSubItemSetterNum numUtil = new PickmSubItemSetterNum(this.subItemdateCache); + numUtil.setNumValue(pickmHeadVO, pickmItemVO, isFixQuantifySupply, pickmHeadVO.getNnumber(), itemNum, itemNoDisspationNum); + } + + private void setFreeItem(PickmItemVO pickmItem, BomItemParamForPickm bomItemVO) { + pickmItem.setCbproductorid(bomItemVO.getCproductorid()); + if (!pickmItem.getBprojectmaterial().booleanValue()) { + pickmItem.setCbprojectid(bomItemVO.getCprojectid()); + } + + pickmItem.setCbvendorid(bomItemVO.getCvendorid()); + if (!pickmItem.getBcustomermaterial().booleanValue()) { + pickmItem.setCbcustomerid(bomItemVO.getCcustomerid()); + } + + pickmItem.setCbffileid(bomItemVO.getCffileid()); + pickmItem.setVbfree1(bomItemVO.getVfree1()); + pickmItem.setVbfree2(bomItemVO.getVfree2()); + pickmItem.setVbfree3(bomItemVO.getVfree3()); + pickmItem.setVbfree4(bomItemVO.getVfree4()); + pickmItem.setVbfree5(bomItemVO.getVfree5()); + pickmItem.setVbfree6(bomItemVO.getVfree6()); + pickmItem.setVbfree7(bomItemVO.getVfree7()); + pickmItem.setVbfree8(bomItemVO.getVfree8()); + pickmItem.setVbfree9(bomItemVO.getVfree9()); + pickmItem.setVbfree10(bomItemVO.getVfree10()); + } +} diff --git a/mmpac/src/private/nc/bs/mmpac/pickm/rule/subitems/transfer/PickmSubItemTransferFromRT.java b/mmpac/src/private/nc/bs/mmpac/pickm/rule/subitems/transfer/PickmSubItemTransferFromRT.java new file mode 100644 index 00000000..bb927fb1 --- /dev/null +++ b/mmpac/src/private/nc/bs/mmpac/pickm/rule/subitems/transfer/PickmSubItemTransferFromRT.java @@ -0,0 +1,333 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package nc.bs.mmpac.pickm.rule.subitems.transfer; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import nc.bs.framework.common.NCLocator; +import nc.bs.mmpac.pickm.rule.subitems.PickmSubItemBuilderUtils; +import nc.bs.mmpac.pickm.rule.subitems.cache.PickmSubItemBuilderDateCache; +import nc.itf.mmpac.pickm.IPickmQueryService; +import nc.util.mmf.framework.base.MMNumberUtil; +import nc.util.mmf.framework.base.MMValueCheck; +import nc.vo.bd.bom.bom0202.enumeration.SupplyModeEnum; +import nc.vo.bd.bom.bom0202.paramvo.BomWipParamForPickm; +import nc.vo.bd.rt.rt0008.entity.pac.RtItemParamForPickm; +import nc.vo.bd.rt.rt0008.entity.pac.RtQueryResultForPickm; +import nc.vo.bd.rt.rt0008.enumeration.FcontrolEnum; +import nc.vo.mmpac.mo.param.MOSubItemQueryResultVO4Pickm; +import nc.vo.mmpac.mo.param.MOSubItemRtParam; +import nc.vo.mmpac.pickm.entity.AggPickmVO; +import nc.vo.mmpac.pickm.entity.PickmHeadVO; +import nc.vo.mmpac.pickm.entity.PickmItemVO; +import nc.vo.mmpac.pickm.entity.PickmTransTypeVO; +import nc.vo.mmpac.pickm.enumeration.FbackflushtypeEnum; +import nc.vo.mmpac.pickm.enumeration.FitemsourceEnum; +import nc.vo.mmpac.pickm.enumeration.FreplaceinfoEnum; +import nc.vo.mmpac.pickm.enumeration.FsourcetypeEnum; +import nc.vo.pub.BusinessException; +import nc.vo.pub.lang.UFBoolean; +import nc.vo.pub.lang.UFDouble; + + +public class PickmSubItemTransferFromRT extends PickmSubItemTransfer { + public PickmSubItemTransferFromRT(PickmSubItemBuilderDateCache cache) { + super(cache); + } + + public PickmItemVO[] processTransfer(PickmHeadVO pickmHeadVO) throws BusinessException { + PickmSubItemBuilderUtils keyUtils = new PickmSubItemBuilderUtils(this.subItemdateCache); + String[] keys = keyUtils.getKey(pickmHeadVO); + if (MMValueCheck.isEmpty(keys)) { + return null; + } else { + Map moParamMap = this.getMOParams(pickmHeadVO); + if (MMValueCheck.isEmpty(moParamMap)) { + return null; + } else { + List subItemList = new ArrayList(); + + for(String key : keys) { + RtQueryResultForPickm resultVO = (RtQueryResultForPickm)this.subItemdateCache.getRtMap().get(key); + if (!MMValueCheck.isEmpty(resultVO) && !MMValueCheck.isEmpty(resultVO.getRtItemParam())) { + pickmHeadVO.setBkititem(resultVO.getBkititem()); + + for(RtItemParamForPickm opacitem : resultVO.getRtItemParam()) { + MOSubItemRtParam moParam = (MOSubItemRtParam)moParamMap.get(opacitem.getCrt_bid()); + if (!MMValueCheck.isEmpty(moParam)) { + PickmItemVO item = this.createSubItem(pickmHeadVO, opacitem, moParamMap); + List pickmFormWipList = new ArrayList(); + if (MMValueCheck.isNotEmpty(opacitem.getBomwipparams())) { + UFDouble bodyNum = UFDouble.ZERO_DBL; + + for(BomWipParamForPickm wipPara : opacitem.getBomwipparams()) { + bodyNum = MMNumberUtil.add(new UFDouble[]{bodyNum, wipPara.getNnum()}); + } + + PickmTransTypeVO pickmTransTypeVO = (PickmTransTypeVO)this.subItemdateCache.getPickmTransTypeVOMap().get(pickmHeadVO.getVbusitypeid()); + UFBoolean isConsiderDissipationnum = MMValueCheck.isEmpty(pickmTransTypeVO.getBcontainwaste()) ? UFBoolean.FALSE : pickmTransTypeVO.getBcontainwaste(); + PickmSubItemTransferFromWIP wipUtils = new PickmSubItemTransferFromWIP(this.subItemdateCache); + pickmFormWipList = wipUtils.trans(((MOSubItemRtParam)moParamMap.get(opacitem.getCrt_bid())).getNplannum(), ((MOSubItemRtParam)moParamMap.get(opacitem.getCrt_bid())).getNplanastnum(), bodyNum, opacitem.getNitemnum(), opacitem.getNitemnumwithloss(), item, opacitem.getBomwipparams(), isConsiderDissipationnum); + } + + if (MMValueCheck.isEmpty(pickmFormWipList)) { + subItemList.add(item); + } else { + subItemList.addAll(pickmFormWipList); + } + } + } + } + } + + return (PickmItemVO[])subItemList.toArray(new PickmItemVO[0]); + } + } + } + + private Map getMOParams(PickmHeadVO pickmHeadVO) { + String moID = null; + if ("55A2".equals(pickmHeadVO.getVsourcebilltype())) { + moID = pickmHeadVO.getCsourcebillrowid() + "55A2"; + } else if ("55C2".equals(pickmHeadVO.getVsourcebilltype())) { + moID = pickmHeadVO.getCsourcebillid() + "55C2"; + } + + MOSubItemQueryResultVO4Pickm param = null; + if (this.subItemdateCache.getMoDataMap().containsKey(moID)) { + param = (MOSubItemQueryResultVO4Pickm)this.subItemdateCache.getMoDataMap().get(moID); + } + + if (param != null && !MMValueCheck.isEmpty(param.getVproceParams())) { + Map numMap = new HashMap(); + + for(MOSubItemRtParam rtParam : param.getVproceParams()) { + numMap.put(rtParam.getVfromvrtbid(), rtParam); + } + + return numMap; + } else { + return null; + } + } + + private PickmItemVO createSubItem(PickmHeadVO pickmHeadVO, RtItemParamForPickm opacItemVO, Map moParamMap) throws BusinessException { + PickmItemVO pickmItemVO = new PickmItemVO(); + pickmItemVO.setStatus(2); + this.setBaseInfo(pickmHeadVO, pickmItemVO, opacItemVO, moParamMap); + this.setBackInfo(pickmItemVO, opacItemVO); + this.setReplaceInfo(pickmItemVO, opacItemVO); + this.setNumberValue(pickmHeadVO, pickmItemVO, opacItemVO, moParamMap); + this.setDeliverOrgOIDAndVID(pickmHeadVO, pickmItemVO, opacItemVO, moParamMap); + this.setFreeItem(pickmItemVO, opacItemVO); + this.setVdefItem(pickmItemVO, opacItemVO); + if(pickmHeadVO.getCpickmid() != null) { + //20251202 备料重算取消更新备料计划子表自定义项已下达数量 + this.setVbdef16(pickmHeadVO,pickmItemVO, opacItemVO); + } + return pickmItemVO; + } + + private void setVbdef16(PickmHeadVO pickmHeadVO, PickmItemVO pickmItemVO, RtItemParamForPickm opacItemVO) throws BusinessException { + IPickmQueryService service= ((IPickmQueryService) NCLocator.getInstance() + .lookup(IPickmQueryService.class)); + AggPickmVO aggPickmVO = service.querySingleBillByPk(pickmHeadVO.getCpickmid()); + PickmItemVO[] pickmItemVOs = (PickmItemVO[])aggPickmVO.getChildrenVO(); + if (pickmItemVOs != null && pickmItemVOs.length > 0) { + for (PickmItemVO pickmItemVO1 : pickmItemVOs) { + if(null != pickmItemVO.getCbombid() && null != pickmItemVO1.getCbombid()){ + if(pickmItemVO1.getCbombid().equals(pickmItemVO.getCbombid())) { + pickmItemVO.setVbdef16(pickmItemVO1.getVbdef16()); + } + } + } + } + + } + + private void setVdefItem(PickmItemVO pickmItemVO, RtItemParamForPickm opacItemVO) { + pickmItemVO.setVbdef1(opacItemVO.getVdef1()); + pickmItemVO.setVbdef2(opacItemVO.getVdef2()); + pickmItemVO.setVbdef3(opacItemVO.getVdef3()); + pickmItemVO.setVbdef4(opacItemVO.getVdef4()); + pickmItemVO.setVbdef5(opacItemVO.getVdef5()); + pickmItemVO.setVbdef6(opacItemVO.getVdef6()); + pickmItemVO.setVbdef7(opacItemVO.getVdef7()); + pickmItemVO.setVbdef8(opacItemVO.getVdef8()); + pickmItemVO.setVbdef9(opacItemVO.getVdef9()); + pickmItemVO.setVbdef10(opacItemVO.getVdef10()); + pickmItemVO.setVbdef11(opacItemVO.getVdef11()); + pickmItemVO.setVbdef12(opacItemVO.getVdef12()); + pickmItemVO.setVbdef13(opacItemVO.getVdef13()); + pickmItemVO.setVbdef14(opacItemVO.getVdef14()); + pickmItemVO.setVbdef15(opacItemVO.getVdef15()); + // pickmItemVO.setVbdef16(opacItemVO.getVdef16()); + + pickmItemVO.setVbdef17(opacItemVO.getVdef17()); + pickmItemVO.setVbdef18(opacItemVO.getVdef18()); + pickmItemVO.setVbdef19(opacItemVO.getVdef19()); + pickmItemVO.setVbdef20(opacItemVO.getVdef20()); + } + + private void setBaseInfo(PickmHeadVO pickmHeadVO, PickmItemVO pickmItemVO, RtItemParamForPickm opacItemVO, Map moParamMap) { + pickmItemVO.setPk_group(pickmHeadVO.getPk_group()); + pickmItemVO.setPk_org(pickmHeadVO.getPk_org()); + pickmItemVO.setPk_org_v(pickmHeadVO.getPk_org_v()); + pickmItemVO.setBautobuilt(UFBoolean.TRUE); + pickmItemVO.setCrtopacid(opacItemVO.getCrt_opacid()); + pickmItemVO.setVprocessno(opacItemVO.getVprocessno()); + MOSubItemRtParam moParam = (MOSubItemRtParam)moParamMap.get(opacItemVO.getCrt_bid()); + if (MMValueCheck.isNotEmpty(pickmHeadVO.getFsourcetype()) && FsourcetypeEnum.MOBILL_STATE.equalsValue(pickmHeadVO.getFsourcetype())) { + if ("55A2".equals(pickmHeadVO.getVsourcebilltype())) { + pickmItemVO.setVpmoprocessno(moParam.getVmoprocessid()); + } else if ("55C2".equals(pickmHeadVO.getVsourcebilltype())) { + pickmItemVO.setVdmoprocessno(moParam.getVmoprocessid()); + } + + pickmItemVO.setVprocesscode(moParam.getCrcTypeid()); + } + + pickmItemVO.setCbombid(opacItemVO.getCbom_bid()); + pickmItemVO.setVbomrowno(opacItemVO.getVbomrowno()); + pickmItemVO.setFbomtype(opacItemVO.getFbomtype()); + pickmItemVO.setVbbomversion(opacItemVO.getVitemversion()); + pickmItemVO.setVbpbomversion(opacItemVO.getVpackversion()); + Integer fitemsource = opacItemVO.getFitemsource(); + if (MMValueCheck.isEmpty(fitemsource)) { + pickmItemVO.setFitemsource(Integer.valueOf(FitemsourceEnum.PREPARE.value().toString())); + } else { + pickmItemVO.setFitemsource(fitemsource - 1); + } + + pickmItemVO.setBkitmaterial(opacItemVO.getBkitmaterial()); + pickmItemVO.setBupwardround(opacItemVO.getBupint()); + if (MMValueCheck.isEmpty(pickmItemVO.getFitemsource())) { + pickmItemVO.setFitemsource(Integer.valueOf(FitemsourceEnum.PREPARE.value().toString())); + } + + pickmItemVO.setCbmaterialid(opacItemVO.getCmaterialid()); + pickmItemVO.setCbmaterialvid(opacItemVO.getCmaterialvid()); + pickmItemVO.setCbunitid(opacItemVO.getCmeasureid()); + pickmItemVO.setCbastunitid(opacItemVO.getCassmeasureid()); + pickmItemVO.setVbchangerate(opacItemVO.getVchangerate()); + pickmItemVO.setFitemtype(opacItemVO.getFitemtype() - 1); + pickmItemVO.setFsupplytype(opacItemVO.getFsupplymode() - 1); + pickmItemVO.setCwkid(moParam.getCwkid()); + pickmItemVO.setCfeedid(opacItemVO.getCfeedid()); + pickmItemVO.setBcandeliver(UFBoolean.TRUE); + pickmItemVO.setBmainmaterial(UFBoolean.FALSE); + pickmItemVO.setBunibatch(opacItemVO.getBbmixbatch()); + pickmItemVO.setBchkitemforwr(opacItemVO.getBbkititemcheck()); + if (opacItemVO.getBcustommaterial() != null) { + pickmItemVO.setBcustomermaterial(opacItemVO.getBcustommaterial()); + } else { + pickmItemVO.setBcustomermaterial(UFBoolean.FALSE); + } + + if (opacItemVO.getBprojectmaterial() != null) { + pickmItemVO.setBprojectmaterial(opacItemVO.getBprojectmaterial()); + } else { + pickmItemVO.setBprojectmaterial(UFBoolean.FALSE); + } + + if (FcontrolEnum.CONTROLABLE.equalsValue(opacItemVO.getFcontrol())) { + pickmItemVO.setBcontroll(UFBoolean.TRUE); + } else { + pickmItemVO.setBcontroll(UFBoolean.FALSE); + } + + pickmItemVO.setNfixshrinknum(opacItemVO.getNbfixshrinknum()); + pickmItemVO.setNfixshrinkastnum(opacItemVO.getNbfixshrinkastnum()); + pickmItemVO.setOpacprocessno(opacItemVO.getOpacprocessno()); + } + + private void setBackInfo(PickmItemVO pickmItemVO, RtItemParamForPickm opacItemVO) { + if (MMValueCheck.isNotEmpty(opacItemVO)) { + pickmItemVO.setFbackflushtype(opacItemVO.getFbackflushtype()); + pickmItemVO.setFbackflushtime(opacItemVO.getFbackflushtime()); + } + + if (null == pickmItemVO.getFbackflushtype()) { + pickmItemVO.setFbackflushtype(FbackflushtypeEnum.BACKFLUSH_NONE.toInteger()); + } + + } + + private void setReplaceInfo(PickmItemVO pickmItemVO, RtItemParamForPickm opacItemVO) { + if (MMValueCheck.isNotEmpty(opacItemVO)) { + pickmItemVO.setBcanreplace(opacItemVO.getBcanreplace()); + if (!MMValueCheck.isEmpty(pickmItemVO.getBcanreplace()) && pickmItemVO.getBcanreplace().booleanValue()) { + pickmItemVO.setFreplacetype(opacItemVO.getFreplacetype()); + } + + if (!MMValueCheck.isEmpty(pickmItemVO.getBcanreplace()) && pickmItemVO.getBcanreplace().booleanValue()) { + pickmItemVO.setFreplaceinfo(Integer.valueOf(FreplaceinfoEnum.NOTREPLACE.value().toString())); + } else { + pickmItemVO.setFreplaceinfo(Integer.valueOf(FreplaceinfoEnum.CANNOTREPLACE.value().toString())); + } + } + + } + + private void setNumberValue(PickmHeadVO pickmHeadVO, PickmItemVO pickmItemVO, RtItemParamForPickm opacItemVO, Map moParamMap) { + boolean isFixQuantifySupply = opacItemVO.getFsupplymode().equals(Integer.valueOf(SupplyModeEnum.FIX_QUANTIFY_SUPPLY.value().toString())); + MOSubItemRtParam moParam = (MOSubItemRtParam)moParamMap.get(opacItemVO.getCrt_bid()); + UFDouble itemNoDisspationNum = opacItemVO.getNitemnum(); + UFDouble itemNum = opacItemVO.getNitemnumwithloss(); + if (MMNumberUtil.isNotNullAndNotZero(itemNoDisspationNum)) { + pickmItemVO.setNdissipationum(MMNumberUtil.sub(MMNumberUtil.div(MMNumberUtil.sub(itemNum, new UFDouble[]{pickmItemVO.getNfixshrinknum()}), new UFDouble[]{itemNoDisspationNum}), new UFDouble[]{UFDouble.ONE_DBL})); + } + + Integer sysdigit = (Integer)this.subItemdateCache.getDigitMap().get(pickmHeadVO.getPk_org()); + pickmItemVO.setNdissipationum(MMNumberUtil.toDigitValue(pickmItemVO.getNdissipationum(), sysdigit)); + if (!MMNumberUtil.isEqual(moParam.getNplannum(), pickmHeadVO.getNnumber()) && !isFixQuantifySupply && MMNumberUtil.isNotNullAndNotZero(pickmHeadVO.getNnumber()) && MMNumberUtil.isNotNullAndNotZero(moParam.getNplannum()) && MMValueCheck.isEmpty(moParam.getProcedureratio())) { + itemNoDisspationNum = MMNumberUtil.div(MMNumberUtil.multiply(new UFDouble[]{itemNoDisspationNum, moParam.getNplannum()}), new UFDouble[]{pickmHeadVO.getNnumber()}); + itemNum = MMNumberUtil.add(new UFDouble[]{MMNumberUtil.div(MMNumberUtil.multiply(new UFDouble[]{MMNumberUtil.sub(itemNum, new UFDouble[]{opacItemVO.getNbfixshrinknum()}), moParam.getNplannum()}), new UFDouble[]{pickmHeadVO.getNnumber()}), opacItemVO.getNbfixshrinknum()}); + } + + boolean upint = false; + if (MMValueCheck.isNotEmpty(opacItemVO)) { + upint = opacItemVO.getBupint() == null ? false : opacItemVO.getBupint().booleanValue(); + } + + pickmItemVO.setBupwardround(UFBoolean.valueOf(upint)); + PickmSubItemSetterNum numUtil = new PickmSubItemSetterNum(this.subItemdateCache); + numUtil.setNumValue(pickmHeadVO, pickmItemVO, isFixQuantifySupply, moParam.getNplannum(), itemNum, itemNoDisspationNum); + } + + private void setDeliverOrgOIDAndVID(PickmHeadVO pickmHeadVO, PickmItemVO pickmItemVO, RtItemParamForPickm opacItemVO, Map moParamMap) { + PickmTransferSourceFactory factory = new PickmTransferSourceFactory(this.subItemdateCache); + MOSubItemRtParam moParam = (MOSubItemRtParam)moParamMap.get(opacItemVO.getCrt_bid()); + factory.setSouceInfo(pickmHeadVO, pickmItemVO, opacItemVO.getIleadtimenum(), opacItemVO.getCwipid(), moParam.getTstarttime()); + } + + private void setFreeItem(PickmItemVO pickmItem, RtItemParamForPickm opacItemVO) { + pickmItem.setCbproductorid(opacItemVO.getCproductorid()); + if (!pickmItem.getBprojectmaterial().booleanValue()) { + pickmItem.setCbprojectid(opacItemVO.getCprojectid()); + } + + pickmItem.setCbvendorid(opacItemVO.getCvendorid()); + if (!pickmItem.getBcustomermaterial().booleanValue()) { + pickmItem.setCbcustomerid(opacItemVO.getCcustomerid()); + } + + pickmItem.setCbffileid(opacItemVO.getCffileid()); + pickmItem.setVbfree1(opacItemVO.getVfree1()); + pickmItem.setVbfree2(opacItemVO.getVfree2()); + pickmItem.setVbfree3(opacItemVO.getVfree3()); + pickmItem.setVbfree4(opacItemVO.getVfree4()); + pickmItem.setVbfree5(opacItemVO.getVfree5()); + pickmItem.setVbfree6(opacItemVO.getVfree6()); + pickmItem.setVbfree7(opacItemVO.getVfree7()); + pickmItem.setVbfree8(opacItemVO.getVfree8()); + pickmItem.setVbfree9(opacItemVO.getVfree9()); + pickmItem.setVbfree10(opacItemVO.getVfree10()); + } +}