diff --git a/ic/src/private/nccloud/api/impl/ic/m45/APIPurchaseInMaitainImpl.java b/ic/src/private/nccloud/api/impl/ic/m45/APIPurchaseInMaitainImpl.java index 9b4144ce..8bdefd09 100644 --- a/ic/src/private/nccloud/api/impl/ic/m45/APIPurchaseInMaitainImpl.java +++ b/ic/src/private/nccloud/api/impl/ic/m45/APIPurchaseInMaitainImpl.java @@ -125,6 +125,66 @@ public class APIPurchaseInMaitainImpl implements IAPIPurchaseInMaitain { return insert; } + @Override + public PurchaseInVO[] save_RequiresNew(List> paramList) throws BusinessException { + // MapList转聚合VOList + List aggVOList = TransferMapToVOTool.transferMapToAggVO(paramList, PurchaseInVO.class); + String creatorCode = aggVOList.get(0).getHead().getCreator(); + PurchaseInVO[] vos = aggVOList.toArray(new PurchaseInVO[aggVOList.size()]); + // 设置货位序列号VO + ICAPILocationVOUtils.setLocationVO(ICBillType.PurchaseIn.getCode(), vos); + // 1、传入数据基本非空校验 + BillVOsCheckRule checker = new BillVOsCheckRule(new CheckPurchaseInSaveValidator()); + // 2025年4月23日15点10分 采购入库单接口项目字段为波浪则清空 sdlizheng --start + for (PurchaseInVO vo : vos) { + PurchaseInBodyVO[] bodys = vo.getBodys(); + vo.getHead().setStatus(VOStatus.NEW); + if (bodys != null && bodys.length > 0) { + String[] attributeNames = bodys[0].getAttributeNames(); + for (PurchaseInBodyVO body : bodys) { + body.setStatus(VOStatus.NEW); + for (String fildName : attributeNames) { + if (body.getAttributeValue(fildName) != null && "~".equals(body.getAttributeValue(fildName))) { + body.setAttributeValue(fildName, null); + } + } + } + } + + } + // 2025年4月23日15点10分 采购入库单接口项目字段为波浪则清空 sdlizheng --end + // 添加供应商和交易类型为空赋值 + fillHeadDataBeforeCheck(vos); + checker.check(vos); + // 2、编码翻译成pk + aggVOList = TransferCodeToPKTool.transferAggVO(aggVOList); + if (aggVOList == null || aggVOList.size() < 1) { + throw new BusinessException("翻译采购入库对象失败,检查数据格式"); + } + // 翻译货位 + ICAPILocationVOUtils.translate(vos); + + // begin没取到财务组织导致的报错,在这里给财务组织赋值为库存组织 + for (PurchaseInVO vo : vos) { + if (vo.getHead().getCfanaceorgoid() != null) { + continue; + } + String cfinanceoid = (new OrgInfoQuery()).getFinanceOrgIDByCalBodyID(vo.getHead().getPk_org()); + String cfinancevid = (new OrgInfoQuery()).getFinanceOrgVIDByCalBodyID(vo.getHead().getPk_org()); + vo.getHead().setCfanaceorgoid(cfinanceoid); + vo.getHead().setCfanaceorgvid(cfinancevid); + } + // end + + // 3、其他数据填充 + new PurchaseInSaveFillValue().setDefaultValue(vos); + + BillMaintainTool tool = new BillMaintainTool(PurchaseInVO.class, + ICBillType.PurchaseIn.getCode()); + PurchaseInVO[] insert = tool.insert(vos); + return insert; + } + private UFBoolean checkWmsOrg(List paramList) throws BusinessException { if (paramList == null || paramList.size() < 1) { throw new BusinessException("转换采购入库对象失败,检查报文结构及数据格式"); diff --git a/ic/src/public/nccloud/api/ic/m45/IAPIPurchaseInMaitain.java b/ic/src/public/nccloud/api/ic/m45/IAPIPurchaseInMaitain.java new file mode 100644 index 00000000..e15d349b --- /dev/null +++ b/ic/src/public/nccloud/api/ic/m45/IAPIPurchaseInMaitain.java @@ -0,0 +1,21 @@ +package nccloud.api.ic.m45; + +import nc.vo.ic.m45.entity.PurchaseInVO; +import nc.vo.pub.BusinessException; + +import java.util.List; +import java.util.Map; + +public interface IAPIPurchaseInMaitain { + PurchaseInVO[] save(List> paramList) throws BusinessException; + + PurchaseInVO[] save_RequiresNew(List> paramList) throws BusinessException; + + PurchaseInVO[] update(List> paramList) throws BusinessException; + + void delete(PurchaseInVO[] vos) throws BusinessException; + + PurchaseInVO[] sign(PurchaseInVO[] vos) throws BusinessException; + + PurchaseInVO[] unSign(PurchaseInVO[] vos) throws BusinessException; +}