补丁合并
This commit is contained in:
parent
cef7e53894
commit
677fb310df
|
|
@ -1,13 +1,7 @@
|
|||
//
|
||||
// Source code recreated from a .class file by IntelliJ IDEA
|
||||
// (powered by FernFlower decompiler)
|
||||
//
|
||||
|
||||
package nc.bs.mmpac.pickm.rule.rebuild;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -18,6 +12,7 @@ import nc.bs.mmpac.pickm.rule.subitems.PickmSubItemBuilderControler;
|
|||
import nc.itf.mmpac.pickm.IPickmQueryService;
|
||||
import nc.jdbc.framework.generator.SequenceGenerator;
|
||||
import nc.mmpac.pacpub.utils.PACMDKeyUtil;
|
||||
import nc.pubitf.para.SysInitQuery;
|
||||
import nc.util.mmf.framework.base.MMArrayUtil;
|
||||
import nc.util.mmf.framework.base.MMMapUtil;
|
||||
import nc.util.mmf.framework.base.MMNumberUtil;
|
||||
|
|
@ -27,72 +22,139 @@ import nc.vo.mmpac.pickm.entity.AggPickmVO;
|
|||
import nc.vo.mmpac.pickm.entity.PickmItemVO;
|
||||
import nc.vo.mmpac.pickm.enumeration.FreplaceinfoEnum;
|
||||
import nc.vo.pub.BusinessException;
|
||||
import nc.vo.pub.VOStatus;
|
||||
import nc.vo.pub.lang.UFBoolean;
|
||||
import nc.vo.pub.lang.UFDouble;
|
||||
import nc.vo.pubapp.pattern.pub.MapList;
|
||||
import nc.vo.pubapp.util.VORowNoUtils;
|
||||
|
||||
/**
|
||||
* 备料重算算法
|
||||
*
|
||||
* @since 6.31
|
||||
* @version 2013-7-17 下午01:38:36
|
||||
* @author baijl
|
||||
*/
|
||||
public class PickmSubItemReBuilid {
|
||||
private static final String[] updateAttributes = new String[]{"fitemtype", "fitemsource", "cbunitid", "cbastunitid", "vbchangerate", "drequiredate", "bcontroll", "nquotnum", "nquotastnum", "vpmoprocessno", "vdmoprocessno", "vprocesscode", "cwkid", "cfeedid", "cdeliverorgid", "cdeliverorgvid", "coutstockid", "csupplyorgid", "csupplyorgvid", "cinstockid", "pk_batchcode", "vbatchcode", "cstockmanid", "nplanoutnum", "nplanoutastnum", "bcandeliver", "bcanreplace", "pk_realsubs", "freplacetype", "nreplaceorder", "vreplacequotiety", "creplacesrcid", "creplacescheme", "vgroupratio", "bgroupkey", "vreplacegroup", "cgroupkeyrowid", "freplaceinfo", "fbackflushtype", "fbackflushtime", "fsupplytype", "vbmatchcode", "bmainmaterial", "bkitmaterial", "bcustomermaterial", "bprojectmaterial", "bupwardround", "nunitnum", "nunitastnum", "bautobuilt", "cbombid", "crtopacid", "vbbomversion", "vbbomversionnumber", "vbpbomversion", "vbpbomversionnumber", "nunituseastnum", "nunitusenum", "clocationid", "ctplcustomerid", "cvmivenderid", "ndissipationum", "nwithdissipationum", "nwithdissipatioastnum", "nnormaloutnum", "vbackflushtype", "boverissue", "bunibatch", "nfixshrinknum", "nfixshrinkastnum", "bchkitemforwr"};
|
||||
// 需要同步的字段
|
||||
private static final String[] updateAttributes = new String[] {
|
||||
// 子项类型,备料来源,主单位,单位
|
||||
PickmItemVO.FITEMTYPE, PickmItemVO.FITEMSOURCE, PickmItemVO.CBUNITID, PickmItemVO.CBASTUNITID,
|
||||
// 换算率,需用日期,控制,主定额用量
|
||||
PickmItemVO.VBCHANGERATE, PickmItemVO.DREQUIREDATE, PickmItemVO.BCONTROLL, PickmItemVO.NQUOTNUM,
|
||||
// 定额用量,流程需用工序,离散需用工序,工序类型编码,工作中心
|
||||
PickmItemVO.NQUOTASTNUM, PickmItemVO.VPMOPROCESSNO, PickmItemVO.VDMOPROCESSNO, PickmItemVO.VPROCESSCODE,
|
||||
PickmItemVO.CWKID,
|
||||
// 投料点,发料组织VID,发料组织oid,发料仓库
|
||||
PickmItemVO.CFEEDID, PickmItemVO.CDELIVERORGID, PickmItemVO.CDELIVERORGVID, PickmItemVO.COUTSTOCKID,
|
||||
// 供应组织oid,供应组织vid,供应仓库
|
||||
PickmItemVO.CSUPPLYORGID, PickmItemVO.CSUPPLYORGVID, PickmItemVO.CINSTOCKID,
|
||||
// 库存批次id,库存批次号,库管员
|
||||
PickmItemVO.PK_BATCHCODE, PickmItemVO.VBATCHCODE, PickmItemVO.CSTOCKMANID,
|
||||
// 计划出库主数量,计划出库数量,发料,可替代
|
||||
PickmItemVO.NPLANOUTNUM, PickmItemVO.NPLANOUTASTNUM, PickmItemVO.BCANDELIVER, PickmItemVO.BCANREPLACE,
|
||||
// 实际替代关系,替代类型,替代顺序,替代系数
|
||||
PickmItemVO.PK_REALSUBS, PickmItemVO.FREPLACETYPE, PickmItemVO.NREPLACEORDER, PickmItemVO.VREPLACEQUOTIETY,
|
||||
PickmItemVO.CREPLACESRCID,
|
||||
// 组合替代相关信息:替代方案,替代系数,替代组号,关键料,关键料行
|
||||
PickmItemVO.CREPLACESCHEME, PickmItemVO.VGROUPRATIO, PickmItemVO.BGROUPKEY, PickmItemVO.VREPLACEGROUP,
|
||||
PickmItemVO.CGROUPKEYROWID,
|
||||
// 替代信息,倒冲方式,倒冲实际,供应方式
|
||||
PickmItemVO.FREPLACEINFO, PickmItemVO.FBACKFLUSHTYPE, PickmItemVO.FBACKFLUSHTIME, PickmItemVO.FSUPPLYTYPE,
|
||||
// 配套组号,主要材料,齐料,客户专用料
|
||||
PickmItemVO.VBMATCHCODE, PickmItemVO.BMAINMATERIAL, PickmItemVO.BKITMATERIAL, PickmItemVO.BCUSTOMERMATERIAL,
|
||||
// 项目专用料,向上取整,主单位定额,单位定额
|
||||
PickmItemVO.BPROJECTMATERIAL, PickmItemVO.BUPWARDROUND, PickmItemVO.NUNITNUM, PickmItemVO.NUNITASTNUM,
|
||||
// 系统生成,BOM明细,工艺路线,生成BOM版本
|
||||
PickmItemVO.BAUTOBUILT, PickmItemVO.CBOMBID, PickmItemVO.CRTOPACID, PickmItemVO.VBBOMVERSION,
|
||||
// 生成BOM版本号,包装BOM版本,包装BOM版本号
|
||||
PickmItemVO.VBBOMVERSIONNUMBER, PickmItemVO.VBPBOMVERSION, PickmItemVO.VBPBOMVERSIONNUMBER,
|
||||
// 单位用量,单位主用量,货位,货主客户
|
||||
PickmItemVO.NUNITUSEASTNUM, PickmItemVO.NUNITUSENUM, PickmItemVO.CLOCATIONID, PickmItemVO.CTPLCUSTOMERID,
|
||||
// 寄存供应商,损耗系数,含损耗主数量
|
||||
PickmItemVO.CVMIVENDERID, PickmItemVO.NDISSIPATIONUM, PickmItemVO.NWITHDISSIPATIONUM,
|
||||
// 含损耗数量,限额标记数量,倒冲类型
|
||||
PickmItemVO.NWITHDISSIPATIOASTNUM, PickmItemVO.NNORMALOUTNUM, PickmItemVO.VBACKFLUSHTYPE,
|
||||
// 超额领料,不允许混批,固定损耗主数量,固定损耗数量
|
||||
PickmItemVO.BOVERISSUE, PickmItemVO.BUNIBATCH, PickmItemVO.NFIXSHRINKNUM, PickmItemVO.NFIXSHRINKASTNUM,
|
||||
// 完工齐套检查
|
||||
PickmItemVO.BCHKITEMFORWR, "vbdef1", "vbdef2", "vbdef3", "vbdef4", "vbdef5", "vbdef6", "vbdef7", "vbdef8",
|
||||
"vbdef9", "vbdef10", "vbdef11", "vbdef12", "vbdef13", "vbdef14", "vbdef15", "vbdef16", "vbdef17", "vbdef18",
|
||||
"vbdef19", "vbdef20", "vbnote", "vbdef45","vbdef46","vbdef47","vbdef48","vbdef49","vbdef50","vbdef51","vbdef52" };// 2025年12月23日15点40分--添加图号+版本号 vbdef45
|
||||
|
||||
// 是否生产订单触发
|
||||
private boolean isFromMO;
|
||||
private Map<String, AggPickmVO> preAggVOMap = new HashMap();
|
||||
|
||||
/**
|
||||
* 存放旧备料计划聚合VO,key为备料计划主键
|
||||
*/
|
||||
private Map<String, AggPickmVO> preAggVOMap = new HashMap<String, AggPickmVO>();
|
||||
|
||||
public PickmSubItemReBuilid(boolean isMo) {
|
||||
this.isFromMO = isMo;
|
||||
}
|
||||
|
||||
public void reBuilder(AggPickmVO[] vos) throws BusinessException {
|
||||
if (!MMValueCheck.isEmpty(vos)) {
|
||||
Map<String, UFDouble> realSubNumMap = new HashMap();
|
||||
if (MMValueCheck.isEmpty(vos)) {
|
||||
return;
|
||||
}
|
||||
// 删除实际替代关系
|
||||
// PickmRewritePLORealSub.DeletePLORealSub(vos);
|
||||
Map<String, UFDouble> realSubNumMap = new HashMap<String, UFDouble>();
|
||||
// 后端或生产订单按钮触发
|
||||
if (this.isFromMO) {
|
||||
for (AggPickmVO vo : vos) {
|
||||
PickmItemVO[] itemVOs = (PickmItemVO[]) vo.getChildren(PickmItemVO.class);
|
||||
if (!MMArrayUtil.isEmpty(itemVOs)) {
|
||||
if (MMArrayUtil.isEmpty(itemVOs)) {
|
||||
continue;
|
||||
}
|
||||
for (PickmItemVO itemVO : itemVOs) {
|
||||
if (!MMValueCheck.isEmpty(itemVO.getPk_realsubs())) {
|
||||
if (!MMValueCheck.isEmpty(realSubNumMap) && realSubNumMap.containsKey(itemVO.getPk_realsubs())) {
|
||||
realSubNumMap.put(itemVO.getPk_realsubs(), MMNumberUtil.add(new UFDouble[]{(UFDouble)realSubNumMap.get(itemVO.getPk_realsubs()), itemVO.getNplanoutnum()}));
|
||||
} else {
|
||||
if (MMValueCheck.isEmpty(realSubNumMap)
|
||||
|| !realSubNumMap.containsKey(itemVO.getPk_realsubs())) {
|
||||
realSubNumMap.put(itemVO.getPk_realsubs(), itemVO.getNplanoutnum());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
List<String> hids = new ArrayList();
|
||||
|
||||
realSubNumMap.put(itemVO.getPk_realsubs(), MMNumberUtil
|
||||
.add(realSubNumMap.get(itemVO.getPk_realsubs()), itemVO.getNplanoutnum()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 前端触发
|
||||
else {
|
||||
List<String> hids = new ArrayList<String>();
|
||||
for (AggPickmVO vo : vos) {
|
||||
if (MMValueCheck.isNotEmpty(vo.getParentVO().getCpickmid())) {
|
||||
hids.add(vo.getParentVO().getCpickmid());
|
||||
}
|
||||
}
|
||||
|
||||
if (MMValueCheck.isNotEmpty(hids)) {
|
||||
PickmQueryItemsByPKsBP query = new PickmQueryItemsByPKsBP();
|
||||
PickmItemVO[] itemVOs = query.queryItemsByHeadPks((String[])hids.toArray(new String[0]));
|
||||
PickmItemVO[] itemVOs = query.queryItemsByHeadPks(hids.toArray(new String[0]));
|
||||
if (MMValueCheck.isNotEmpty(itemVOs)) {
|
||||
for (PickmItemVO itemVO : itemVOs) {
|
||||
if (!MMValueCheck.isEmpty(itemVO.getPk_realsubs())) {
|
||||
if (!MMValueCheck.isEmpty(realSubNumMap) && realSubNumMap.containsKey(itemVO.getPk_realsubs())) {
|
||||
realSubNumMap.put(itemVO.getPk_realsubs(), MMNumberUtil.add(new UFDouble[]{(UFDouble)realSubNumMap.get(itemVO.getPk_realsubs()), itemVO.getNplanoutnum()}));
|
||||
} else {
|
||||
if (MMValueCheck.isEmpty(realSubNumMap)
|
||||
|| !realSubNumMap.containsKey(itemVO.getPk_realsubs())) {
|
||||
realSubNumMap.put(itemVO.getPk_realsubs(), itemVO.getNplanoutnum());
|
||||
} else {
|
||||
realSubNumMap.put(itemVO.getPk_realsubs(), MMNumberUtil
|
||||
.add(realSubNumMap.get(itemVO.getPk_realsubs()), itemVO.getNplanoutnum()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IPickmQueryService service= ((IPickmQueryService) NCLocator.getInstance()
|
||||
.lookup(IPickmQueryService.class));
|
||||
|
||||
|
||||
// 缓存备料计划旧VO
|
||||
this.createPreAggMap(vos);
|
||||
List<AggPickmVO> newBuildVOs = new ArrayList();
|
||||
List<AggPickmVO> newPSCVOs = new ArrayList();
|
||||
|
||||
// 调用生成子项算法,生成新的备料计划表体(生产和全程委外)
|
||||
List<AggPickmVO> newBuildVOs = new ArrayList<AggPickmVO>();
|
||||
// 生成的,全新备料计划表体(工序委外)
|
||||
List<AggPickmVO> newPSCVOs = new ArrayList<AggPickmVO>();
|
||||
for (AggPickmVO aggvo : vos) {
|
||||
if ("55E3".equals(aggvo.getParentVO().getVsourcebilltype())) {
|
||||
AggPickmVO newAggVO = new AggPickmVO();
|
||||
|
|
@ -112,59 +174,83 @@ public class PickmSubItemReBuilid {
|
|||
}
|
||||
}
|
||||
if (!MMValueCheck.isEmpty(newPSCVOs)) {
|
||||
// 工序委外
|
||||
PSCPickmSubItemBuilderControler subPSItemBuilder = new PSCPickmSubItemBuilderControler();
|
||||
AggPickmVO[] aggvos = subPSItemBuilder.process((AggPickmVO[])newPSCVOs.toArray(new AggPickmVO[0]), UFBoolean.TRUE);
|
||||
|
||||
AggPickmVO[] aggvos = subPSItemBuilder.process(newPSCVOs.toArray(new AggPickmVO[0]), UFBoolean.TRUE);
|
||||
// 进行匹配重算算法
|
||||
for (AggPickmVO aggvo : aggvos) {
|
||||
AggPickmVO preaggvo = (AggPickmVO)this.preAggVOMap.get(aggvo.getPrimaryKey());
|
||||
AggPickmVO preaggvo = this.preAggVOMap.get(aggvo.getPrimaryKey());
|
||||
this.matchItem(preaggvo, aggvo);
|
||||
}
|
||||
}
|
||||
|
||||
if (!MMValueCheck.isEmpty(newBuildVOs)) {
|
||||
// 生产和全程委外
|
||||
PickmSubItemBuilderControler subItemBuilder = new PickmSubItemBuilderControler();
|
||||
if (MMValueCheck.isNotEmpty(realSubNumMap)) {
|
||||
subItemBuilder.setRealSubNum(realSubNumMap);
|
||||
}
|
||||
|
||||
AggPickmVO[] aggvos = subItemBuilder.process((AggPickmVO[])newBuildVOs.toArray(new AggPickmVO[0]), this.isFromMO);
|
||||
AggPickmVO[] aggvos = subItemBuilder.process(newBuildVOs.toArray(new AggPickmVO[0]), this.isFromMO);
|
||||
// 进行匹配重算算法
|
||||
if (MMValueCheck.isNotEmpty(aggvos)) {
|
||||
for (AggPickmVO aggvo : aggvos) {
|
||||
AggPickmVO preaggvo = (AggPickmVO)this.preAggVOMap.get(aggvo.getPrimaryKey());
|
||||
AggPickmVO preaggvo = this.preAggVOMap.get(aggvo.getPrimaryKey());
|
||||
this.matchItem(preaggvo, aggvo);
|
||||
String k ="10";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 备料计划匹配算法
|
||||
*
|
||||
* @param preaggvo 旧备料计划聚合VO
|
||||
* @param newaggvo 新备料计划聚合VO
|
||||
*/
|
||||
private void matchItem(AggPickmVO preaggvo, AggPickmVO newaggvo) {
|
||||
Map<String, PickmItemVO> preItemMap = this.getItemMap(preaggvo);
|
||||
MapList<String, PickmItemVO> newItemMap = this.getMD5ItemMap(newaggvo);
|
||||
List<String> userBuiltItemIDs = this.getUserBuiltItemIDs(preaggvo);
|
||||
// 如果旧表体为空, 则新生成的所有子项都是新增
|
||||
if (MMValueCheck.isEmpty(preaggvo.getChildren(PickmItemVO.class))) {
|
||||
if (!MMValueCheck.isEmpty(newaggvo.getChildren(PickmItemVO.class))) {
|
||||
preaggvo.setChildrenVO(this.getNewItems(preaggvo.getParentVO().getCpickmid(), (PickmItemVO[])newaggvo.getChildrenVO()));
|
||||
if (MMValueCheck.isEmpty(newaggvo.getChildren(PickmItemVO.class))) {
|
||||
return;
|
||||
}
|
||||
preaggvo.setChildrenVO(
|
||||
this.getNewItems(preaggvo.getParentVO().getCpickmid(), (PickmItemVO[]) newaggvo.getChildrenVO()));
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
PickmItemVO[] preItems = (PickmItemVO[]) preaggvo.getChildren(PickmItemVO.class);
|
||||
Map<String, String> idMap = new HashMap();
|
||||
Map<String, String> noIdMap = new HashMap();
|
||||
|
||||
Map<String, String> idMap = new HashMap<String, String>();
|
||||
Map<String, String> noIdMap = new HashMap<String, String>();
|
||||
for (PickmItemVO item : preItems) {
|
||||
// 自制表体,维持原状,不考虑
|
||||
if (!MMValueCheck.isTrue(item.getBautobuilt())) {
|
||||
if (!MMValueCheck.isEmpty(item.getCreplacesrcid()) && (!MMValueCheck.isNotEmpty(userBuiltItemIDs) || !userBuiltItemIDs.contains(item.getCreplacesrcid()))) {
|
||||
this.setDeleteItemValue(item);
|
||||
// 非替代料
|
||||
if (MMValueCheck.isEmpty(item.getCreplacesrcid())) {
|
||||
continue;
|
||||
}
|
||||
// 自制表体的替代行
|
||||
if (MMValueCheck.isNotEmpty(userBuiltItemIDs) && userBuiltItemIDs.contains(item.getCreplacesrcid())) {
|
||||
continue;
|
||||
}
|
||||
// 非自制表体的替代行
|
||||
this.setDeleteItemValue(item);
|
||||
continue;
|
||||
|
||||
}
|
||||
} else {
|
||||
String key = this.getMatchKey(item);
|
||||
if (!MMMapUtil.isEmpty(newItemMap) && newItemMap.containsKey(key)) {
|
||||
// 只在旧行存在,新行不存在
|
||||
if (MMMapUtil.isEmpty(newItemMap) || !newItemMap.containsKey(key)) {
|
||||
this.setDeleteItemValue(item);
|
||||
// 只在旧表体存在的替代料行
|
||||
this.setReplItemValue(item, preItemMap);
|
||||
continue;
|
||||
}
|
||||
// 新旧行都存在
|
||||
if (newItemMap.containsKey(key)) {
|
||||
List<PickmItemVO> newItems = newItemMap.get(key);
|
||||
Iterator var15 = newItems.iterator();
|
||||
if (var15.hasNext()) {
|
||||
PickmItemVO newItem = (PickmItemVO)var15.next();
|
||||
for (PickmItemVO newItem : newItems) {
|
||||
if (MMValueCheck.isNotEmpty(newItem.getCpickm_bid())) {
|
||||
if (MMValueCheck.isNotEmpty(item.getCpickm_bid())) {
|
||||
idMap.put(newItem.getCpickm_bid(), item.getCpickm_bid());
|
||||
|
|
@ -172,197 +258,227 @@ public class PickmSubItemReBuilid {
|
|||
item.setCpickm_bid(newItem.getCpickm_bid());
|
||||
}
|
||||
}
|
||||
|
||||
if (FreplaceinfoEnum.REPLACED.equalsValue(newItem.getFreplaceinfo()) && MMValueCheck.isEmpty(newItem.getCgroupkeyrowid())) {
|
||||
if (FreplaceinfoEnum.REPLACED.equalsValue(newItem.getFreplaceinfo())
|
||||
&& MMValueCheck.isEmpty(newItem.getCgroupkeyrowid())) {
|
||||
if (MMValueCheck.isEmpty(item.getCpickm_bid())) {
|
||||
item.setCpickm_bid(newItem.getCpickm_bid());
|
||||
}
|
||||
|
||||
noIdMap.put(newItem.getVrowno(), item.getCpickm_bid());
|
||||
}
|
||||
|
||||
if (MMValueCheck.isNotEmpty(newItem.getCreplacesrcid()) && MMValueCheck.isTrue(newItem.getBgroupkey())) {
|
||||
if (MMValueCheck.isNotEmpty(newItem.getCreplacesrcid())
|
||||
&& MMValueCheck.isTrue(newItem.getBgroupkey())) {
|
||||
if (MMValueCheck.isEmpty(item.getCpickm_bid())) {
|
||||
item.setCpickm_bid(newItem.getCpickm_bid());
|
||||
}
|
||||
|
||||
noIdMap.put(newItem.getCreplacesrcid() + newItem.getVreplacegroup(), item.getCpickm_bid());
|
||||
}
|
||||
|
||||
this.updatePreItem(item, newItem);
|
||||
newItemMap.get(key).remove(newItem);
|
||||
break;
|
||||
}
|
||||
|
||||
if (MMValueCheck.isEmpty(newItemMap.get(key))) {
|
||||
newItemMap.remove(key);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.setDeleteItemValue(item);
|
||||
this.setReplItemValue(item, preItemMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 对新行有,旧行没有的数据,要添加到旧行中,并添加序号
|
||||
if (MMValueCheck.isNotEmpty(newItemMap)) {
|
||||
PickmItemVO[] items = preItems;
|
||||
|
||||
for (String key : newItemMap.keySet()) {
|
||||
items = this.addNewItem(items, (PickmItemVO[])newItemMap.get(key).toArray(new PickmItemVO[0]), noIdMap);
|
||||
items = this.addNewItem(items, newItemMap.get(key).toArray(new PickmItemVO[0]), noIdMap);
|
||||
}
|
||||
|
||||
preaggvo.setChildrenVO(items);
|
||||
}
|
||||
|
||||
if (!MMValueCheck.isEmpty(preaggvo.getChildrenVO())) {
|
||||
Map<String, String> idNoMap = new HashMap();
|
||||
|
||||
if (MMValueCheck.isEmpty(preaggvo.getChildrenVO())) {
|
||||
return;
|
||||
}
|
||||
Map<String, String> idNoMap = new HashMap<String, String>();
|
||||
for (PickmItemVO item : (PickmItemVO[]) preaggvo.getChildrenVO()) {
|
||||
if (MMValueCheck.isNotEmpty(item.getCpickm_bid())) {
|
||||
idNoMap.put(item.getCpickm_bid(), item.getVrowno());
|
||||
}
|
||||
}
|
||||
|
||||
for (PickmItemVO item : (PickmItemVO[]) preaggvo.getChildrenVO()) {
|
||||
if (MMValueCheck.isNotEmpty(item.getCgroupkeyrowid())) {
|
||||
if (MMValueCheck.isNotEmpty(idMap) && idMap.containsKey(item.getCgroupkeyrowid())) {
|
||||
item.setCgroupkeyrowid((String)idMap.get(item.getCgroupkeyrowid()));
|
||||
item.setCgroupkeyrowid(idMap.get(item.getCgroupkeyrowid()));
|
||||
} else if (MMValueCheck.isNotEmpty(noIdMap) && noIdMap.containsKey(item.getCgroupkeyrowid())) {
|
||||
item.setCgroupkeyrowid((String)noIdMap.get(item.getCgroupkeyrowid()));
|
||||
item.setCgroupkeyrowid(noIdMap.get(item.getCgroupkeyrowid()));
|
||||
}
|
||||
}
|
||||
|
||||
if (MMValueCheck.isNotEmpty(item.getCreplacesrcid())) {
|
||||
if (MMValueCheck.isNotEmpty(idMap) && idMap.containsKey(item.getCreplacesrcid())) {
|
||||
item.setCreplacesrcid((String)idMap.get(item.getCreplacesrcid()));
|
||||
item.setCreplacesrcid(idMap.get(item.getCreplacesrcid()));
|
||||
} else if (MMValueCheck.isNotEmpty(noIdMap) && noIdMap.containsKey(item.getCreplacesrcid())) {
|
||||
item.setCreplacesrcid((String)noIdMap.get(item.getCreplacesrcid()));
|
||||
item.setCreplacesrcid(noIdMap.get(item.getCreplacesrcid()));
|
||||
}
|
||||
|
||||
if (idNoMap.containsKey(item.getCreplacesrcid())) {
|
||||
if (MMValueCheck.isEmpty(item.getVreplacegroup())) {
|
||||
item.setVbnote(PickmLangConsts.getReplace_ISEQNUMBER(new String[]{(String)idNoMap.get(item.getCreplacesrcid())}));
|
||||
item.setVbnote(PickmLangConsts
|
||||
.getReplace_ISEQNUMBER(new String[] { idNoMap.get(item.getCreplacesrcid()) }));
|
||||
} else {
|
||||
item.setVbnote(PickmLangConsts.getRepBodyNote_Group_Msg((String)idNoMap.get(item.getCreplacesrcid())));
|
||||
}
|
||||
item.setVbnote(PickmLangConsts.getRepBodyNote_Group_Msg(idNoMap.get(item.getCreplacesrcid())));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private PickmItemVO[] getNewItems(String cpickmid, PickmItemVO[] items) {
|
||||
for (PickmItemVO item : items) {
|
||||
item.setCpickmid(cpickmid);
|
||||
}
|
||||
|
||||
return items;
|
||||
}
|
||||
|
||||
/**
|
||||
* 得到用户自制的非替代表体行ID
|
||||
*
|
||||
* @param preaggvo
|
||||
* @return
|
||||
*/
|
||||
private List<String> getUserBuiltItemIDs(AggPickmVO preaggvo) {
|
||||
if (MMValueCheck.isEmpty(preaggvo.getChildren(PickmItemVO.class))) {
|
||||
return null;
|
||||
} else {
|
||||
List<String> ids = new ArrayList();
|
||||
}
|
||||
List<String> ids = new ArrayList<String>();
|
||||
PickmItemVO[] preItems = (PickmItemVO[]) preaggvo.getChildren(PickmItemVO.class);
|
||||
|
||||
for (PickmItemVO item : preItems) {
|
||||
if (!MMValueCheck.isTrue(item.getBautobuilt()) && MMValueCheck.isEmpty(item.getCreplacesrcid())) {
|
||||
// 自制表体
|
||||
if (!MMValueCheck.isTrue(item.getBautobuilt())) {
|
||||
// 非替代行
|
||||
if (MMValueCheck.isEmpty(item.getCreplacesrcid())) {
|
||||
ids.add(item.getCpickm_bid());
|
||||
}
|
||||
}
|
||||
|
||||
return ids;
|
||||
}
|
||||
return ids;
|
||||
}
|
||||
|
||||
private void updatePreItem(PickmItemVO preItemVO, PickmItemVO newItemVO) {
|
||||
if (preItemVO.getStatus() != 2) {
|
||||
preItemVO.setStatus(1);
|
||||
if (preItemVO.getStatus() != VOStatus.NEW) {
|
||||
preItemVO.setStatus(VOStatus.UPDATED);
|
||||
}
|
||||
|
||||
for(String attr : updateAttributes) {
|
||||
// 同步字段
|
||||
for (String attr : PickmSubItemReBuilid.updateAttributes) {
|
||||
if(attr.equals("vbdef16")){
|
||||
continue;
|
||||
}
|
||||
preItemVO.setAttributeValue(attr, newItemVO.getAttributeValue(attr));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private PickmItemVO[] addNewItem(PickmItemVO[] preItems, PickmItemVO[] newItems, Map<String, String> noIdMap) {
|
||||
List<PickmItemVO> returnItems = new ArrayList();
|
||||
List<PickmItemVO> returnItems = new ArrayList<PickmItemVO>();
|
||||
UFDouble vrowno = UFDouble.ZERO_DBL;
|
||||
|
||||
for (PickmItemVO preItem : preItems) {
|
||||
// 补全行号
|
||||
vrowno = MMNumberUtil.max(vrowno, VORowNoUtils.getUFDouble(preItem.getVrowno()));
|
||||
returnItems.add(preItem);
|
||||
}
|
||||
|
||||
String newRowno = vrowno.toString();
|
||||
|
||||
for (PickmItemVO newItem : newItems) {
|
||||
String oldNo = newItem.getVrowno();
|
||||
if (FreplaceinfoEnum.REPLACED.equalsValue(newItem.getFreplaceinfo()) && MMValueCheck.isEmpty(newItem.getCgroupkeyrowid())) {
|
||||
if (FreplaceinfoEnum.REPLACED.equalsValue(newItem.getFreplaceinfo())
|
||||
&& MMValueCheck.isEmpty(newItem.getCgroupkeyrowid())) {
|
||||
if (MMValueCheck.isEmpty(newItem.getCpickm_bid())) {
|
||||
newItem.setCpickm_bid((new SequenceGenerator()).generate());
|
||||
newItem.setCpickm_bid(new SequenceGenerator().generate());
|
||||
}
|
||||
|
||||
noIdMap.put(oldNo, newItem.getCpickm_bid());
|
||||
}
|
||||
|
||||
if (MMValueCheck.isNotEmpty(newItem.getCreplacesrcid()) && MMValueCheck.isTrue(newItem.getBgroupkey())) {
|
||||
if (MMValueCheck.isEmpty(newItem.getCpickm_bid())) {
|
||||
newItem.setCpickm_bid((new SequenceGenerator()).generate());
|
||||
newItem.setCpickm_bid(new SequenceGenerator().generate());
|
||||
}
|
||||
|
||||
noIdMap.put(newItem.getCreplacesrcid() + newItem.getVreplacegroup(), newItem.getCpickm_bid());
|
||||
}
|
||||
|
||||
newRowno = VORowNoUtils.getRowNoAfterByRule(newRowno.toString(), 10);
|
||||
// 新行号
|
||||
newRowno = VORowNoUtils.getRowNoAfterByRule(newRowno.toString(), VORowNoUtils.STEP_VALUE);
|
||||
newItem.setCpickmid(preItems[0].getCpickmid());
|
||||
newItem.setStatus(2);
|
||||
newItem.setStatus(VOStatus.NEW);
|
||||
newItem.setVrowno(newRowno);
|
||||
returnItems.add(newItem);
|
||||
}
|
||||
return returnItems.toArray(new PickmItemVO[0]);
|
||||
|
||||
return (PickmItemVO[])returnItems.toArray(new PickmItemVO[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 只在旧表体存在的替代料行: a) 替代料计划出库主数量变更为0; b) 取消替代料与主料的关联;
|
||||
*
|
||||
* @param item
|
||||
* @param preItemMap
|
||||
*/
|
||||
private void setReplItemValue(PickmItemVO item, Map<String, PickmItemVO> preItemMap) {
|
||||
if (item.getCreplacesrcid() != null && preItemMap.containsKey(item.getCreplacesrcid())) {
|
||||
if (((PickmItemVO)preItemMap.get(item.getCreplacesrcid())).getCbombid() != null || ((PickmItemVO)preItemMap.get(item.getCreplacesrcid())).getCrtopacid() != null) {
|
||||
item.setCreplacesrcid((String)null);
|
||||
item.setPk_realsubs((String)null);
|
||||
item.setNreplaceorder((Integer)null);
|
||||
item.setVreplacequotiety((String)null);
|
||||
// 没有替代关系的话返回
|
||||
if (item.getCreplacesrcid() == null || !preItemMap.containsKey(item.getCreplacesrcid())) {
|
||||
return;
|
||||
}
|
||||
// 主料不是系统生成的不处理
|
||||
if (preItemMap.get(item.getCreplacesrcid()).getCbombid() == null
|
||||
&& preItemMap.get(item.getCreplacesrcid()).getCrtopacid() == null) {
|
||||
return;
|
||||
}
|
||||
// 替代来源
|
||||
item.setCreplacesrcid(null);
|
||||
// 实际替代关系
|
||||
item.setPk_realsubs(null);
|
||||
// 替代顺序
|
||||
item.setNreplaceorder(null);
|
||||
// 替代系数
|
||||
item.setVreplacequotiety(null);
|
||||
|
||||
}
|
||||
|
||||
private void setDeleteItemValue(PickmItemVO item) {
|
||||
if (item.getStatus() != 2) {
|
||||
item.setStatus(1);
|
||||
// 设为修改态
|
||||
if (item.getStatus() != VOStatus.NEW) {
|
||||
item.setStatus(VOStatus.UPDATED);
|
||||
}
|
||||
|
||||
// 单位定位为0
|
||||
item.setNunitnum(UFDouble.ZERO_DBL);
|
||||
item.setNunitastnum(UFDouble.ZERO_DBL);
|
||||
// 定额用量为0
|
||||
item.setNquotnum(UFDouble.ZERO_DBL);
|
||||
item.setNquotastnum(UFDouble.ZERO_DBL);
|
||||
// 单位用量为0
|
||||
item.setNunitusenum(UFDouble.ZERO_DBL);
|
||||
item.setNunituseastnum(UFDouble.ZERO_DBL);
|
||||
// 计划出库主数量
|
||||
item.setNplanoutnum(UFDouble.ZERO_DBL);
|
||||
item.setNplanoutastnum(UFDouble.ZERO_DBL);
|
||||
// 固定损耗主数量
|
||||
item.setNfixshrinknum(UFDouble.ZERO_DBL);
|
||||
item.setNfixshrinkastnum(UFDouble.ZERO_DBL);
|
||||
// 损耗系数
|
||||
item.setNdissipationum(UFDouble.ZERO_DBL);
|
||||
item.setVreplacequotiety((String)null);
|
||||
item.setCreplacesrcid((String)null);
|
||||
item.setNreplaceorder((Integer)null);
|
||||
item.setVreplacequotiety((String)null);
|
||||
item.setFreplaceinfo((Integer)null);
|
||||
// 替代信息
|
||||
// 替代系数
|
||||
item.setVreplacequotiety(null);
|
||||
// 替代来源
|
||||
item.setCreplacesrcid(null);
|
||||
// 替代顺序
|
||||
item.setNreplaceorder(null);
|
||||
// 替代系数
|
||||
item.setVreplacequotiety(null);
|
||||
// 替代信息
|
||||
item.setFreplaceinfo(null);
|
||||
UFBoolean needDelete = UFBoolean.FALSE;
|
||||
try {
|
||||
needDelete = SysInitQuery.getParaBoolean(item.getPk_org(), "Beiliao_Shanhang_001");
|
||||
} catch (BusinessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// 项目:当备料计划行的计划出库数量=0且累计待发数量=0且累计出库数量=0时,将此备料计划行删除
|
||||
if (needDelete.booleanValue() && MMNumberUtil.isNullOrZero(item.getNaccoutnum())
|
||||
&& MMNumberUtil.isNullOrZero(item.getNshouldnum())
|
||||
&& MMNumberUtil.isNullOrZero(item.getNplanoutnum())) {
|
||||
item.setStatus(VOStatus.DELETED);
|
||||
}
|
||||
// 备注
|
||||
item.setVbnote(PickmLangConsts.getMSG_RebuildDeleteItem());
|
||||
}
|
||||
|
||||
|
|
@ -370,124 +486,133 @@ public class PickmSubItemReBuilid {
|
|||
for (AggPickmVO aggvo : aggvos) {
|
||||
this.preAggVOMap.put(aggvo.getPrimaryKey(), aggvo);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private Map<String, PickmItemVO> getItemMap(AggPickmVO aggvo) {
|
||||
if (MMValueCheck.isEmpty(aggvo.getChildren(PickmItemVO.class))) {
|
||||
return null;
|
||||
} else {
|
||||
}
|
||||
PickmItemVO[] items = (PickmItemVO[]) aggvo.getChildren(PickmItemVO.class);
|
||||
Map<String, PickmItemVO> itemMap = new HashMap();
|
||||
|
||||
Map<String, PickmItemVO> itemMap = new HashMap<String, PickmItemVO>();
|
||||
for (PickmItemVO item : items) {
|
||||
// 将新增的表体行数据过滤掉
|
||||
if (item.getCpickm_bid() != null) {
|
||||
itemMap.put(item.getCpickm_bid(), item);
|
||||
}
|
||||
}
|
||||
|
||||
return itemMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private MapList<String, PickmItemVO> getMD5ItemMap(AggPickmVO aggvo) {
|
||||
if (MMValueCheck.isEmpty(aggvo.getChildren(PickmItemVO.class))) {
|
||||
return null;
|
||||
} else {
|
||||
}
|
||||
PickmItemVO[] items = (PickmItemVO[]) aggvo.getChildren(PickmItemVO.class);
|
||||
MapList<String, PickmItemVO> itemMap = new MapList();
|
||||
|
||||
MapList<String, PickmItemVO> itemMap = new MapList<String, PickmItemVO>();
|
||||
for (PickmItemVO item : items) {
|
||||
String key = this.getMatchKey(item);
|
||||
itemMap.put(key, item);
|
||||
}
|
||||
|
||||
return itemMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得匹配KEY,因为字段太长用MD5加密
|
||||
*
|
||||
* @param item
|
||||
* @return
|
||||
*/
|
||||
private String getMatchKey(PickmItemVO item) {
|
||||
StringBuffer key = new StringBuffer();
|
||||
// BOM类型
|
||||
if (item.getFbomtype() != null) {
|
||||
key.append(item.getFbomtype());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
// BOM行号
|
||||
if (item.getVbomrowno() != null) {
|
||||
key.append(item.getVbomrowno());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
if (item.getCbombid() != null) {
|
||||
key.append(item.getCbombid());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
// 工序号
|
||||
if (item.getVprocessno() != null) {
|
||||
key.append(item.getVprocessno());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
// 工序耗料行号
|
||||
if (item.getOpacprocessno() != null) {
|
||||
key.append(item.getOpacprocessno());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
// 物料VID
|
||||
if (item.getCbmaterialvid() != null) {
|
||||
key.append(item.getCbmaterialvid());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
// 辅单位
|
||||
if (item.getCbastunitid() != null) {
|
||||
key.append(item.getCbastunitid());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
// 项目
|
||||
if (item.getCbprojectid() != null) {
|
||||
key.append(item.getCbprojectid());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
// 生产厂商
|
||||
if (item.getCbproductorid() != null) {
|
||||
key.append(item.getCbproductorid());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
// 供应商
|
||||
if (item.getCbvendorid() != null) {
|
||||
key.append(item.getCbvendorid());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
// 客户
|
||||
if (item.getCbcustomerid() != null) {
|
||||
key.append(item.getCbcustomerid());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
// 特征码
|
||||
if (item.getCbffileid() != null) {
|
||||
key.append(item.getCbffileid());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
for(int i = 1; i < 11; ++i) {
|
||||
for (int i = 1; i < 11; i++) {
|
||||
if (item.getAttributeValue("vbfree" + i) != null) {
|
||||
key.append(item.getAttributeValue("vbfree" + i));
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
}
|
||||
|
||||
// 为工序委外备料计划增加来源备料计划行ID维度
|
||||
if (item.getVpscsrcpickmbid() != null) {
|
||||
key.append(item.getCbvendorid());
|
||||
} else {
|
||||
key.append("~");
|
||||
}
|
||||
|
||||
return PACMDKeyUtil.getMD5String(key.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,11 +7,8 @@ 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;
|
||||
|
|
@ -21,7 +18,6 @@ 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;
|
||||
|
|
@ -33,7 +29,6 @@ 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) {
|
||||
|
|
@ -67,6 +62,7 @@ public class PickmSubItemTransferFromBom extends PickmSubItemTransfer {
|
|||
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()});
|
||||
}
|
||||
|
|
@ -91,7 +87,7 @@ public class PickmSubItemTransferFromBom extends PickmSubItemTransfer {
|
|||
}
|
||||
}
|
||||
|
||||
private PickmItemVO createSubItem(PickmHeadVO pickmHeadVO, BomItemResultVOForPickm bomVO, BomItemParamForPickm bomItem) throws BusinessException {
|
||||
private PickmItemVO createSubItem(PickmHeadVO pickmHeadVO, BomItemResultVOForPickm bomVO, BomItemParamForPickm bomItem) {
|
||||
PickmItemVO pickmItemVO = new PickmItemVO();
|
||||
pickmItemVO.setStatus(2);
|
||||
this.setBaseInfo(pickmHeadVO, pickmItemVO, bomVO, bomItem);
|
||||
|
|
@ -101,10 +97,6 @@ public class PickmSubItemTransferFromBom extends PickmSubItemTransfer {
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
@ -124,30 +116,23 @@ public class PickmSubItemTransferFromBom extends PickmSubItemTransfer {
|
|||
pickmItemVO.setVbdef13(bomItem.getVdef13());
|
||||
pickmItemVO.setVbdef14(bomItem.getVdef14());
|
||||
pickmItemVO.setVbdef15(bomItem.getVdef15());
|
||||
// pickmItemVO.setVbdef16("15");
|
||||
// pickmItemVO.setVbdef16(bomItem.getVdef16());
|
||||
pickmItemVO.setVbdef17(bomItem.getVdef17());
|
||||
pickmItemVO.setVbdef18(bomItem.getVdef18());
|
||||
pickmItemVO.setVbdef19(bomItem.getVdef19());
|
||||
pickmItemVO.setVbdef20(bomItem.getVdef20());
|
||||
pickmItemVO.setVbnote(bomItem.getVnote());
|
||||
//2025年12月23日15点41分--添加图号+版本号--vbdef45
|
||||
pickmItemVO.setAttributeValue("vbdef45",bomItem.getVdef45());
|
||||
pickmItemVO.setAttributeValue("vbdef46",bomItem.getVdef46());
|
||||
pickmItemVO.setAttributeValue("vbdef47",bomItem.getVdef47());
|
||||
pickmItemVO.setAttributeValue("vbdef48",bomItem.getVdef48());
|
||||
pickmItemVO.setAttributeValue("vbdef49",bomItem.getVdef49());
|
||||
pickmItemVO.setAttributeValue("vbdef50",bomItem.getVdef50());
|
||||
pickmItemVO.setAttributeValue("vbdef51",bomItem.getVdef51());
|
||||
pickmItemVO.setAttributeValue("vbdef52",bomItem.getVdef52());
|
||||
}
|
||||
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.setVbnote(pickmItemVO1.getVbnote());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 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);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue