From 509fab347dc6e50344ba0374abcab38dbea5e0a4 Mon Sep 17 00:00:00 2001 From: lihao Date: Tue, 21 Oct 2025 18:43:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=9F=E8=AE=A1=E5=88=92=EF=BC=88=E5=88=B0?= =?UTF-8?q?=E8=B4=A7=E5=8D=95=E4=BF=9D=E5=AD=98=E6=A0=A1=E9=AA=8C=E6=9C=80?= =?UTF-8?q?=E7=BB=88=E9=9C=80=E6=B1=82=E6=95=B0=E9=87=8F=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transfer/action/TransferOrderAction.java | 7 ++-- .../maintain/action/ArriveInsertAction.java | 3 ++ .../m23/maintain/rule/CheckFinalNumRule.java | 42 +++++++++++++++++++ 3 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 pu/src/private/nc/impl/pu/m23/maintain/rule/CheckFinalNumRule.java diff --git a/pu/src/client/nccloud/web/pu/arrival/transfer/action/TransferOrderAction.java b/pu/src/client/nccloud/web/pu/arrival/transfer/action/TransferOrderAction.java index 5555472b..110dbba4 100644 --- a/pu/src/client/nccloud/web/pu/arrival/transfer/action/TransferOrderAction.java +++ b/pu/src/client/nccloud/web/pu/arrival/transfer/action/TransferOrderAction.java @@ -30,6 +30,7 @@ import nc.vo.pub.BusinessException; import nc.vo.pub.compiler.PfParameterVO; import nc.vo.pub.lang.UFBoolean; import nc.vo.pub.lang.UFDateTime; +import nc.vo.pub.lang.UFDouble; import nc.vo.scmpub.util.ArrayUtil; import nc.vo.scmpub.util.BillBodySortUtils; import nc.vo.scmpub.util.TransferSortUtil; @@ -163,9 +164,9 @@ public class TransferOrderAction implements ICommonAction { for (OrderVO vo : sorceVOs) { for (OrderItemVO itemVO:vo.getBVO()){ - if(null != itemVO.getAttributeValue("vbdef33") && itemVO.getNastnum().compareTo(itemVO.getAttributeValue("vbdef33"))<0){ - throw new BusinessException("采购数量大于最终需求数量不能生成采购订单!"); - } + // if(null != itemVO.getAttributeValue("vbdef33") && itemVO.getNastnum().compareTo(new UFDouble(String.valueOf(itemVO.getAttributeValue("vbdef33"))))>0){ + // throw new BusinessException("采购数量大于最终需求数量不能生成采购订单!"); + // } } } AggregatedValueObject[] arrivos = service.runChangeDataAry("21", "23", sorceVOs, (PfParameterVO)null); diff --git a/pu/src/private/nc/impl/pu/m23/maintain/action/ArriveInsertAction.java b/pu/src/private/nc/impl/pu/m23/maintain/action/ArriveInsertAction.java index a80f51fd..3f6dd263 100644 --- a/pu/src/private/nc/impl/pu/m23/maintain/action/ArriveInsertAction.java +++ b/pu/src/private/nc/impl/pu/m23/maintain/action/ArriveInsertAction.java @@ -8,6 +8,7 @@ package nc.impl.pu.m23.maintain.action; import nc.bs.pu.m23.maintain.ArriveInsertBP; import nc.bs.pu.m23.plugin.ArriveActionPlugInPoint; import nc.impl.pu.m23.maintain.rule.CheckBillDateRule; +import nc.impl.pu.m23.maintain.rule.CheckFinalNumRule; import nc.impl.pubapp.pattern.rule.processer.AroundProcesser; import nc.vo.pu.m23.entity.ArriveVO; import nc.vo.pu.m23.env.ArrivalUIToBSEnv; @@ -19,6 +20,7 @@ public class ArriveInsertAction { public ArriveVO[] insertArrive(ArriveVO[] voArray, ArrivalUIToBSEnv env) { AroundProcesser processer = new AroundProcesser(ArriveActionPlugInPoint.ArriveInsertAction); addBeforeRule(processer); + processer.addBeforeRule(new CheckBillDateRule()); processer.before(voArray); ArriveInsertBP bp = new ArriveInsertBP(env); @@ -28,5 +30,6 @@ public class ArriveInsertAction { } private void addBeforeRule(AroundProcesser processer) { processer.addBeforeFinalRule(new CheckBillDateRule()); + processer.addBeforeRule(new CheckFinalNumRule()); } } diff --git a/pu/src/private/nc/impl/pu/m23/maintain/rule/CheckFinalNumRule.java b/pu/src/private/nc/impl/pu/m23/maintain/rule/CheckFinalNumRule.java new file mode 100644 index 00000000..b5e4606d --- /dev/null +++ b/pu/src/private/nc/impl/pu/m23/maintain/rule/CheckFinalNumRule.java @@ -0,0 +1,42 @@ +package nc.impl.pu.m23.maintain.rule; + +import nc.vo.pu.m23.entity.ArriveItemVO; +import nc.vo.pu.m23.entity.ArriveVO; +import nc.impl.pubapp.pattern.rule.IRule; +import nc.vo.pub.BusinessException; +import nc.vo.pub.lang.UFDateTime; +import nc.vo.pub.lang.UFDouble; + +/** + * 最终需求数量校验 + */ +public class CheckFinalNumRule implements IRule { + public CheckFinalNumRule() { + } + + + public void process(ArriveVO[] arriveVOS) { + for (ArriveVO vo : arriveVOS) { + if (vo.getPrimaryKey() != null) { + continue; + } + if (vo == null || vo.getHVO() == null) { + try { + throw new BusinessException("到货单主信息不能为空"); + } catch (BusinessException e) { + throw new RuntimeException(e); + } + } + ArriveItemVO[] bodys=vo.getBVO(); + for(ArriveItemVO body : bodys) { + if(null!=body.getAttributeValue("vbdef33") && body.getNastnum().compareTo(new UFDouble(String.valueOf(body.getAttributeValue("vbdef33"))))>0){ + try { + throw new BusinessException("数量大于最终需求数量不能生成到货单!"); + } catch (BusinessException e) { + throw new RuntimeException(e); + } + } + } + } + } +}