diff --git a/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java b/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java index d6defd0..ad8ba2c 100644 --- a/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java +++ b/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java @@ -104,13 +104,25 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain { BillVOsCheckRule checker = new BillVOsCheckRule(new SaleOrderValidator()); checker.check(vos); + Map origcurrencyMap = new HashMap<>(); + for (SaleOrderVO vo : vos) { + SaleOrderHVO hvo = vo.getParentVO(); + String vbillcode = hvo.getVbillcode(); + String corigcurrencyid = hvo.getCorigcurrencyid(); + origcurrencyMap.put(vbillcode, corigcurrencyid); + } // 填充默认值 new SaleOrderSaveFillValue().setDefValue(vos); - // 有值不覆盖 + // 填充默认值的时候原币的值被覆盖,重新赋值为合同平台传过来的币种 for (SaleOrderVO ordervo : vos) { + SaleOrderHVO hvo = ordervo.getParentVO(); + String vbillcode = hvo.getVbillcode(); + if (origcurrencyMap.get(vbillcode) != null && !"".equals(origcurrencyMap.get(vbillcode))) { + hvo.setCorigcurrencyid(origcurrencyMap.get(vbillcode)); + } calculatorPrice(ordervo); } - + // 有值不覆盖 SaleOrderVO[] combinBillVOs = (SaleOrderVO[]) AggVOUtil.combinBillVO(fillvos, vos); // 保存 SaleOrderVO[] retvos = (SaleOrderVO[]) PfServiceScmUtil.processBatch(SOConstant.WRITE, diff --git a/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java b/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java index 5dd7256..df25a03 100644 --- a/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java +++ b/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java @@ -23,6 +23,8 @@ import nccloud.api.rest.utils.ResultMessageUtil; import nccloud.api.so.m30.IAPISaleOrderMaitain; import nccloud.api.so.m30.IAPISaleOrderQuery; import nccloud.openapi.scmpub.pub.NCCPubRestResource; +import nccloud.openapi.scmpub.pub.TransferCodeToPKTool; +import nccloud.openapi.scmpub.pub.TransferMapToVOTool; import nccloud.openapi.scmpub.util.CallReturnBuildUtil; import nc.bs.dao.BaseDAO; import nc.bd.itf.tools.BFPubTools; @@ -143,9 +145,15 @@ public class SaleOrderResource extends NCCPubRestResource { } } + // 参数形式转换为vo并翻译 + List vosList = + TransferMapToVOTool.transferMapToAggVO(paramList, SaleOrderVO.class); + vosList = TransferCodeToPKTool.transferAggVO(vosList); + SaleOrderVO[] vos = vosList.toArray(new SaleOrderVO[vosList.size()]); + // 调用接口保存 IAPISaleOrderMaitain service = NCLocator.getInstance().lookup(IAPISaleOrderMaitain.class); - SaleOrderVO[] results = service.save(paramList); + SaleOrderVO[] results = service.save(vos); // 包装返回信息 return NCCRestUtils.toJSONString(CallReturnBuildUtil.buildSuccessResult(results, "销售订单保存成功")); } catch (Exception e) {