From 23dfbb2e0553398f4075f3474808bd11192011fc Mon Sep 17 00:00:00 2001 From: lihao Date: Wed, 29 Oct 2025 16:55:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E6=96=99=E9=87=8D=E7=AE=97=E5=90=8E?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AF=B7=E8=B4=AD=E5=8D=95=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=BB=84=E7=BB=87=E5=92=8C=E9=A1=B9=E7=9B=AE=E4=B8=93?= =?UTF-8?q?=E7=94=A8=E6=96=99=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AfterPickmRecalUpdateBuyingreqRule.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) 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 index a828c62b..066dbc62 100644 --- 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 @@ -2,11 +2,15 @@ package nc.bs.mmpac.pmo.pac0002.bp.rule; import nc.bs.dao.BaseDAO; import nc.bs.dao.DAOException; +import nc.bs.uapbd.util.MyHelper; import nc.jdbc.framework.processor.ColumnProcessor; import nc.jdbc.framework.processor.MapListProcessor; +import nc.vo.bd.material.stock.MaterialStockVO; 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.org.OrgVO; +import nc.vo.pub.BusinessException; import nc.vo.pub.lang.UFDouble; import java.math.BigDecimal; @@ -17,13 +21,28 @@ import java.util.Map; * 备料重算后更新请购单 */ public class AfterPickmRecalUpdateBuyingreqRule implements IRule { + private Map configParams; @Override public void process(PMOAggVO[] pmoAggVOS) { BaseDAO dao = new BaseDAO(); + try { for (PMOAggVO pmoAggVO : pmoAggVOS) { for (PMOItemVO pmoItemVO:pmoAggVO.getChildrenVO()){ + configParams = MyHelper.getConfigParams("xb-config", null); + if (configParams.isEmpty()) { + throw new BusinessException("箱变的QMS接口缺少配置"); + } + String pkOrg = pmoAggVO.getParentVO().getPk_org(); + String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg); + if (checkIfOrg(orgCode, configParams)) { + continue; + } + String material= pmoItemVO.getCmaterialvid(); + if(!checkProdect(material,pkOrg)){ + continue; + } try { String pmoid=pmoItemVO.getCmoid(); UFDouble nastnum=pmoItemVO.getNastnum(); @@ -80,5 +99,41 @@ public class AfterPickmRecalUpdateBuyingreqRule implements IRule { } } } + } catch (BusinessException e) { + throw new RuntimeException(e); + } + } + /** + * 根据物料查询物料库存信息页签-是否项目专用料进行判断 + * + * @param cmaterialvid + * @param pk_org + * @return + */ + private Boolean checkProdect(String cmaterialvid, String pk_org) { + String whereSql = " pk_material='" + cmaterialvid + "' and pk_org='" + pk_org + "' and nvl(dr,0)=0 "; + List list = null; + try { + list = (List) new BaseDAO().retrieveByClause(MaterialStockVO.class, whereSql); + } catch (DAOException e) { + e.printStackTrace(); + } + if (list != null && list.size() > 0) { + return list.get(0).getFixasst2()==null?false:list.get(0).getFixasst2().booleanValue(); + } + return false; + } + private boolean checkIfOrg(String code, Map configParams) throws BusinessException { + String targetCode = configParams.get("xbOrg"); + if (targetCode == null || nc.vo.am.common.util.StringUtils.isEmpty(targetCode)) { + throw new BusinessException("未配置组织参数"); + } + String[] orgItem = targetCode.split(","); + for (String orgCode : orgItem) { + if (!orgCode.isEmpty() && orgCode.equals(code)) { + return false; + } + } + return true; } }