备料重算取消自定义项已下达数量更新
This commit is contained in:
parent
5661894e83
commit
6143a2b316
|
|
@ -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<PickmItemVO> 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<PickmItemVO> 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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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<String, MOSubItemRtParam> moParamMap = this.getMOParams(pickmHeadVO);
|
||||||
|
if (MMValueCheck.isEmpty(moParamMap)) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
List<PickmItemVO> 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<PickmItemVO> 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<String, MOSubItemRtParam> 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<String, MOSubItemRtParam> 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<String, MOSubItemRtParam> 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<String, MOSubItemRtParam> 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<String, MOSubItemRtParam> 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<String, MOSubItemRtParam> 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());
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue