From 215c55e889e53d26a4be62be8bfe3bba600a6a1e Mon Sep 17 00:00:00 2001 From: mzr Date: Sun, 26 Oct 2025 20:22:39 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B2=BE=E5=AF=86-=E6=9D=90=E6=96=99=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E6=96=B0=E5=A2=9E-=E5=8D=95=E6=8D=AE=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E8=B5=8B=E5=80=BC-=E5=90=AF=E6=BA=90=E9=A2=86?= =?UTF-8?q?=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../private/nc/bs/ic/m4d/insert/InsertBP.java | 1 + .../insert/rule/MaterialOutBillDateRule.java | 57 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 ic/src/private/nc/bs/ic/m4d/insert/rule/MaterialOutBillDateRule.java diff --git a/ic/src/private/nc/bs/ic/m4d/insert/InsertBP.java b/ic/src/private/nc/bs/ic/m4d/insert/InsertBP.java index d7c138eb..4d06ecc0 100644 --- a/ic/src/private/nc/bs/ic/m4d/insert/InsertBP.java +++ b/ic/src/private/nc/bs/ic/m4d/insert/InsertBP.java @@ -109,6 +109,7 @@ public class InsertBP implements IInsertBP, //2025年6月13日09点38分 -- 物料档案基本页签启用项目辅助属性+库存组织未启用项目,采购入库单保存时(包含接口导入)清除行项目,材料出库单保存时(包含接口导入)清除行项目 processor.addBeforeRule(new MaterialOutProjectRule()); + processor.addBeforeRule(new MaterialOutBillDateRule()); } @Override diff --git a/ic/src/private/nc/bs/ic/m4d/insert/rule/MaterialOutBillDateRule.java b/ic/src/private/nc/bs/ic/m4d/insert/rule/MaterialOutBillDateRule.java new file mode 100644 index 00000000..a90aad80 --- /dev/null +++ b/ic/src/private/nc/bs/ic/m4d/insert/rule/MaterialOutBillDateRule.java @@ -0,0 +1,57 @@ +package nc.bs.ic.m4d.insert.rule; + +import nc.bs.ic.pub.base.ICRule; +import nc.bs.uapbd.util.MyHelper; +import nc.util.mmf.framework.base.MMValueCheck; +import nc.vo.ic.general.define.ICBillHeadVO; +import nc.vo.ic.general.define.ICBillVO; +import nc.vo.ic.m4d.entity.MaterialOutVO; +import nc.vo.org.StockOrgVO; +import nc.vo.pub.BusinessException; +import nc.vo.pub.lang.UFDate; +import nc.vo.pubapp.pattern.exception.ExceptionUtils; + +/** + * 精密-材料出库新增-单据日期赋值-启源领料 + * + * @author mzr + * @date 2025/10/26 + */ +public class MaterialOutBillDateRule extends ICRule { + @Override + public void process(MaterialOutVO[] vos) { + if (MMValueCheck.isEmpty(vos)) { + return; + } + try { + for (ICBillVO vo : vos) { + ICBillHeadVO headVO = vo.getParentVO(); + String pk_org = (String) headVO.getAttributeValue("pk_org"); + String orgCode = MyHelper.transferField(StockOrgVO.getDefaultTableName(), StockOrgVO.CODE, StockOrgVO.PK_STOCKORG, pk_org); + // 启源领料id + String vdef9 = headVO.getVdef9(); + if ("C038".equals(orgCode) && MMValueCheck.isNotEmpty(vdef9)) { + // 启源传入的单据,单据日期增加校验 + UFDate dbilldate = headVO.getDbilldate(); + // 设置单据日期, 如果单据日期小于2025-11-02,则单据日期设置为2025-11-02 + UFDate ufDate = new UFDate("2025-11-02"); + if (dbilldate != null) { + int i = dbilldate.compareTo(ufDate); + if (i < 0) { + headVO.setDbilldate(ufDate); + } + } else { + UFDate nowDate = new UFDate(); + int i = nowDate.compareTo(ufDate); + if (i < 0) { + headVO.setDbilldate(ufDate); + } + } + } + } + } catch (BusinessException e) { + ExceptionUtils.wrappException(e); + } + } + +}