材料出库代码同步-用友李正

This commit is contained in:
mzr 2025-10-24 11:39:52 +08:00
parent 3c913ba2a2
commit 1e33573e5e
1 changed files with 31 additions and 7 deletions

View File

@ -27,7 +27,6 @@ import nc.vo.ic.pub.define.ICPubMetaNameConst;
import nc.vo.mmpac.pickm.entity.AggPickmVO;
import nc.vo.mmpac.pickm.entity.PickmItemVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.ISuperVO;
import nc.vo.pub.VOStatus;
import nc.vo.pub.lang.UFDouble;
import nc.vo.scmpub.check.billvalidate.BillVOsCheckRule;
@ -39,7 +38,6 @@ import nccloud.api.impl.ic.m4d.fill.MaterialOutSaveFillValue;
import nccloud.api.impl.ic.m4d.fill.MaterialOutUpdateFillValue;
import nccloud.api.impl.ic.pub.check.CheckProhibitUpdateFields;
import nccloud.api.uapbd.wms.utils.IWmsSyncUtils;
import nccloud.baseapp.core.log.NCCForUAPLogger;
import nccloud.openapi.ic.util.ICAPILocationVOUtils;
import nccloud.openapi.scmpub.pub.TransferCodeToPKTool;
import nccloud.openapi.scmpub.pub.TransferMapToVOTool;
@ -91,7 +89,7 @@ public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain {
// if (isSpecialCase) {
// processPickingPlanSpecialLogic(vos);
// }
// 其他数据填充
//其他数据填充
new MaterialOutSaveFillValue().setDefaultValue(vos);
IMaterialOutMaintainAPI materialOut = NCLocator.getInstance().lookup(IMaterialOutMaintainAPI.class);
@ -123,7 +121,7 @@ public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain {
// if (isSpecialCase) {
// processPickingPlanSpecialLogic(vos);
// }
// 其他数据填充
//其他数据填充
new MaterialOutSaveFillValue().setDefaultValue(vos);
IMaterialOutMaintainAPI materialOut = NCLocator.getInstance().lookup(IMaterialOutMaintainAPI.class);
@ -247,7 +245,7 @@ public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain {
roigBvo.setAttributeValue(battr, newBvo.getAttributeValue(battr));
bfields.add(battr);
}
// 设置货位序列号孙表,把原来的孙表删除修改的货位置为新增
//设置货位序列号孙表,把原来的孙表删除修改的货位置为新增
if (null != newBvo.getLocationVOs()) {
List<ICLocationVO> allloc = new ArrayList<ICLocationVO>();
if (null != deleteLoc && null != deleteLoc.get(roigBvo.getCgeneralbid())) {
@ -264,7 +262,7 @@ public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain {
}
// 翻译货位
ICAPILocationVOUtils.translate(materialOutVOs);
// 其他数据填充
//其他数据填充
new MaterialOutUpdateFillValue().setDefaultValue(materialOutVOs, bfields);
}
}
@ -274,8 +272,34 @@ public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain {
ICBillType.MaterialOut.getCode());
tool.doBeforeInsert(materialOutVOs);
MaterialOutVO[] updateVOS = NCLocator.getInstance().lookup(IMaterialOutMaintain.class).update(materialOutVOs, originBills);
IWmsSyncUtils utils = NCLocator.getInstance().lookup(IWmsSyncUtils.class);
//2025年10月15日14点25分--重新覆盖单据转换规则转换的项目字段--wms对接公司存在备料计划与材料出库明细项目字段不一致情况--star
if (utils != null && utils.isWMS()) {
//获取originBill里表体的主键和项目字段形成Map,再遍历materialOutVOs去替换明细的项目
Map<String, String> originProjectMap = new HashMap<>();
for (MaterialOutVO originBill : originBills) {
MaterialOutBodyVO[] originBodys = originBill.getBodys();
if (originBodys != null) {
for (MaterialOutBodyVO originBody : originBodys) {
originProjectMap.put(originBody.getCgeneralbid(), originBody.getCprojectid());
}
}
}
for (MaterialOutVO materialOutVO : materialOutVOs) {
MaterialOutBodyVO[] bodyVOs = materialOutVO.getBodys();
if (bodyVOs != null) {
for (MaterialOutBodyVO bodyVO : bodyVOs) {
String projectId = originProjectMap.get(bodyVO.getCgeneralbid());
if (projectId != null) {
bodyVO.setCprojectid(projectId);
}
}
}
}
}
//2025年10月15日14点25分--重新覆盖单据转换规则转换的项目字段--wms对接公司存在备料计划与材料出库明细项目字段不一致情况--end
MaterialOutVO[] updateVOS = NCLocator.getInstance().lookup(IMaterialOutMaintain.class).update(materialOutVOs, originBills);
// 如果是WMS系统 则自动签字
if (utils != null && utils.isWMS()) {
log.info("当前是WMS系统用户,自动签字");