From deeca7d76078eaea4d5b973d24eb3971510ca337 Mon Sep 17 00:00:00 2001 From: lihao Date: Fri, 24 Oct 2025 16:47:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E6=96=99=E8=AE=A1=E5=88=92=E4=B8=8B?= =?UTF-8?q?=E8=BE=BE=E8=AF=B7=E8=B4=AD=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=EF=BC=8C=E5=B7=B2=E4=B8=8B=E8=BE=BE=E6=95=B0=E9=87=8F=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pickm/action/PickmToBuyingreqAction.java | 2 +- .../web/mmpac/pickm/action/PickmToPmo.java | 2 +- .../bs/mmpac/pmo/pac0002/bp/PMOUpdateBP.java | 4 + .../pac0002/bp/rule/UpdatePickmDef16Rule.java | 73 +++++++++++++++++++ 4 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/UpdatePickmDef16Rule.java diff --git a/mmpac/src/client/nccloud/web/mmpac/pickm/action/PickmToBuyingreqAction.java b/mmpac/src/client/nccloud/web/mmpac/pickm/action/PickmToBuyingreqAction.java index ba077cd5..c7aff591 100644 --- a/mmpac/src/client/nccloud/web/mmpac/pickm/action/PickmToBuyingreqAction.java +++ b/mmpac/src/client/nccloud/web/mmpac/pickm/action/PickmToBuyingreqAction.java @@ -169,7 +169,7 @@ public class PickmToBuyingreqAction implements ICommonAction { private void updetaPmoNum(List> updateList) throws DAOException { BaseDAO dao = new BaseDAO(); for (Map updateMap : updateList) { - String sql = " update mm_pickm_b set vbdef16 = '"+((UFDouble)updateMap.get("num")).toString()+"' where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'"; + String sql = " update mm_pickm_b set vbdef16 = TO_CHAR(TO_NUMBER(CASE WHEN vbdef16 IS NULL OR vbdef16 = '~' OR vbdef16 = '~' THEN '0' ELSE vbdef16 END) + TO_NUMBER('"+((UFDouble)updateMap.get("num")).toString()+"')) where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'"; dao.executeUpdate(sql); } } diff --git a/mmpac/src/client/nccloud/web/mmpac/pickm/action/PickmToPmo.java b/mmpac/src/client/nccloud/web/mmpac/pickm/action/PickmToPmo.java index 36602491..598b6f4b 100644 --- a/mmpac/src/client/nccloud/web/mmpac/pickm/action/PickmToPmo.java +++ b/mmpac/src/client/nccloud/web/mmpac/pickm/action/PickmToPmo.java @@ -116,7 +116,7 @@ public class PickmToPmo implements ICommonAction { private void updetaPmoNum(List> updateList) throws DAOException { BaseDAO dao = new BaseDAO(); for (Map updateMap : updateList) { - String sql = " update mm_pickm_b set vbdef16 = '"+((UFDouble)updateMap.get("num")).toString()+"' where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'"; + String sql = " update mm_pickm_b set vbdef16 = TO_CHAR(TO_NUMBER(CASE WHEN vbdef16 IS NULL OR vbdef16 = '~' OR vbdef16 = '~' THEN '0' ELSE vbdef16 END) + TO_NUMBER('"+((UFDouble)updateMap.get("num")).toString()+"')) where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'"; dao.executeUpdate(sql); } } diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOUpdateBP.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOUpdateBP.java index 313c4e0e..4768949a 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOUpdateBP.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOUpdateBP.java @@ -31,6 +31,7 @@ import nc.util.mmf.framework.gc.GCUpdateBPTemplate; import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; import nc.vo.mmpac.pmo.pac0002.util.PmoSagaUtil; +import nc.bs.mmpac.pmo.pac0002.bp.rule.UpdatePickmDef16Rule; import java.util.ArrayList; import java.util.List; @@ -217,6 +218,9 @@ public class PMOUpdateBP { processer.addAfterRule(planStartTimeChangeRule); IRule updateAfterToMesRule = new UpdateAfterToMesRule(); processer.addAfterRule(updateAfterToMesRule); + + ICompareRule UpdatePickmRule = new UpdatePickmDef16Rule();//sunfj2025.09.26 + processer.addAfterRule(UpdatePickmRule); } public List getCheckInfoList() { diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/UpdatePickmDef16Rule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/UpdatePickmDef16Rule.java new file mode 100644 index 00000000..773a56f7 --- /dev/null +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/UpdatePickmDef16Rule.java @@ -0,0 +1,73 @@ +package nc.bs.mmpac.pmo.pac0002.bp.rule; + +import nc.bs.dao.BaseDAO; +import nc.bs.dao.DAOException; +import nc.bs.framework.common.NCLocator; +import nc.bs.trade.business.HYPubBO; +import nc.impl.pubapp.pattern.rule.ICompareRule; +import nc.itf.uap.IUAPQueryBS; +import nc.jdbc.framework.processor.ColumnListProcessor; +import nc.jdbc.framework.processor.ColumnProcessor; +import nc.util.mmf.framework.base.MMValueCheck; +import nc.vo.mmpac.pickm.entity.PickmItemVO; +import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; +import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; +import nc.vo.pub.BusinessException; +import nc.vo.pub.lang.UFDate; +import nc.vo.pub.lang.UFDateTime; +import nc.vo.pub.lang.UFDouble; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class UpdatePickmDef16Rule implements ICompareRule { + + + public void process(PMOAggVO[] vos, PMOAggVO[] originVOs) { + if (!MMValueCheck.isEmpty(vos)) { + List> updateList = new ArrayList<>(); + for (PMOAggVO vo : vos) { + for (PMOAggVO originVO : originVOs) { + if(vo.getParentVO().getCpmohid().equals(originVO.getParentVO().getCpmohid())) { + for (PMOItemVO voitemVo:vo.getChildrenVO()){ + if("55A3".equals(voitemVo.getVsrctype())){ + Map updateMap = new HashMap(); + updateMap.put("pk",voitemVo.getVsrcbid()); + updateMap.put("beforenum",voitemVo.getNastnum()); + updateMap.put("afternum", UFDouble.ZERO_DBL); + for (PMOItemVO originItemVO:originVO.getChildrenVO()){ + if(voitemVo.getCpmohid().equals(originItemVO.getCpmohid())) { + updateMap.put("afternum",originItemVO.getNastnum()); + updateList.add(updateMap); + } + } + } + } + } + } + } + if (updateList.size() > 0) { + try { + updetaPmoNum(updateList); + } catch (DAOException e) { + throw new RuntimeException(e); + } + } + } + } + private void updetaPmoNum(List> updateList) throws DAOException { + BaseDAO dao = new BaseDAO(); + for (Map updateMap : updateList) { +// String sql = " update mm_pickm_b set vbdef16 = TO_CHAR(TO_NUMBER(vbdef16) -"+updateMap.get("num")+") where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'"; + String sql = " update mm_pickm_b set vbdef16 = TO_CHAR(TO_NUMBER(CASE WHEN vbdef16 IS NULL OR vbdef16 = '~' OR vbdef16 = '~' THEN '0' ELSE vbdef16 END) -TO_NUMBER('"+((UFDouble)updateMap.get("beforenum")).toString()+"'))+TO_NUMBER('"+((UFDouble)updateMap.get("afternum")).toString()+"')) where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'"; + + // dao.executeUpdate(sql); + } + + + } + + +}