From 80cea4f91e57460cdd7ead24fa9ba55b36be66fc Mon Sep 17 00:00:00 2001 From: lihao Date: Thu, 16 Oct 2025 18:29:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95=E5=A4=87?= =?UTF-8?q?=E6=96=99=E9=87=8D=E7=AE=97=E6=9B=B4=E6=96=B0=E8=AF=B7=E8=B4=AD?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mmpac/pmo/pac0002/bp/PMOPickmRecalBP.java | 3 ++ .../AfterPickmRecalUpdateBuyingreqRule.java | 52 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterPickmRecalUpdateBuyingreqRule.java diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOPickmRecalBP.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOPickmRecalBP.java index 91ec5de2..c065257e 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOPickmRecalBP.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOPickmRecalBP.java @@ -5,6 +5,7 @@ package nc.bs.mmpac.pmo.pac0002.bp; +import nc.bs.mmpac.pmo.pac0002.bp.rule.AfterPickmRecalUpdateBuyingreqRule; import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint; import nc.bs.mmpac.pmo.pac0002.rule.PMOPickmRecalRule; import nc.bs.mmpac.pmo.pac0002.rule.PMOPickmRecalStatusRule; @@ -31,5 +32,7 @@ public class PMOPickmRecalBP { processer.addBeforeRule(rowstatuerule); IRule bomrtrule = new PMOCheckPickmRecalBomRTRule(); processer.addBeforeRule(bomrtrule); + IRule aggVOIRule = new AfterPickmRecalUpdateBuyingreqRule(); + processer.addBeforeRule(aggVOIRule); } } diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterPickmRecalUpdateBuyingreqRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterPickmRecalUpdateBuyingreqRule.java new file mode 100644 index 00000000..99a2bd8b --- /dev/null +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterPickmRecalUpdateBuyingreqRule.java @@ -0,0 +1,52 @@ +package nc.bs.mmpac.pmo.pac0002.bp.rule; + +import nc.bs.dao.BaseDAO; +import nc.bs.dao.DAOException; +import nc.jdbc.framework.processor.ColumnProcessor; +import nc.jdbc.framework.processor.MapListProcessor; +import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; +import nc.impl.pubapp.pattern.rule.IRule; +import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; +import nc.vo.pub.lang.UFDouble; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +/** + * 备料重算后更新请购单 + */ +public class AfterPickmRecalUpdateBuyingreqRule implements IRule { + + + @Override + public void process(PMOAggVO[] pmoAggVOS) { + BaseDAO dao = new BaseDAO(); + for (PMOAggVO pmoAggVO : pmoAggVOS) { + for (PMOItemVO pmoItemVO:pmoAggVO.getChildrenVO()){ + try { + String pmoid=pmoItemVO.getCmoid(); + UFDouble nastnum=pmoItemVO.getNastnum(); + // 查询备料计划 + String pickmsql = "select cpickm_bid,nplanoutnum from mm_pickm_b where cpickmid in ( select cpickmid from mm_pickm where csourcebillrowid='" + pmoid + "' and dr=0) and dr = 0"; + List> hmateral = (List>) dao.executeQuery(pickmsql, new MapListProcessor()); + + for (Map map : hmateral) { + String buyingreqsql = "select pk_praybill_b,nnum from po_praybill_b where csourcebid ='" + map.get("cpickm_bid") + "' and dr = 0"; + List> buyingreq = (List>) dao.executeQuery(buyingreqsql, new MapListProcessor()); + for (Map map2 : buyingreq) { + if (new UFDouble((BigDecimal) map2.get("nnum")).compareTo(new UFDouble((BigDecimal)map.get("nplanoutnum"))) >0) { + String sql = "update po_praybill_b set vbdef15='" +map.get("nplanoutnum") + "' where pk_praybill_b='" + +map2.get("pk_praybill_b") + "'"; + dao.executeUpdate(sql); + } + } + + } + } catch (DAOException e) { + throw new RuntimeException(e); + } + } + } + } +}