From 5f2d4be2cbfa96948edad9a3182fd6b1c2dbef14 Mon Sep 17 00:00:00 2001 From: mzr Date: Sun, 21 Sep 2025 20:13:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=9F=E5=88=9D=E6=B5=81=E7=A8=8B=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E8=AE=A2=E5=8D=95=E4=B8=8D=E5=A1=AB=E5=85=85=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8F=B7-=E5=A2=9E=E5=8A=A0=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rule/fill/PMOFillSNPkAndCodeRule.java | 75 +++++++++++-------- 1 file changed, 43 insertions(+), 32 deletions(-) diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/fill/PMOFillSNPkAndCodeRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/fill/PMOFillSNPkAndCodeRule.java index 11a40453..b0b98f23 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/fill/PMOFillSNPkAndCodeRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/fill/PMOFillSNPkAndCodeRule.java @@ -5,10 +5,10 @@ package nc.bs.mmpac.pmo.pac0002.rule.fill; -import java.util.*; - import nc.bs.framework.common.NCLocator; +import nc.bs.logging.Logger; import nc.bs.mmpac.pmo.pac0002.bp.service.PMOSNServiceAdapter; +import nc.bs.uapbd.util.MyHelper; import nc.impl.pubapp.pattern.rule.IRule; import nc.pubitf.mmpac.pmo.adapter.PMOMaterlAdapter; import nc.pubitf.sn.doc.ISnService; @@ -29,10 +29,13 @@ import nc.vo.mmpac.pmo.pac0002.enumeration.PMOSnsrcEnum; import nc.vo.mmpac.pmo.pac0002.util.PMOModuleUtil; import nc.vo.mmpac.pmo.pac0002.util.PMOSNUtil; import nc.vo.mmpac.pmo.parameter.PMOMaterlKey; +import nc.vo.org.OrgVO; import nc.vo.pub.BusinessException; import nc.vo.pubapp.pattern.exception.ExceptionUtils; import nc.vo.sn.doc.entity.SerialNoVO; +import java.util.*; + public class PMOFillSNPkAndCodeRule implements IRule { public PMOFillSNPkAndCodeRule() { } @@ -40,14 +43,14 @@ public class PMOFillSNPkAndCodeRule implements IRule { public void process(PMOAggVO[] vos) { if (!MMValueCheck.isEmpty(vos)) { if (PMOModuleUtil.isSNEnabled()) { - for(PMOAggVO aggvo : vos) { + for (PMOAggVO aggvo : vos) { if (!MMValueCheck.isEmpty(aggvo.getChildrenVO())) { boolean existsSn = this.isExistSn(aggvo); boolean is55A2 = SnParasQuery.querySN001(aggvo.getParentVO().getPk_org(), "55A2"); if (is55A2 || existsSn) { List materlKeys = new ArrayList(); - for(PMOItemVO itemvo : aggvo.getChildrenVO()) { + for (PMOItemVO itemvo : aggvo.getChildrenVO()) { PMOMaterlKey materlKey = new PMOMaterlKey(itemvo.getPk_org(), itemvo.getCmaterialvid()); materlKeys.add(materlKey); } @@ -56,7 +59,7 @@ public class PMOFillSNPkAndCodeRule implements IRule { Map snUnitMap = PMOMaterlAdapter.queryMaterSNUnit(materlKeys); List genParams = new ArrayList(); - for(PMOItemVO itemvo : aggvo.getChildrenVO()) { + for (PMOItemVO itemvo : aggvo.getChildrenVO()) { if (MMValueCheck.isNotEmpty(itemvo.getSerialnos())) { this.constructSnGenPkParam(genParams, itemvo); } else if (is55A2) { @@ -68,7 +71,7 @@ public class PMOFillSNPkAndCodeRule implements IRule { return; } - ISnResult serialnos = PMOSNServiceAdapter.createSerialnos((ISnGenerateParam[])genParams.toArray(new ISnGenerateParam[genParams.size()])); + ISnResult serialnos = PMOSNServiceAdapter.createSerialnos((ISnGenerateParam[]) genParams.toArray(new ISnGenerateParam[genParams.size()])); this.fillPMOGrandSNVoValues(aggvo, serialnos, snUnitMap); this.fillTS4UpdateSN(aggvo); } @@ -82,9 +85,9 @@ public class PMOFillSNPkAndCodeRule implements IRule { private void fillTS4UpdateSN(PMOAggVO aggvo) { List paramList = new ArrayList(); - for(PMOItemVO itemvo : aggvo.getChildrenVO()) { + for (PMOItemVO itemvo : aggvo.getChildrenVO()) { if (MMValueCheck.isNotEmpty(itemvo.getSerialnos())) { - for(PMOSerialNoVO snvo : itemvo.getSerialnos()) { + for (PMOSerialNoVO snvo : itemvo.getSerialnos()) { SnDocParam para = new SnDocParam(); para.setCmaterialvid(itemvo.getCmaterialvid()); para.setCmaterialoid(itemvo.getCmaterialid()); @@ -95,20 +98,20 @@ public class PMOFillSNPkAndCodeRule implements IRule { } try { - SerialNoVO[] rets = ((ISnService)NCLocator.getInstance().lookup(ISnService.class)).querySerialnos((ISnDocParam[])paramList.toArray(new SnDocParam[0]), new String[]{"vcode", "pk_serialno", "cmaterialoid", "cmaterialvid", "ts"}); + SerialNoVO[] rets = ((ISnService) NCLocator.getInstance().lookup(ISnService.class)).querySerialnos((ISnDocParam[]) paramList.toArray(new SnDocParam[0]), new String[]{"vcode", "pk_serialno", "cmaterialoid", "cmaterialvid", "ts"}); if (MMArrayUtil.isNotEmpty(rets)) { Map key2id = new HashMap(); - for(SerialNoVO ret : rets) { + for (SerialNoVO ret : rets) { key2id.put(ret.getCmaterialvid() + ret.getVcode(), ret); } - for(PMOItemVO itemvo : aggvo.getChildrenVO()) { + for (PMOItemVO itemvo : aggvo.getChildrenVO()) { if (MMValueCheck.isNotEmpty(itemvo.getSerialnos())) { - for(PMOSerialNoVO pmosnvo : itemvo.getSerialnos()) { + for (PMOSerialNoVO pmosnvo : itemvo.getSerialnos()) { if (MMValueCheck.isNotEmpty(pmosnvo.getVsncode())) { String var10001 = itemvo.getCmaterialvid(); - SerialNoVO snvo = (SerialNoVO)key2id.get(var10001 + pmosnvo.getVsncode()); + SerialNoVO snvo = (SerialNoVO) key2id.get(var10001 + pmosnvo.getVsncode()); if (MMValueCheck.isNotEmpty(snvo)) { pmosnvo.setVsrcts(snvo.getTs()); } @@ -124,9 +127,9 @@ public class PMOFillSNPkAndCodeRule implements IRule { } private void constructSnGenPkParam(List genParams, PMOItemVO itemvo) { - for(PMOSerialNoVO snvo : itemvo.getSerialnos()) { + for (PMOSerialNoVO snvo : itemvo.getSerialnos()) { if ((MMValueCheck.isEmpty(snvo.getFsnsrc()) || PMOSnsrcEnum.SNREF.toIntValue() != snvo.getFsnsrc()) && (snvo.getStatus() == 2 || snvo.getStatus() == 1)) { - snvo.setCserialnoid((String)null); + snvo.setCserialnoid((String) null); } if (!MMValueCheck.isNotEmpty(snvo.getCserialnoid())) { @@ -154,7 +157,7 @@ public class PMOFillSNPkAndCodeRule implements IRule { private boolean isExistSn(PMOAggVO aggvo) { boolean existsSn = false; - for(PMOItemVO itemvo : aggvo.getChildrenVO()) { + for (PMOItemVO itemvo : aggvo.getChildrenVO()) { if (MMValueCheck.isNotEmpty(itemvo.getSerialnos())) { existsSn = true; break; @@ -166,9 +169,9 @@ public class PMOFillSNPkAndCodeRule implements IRule { private void autoGenPKandCode(List genParams, PMOItemVO itemvo, Map isSnMap, Map snUnitMap) { PMOMaterlKey materlKey = new PMOMaterlKey(itemvo.getPk_org(), itemvo.getCmaterialvid()); - Boolean isSN = (Boolean)isSnMap.get(materlKey); + Boolean isSN = (Boolean) isSnMap.get(materlKey); if (!MMValueCheck.isEmpty(isSN) && isSN) { - this.constructSnGenPkAndCodeParam(genParams, itemvo, (String)snUnitMap.get(materlKey)); + this.constructSnGenPkAndCodeParam(genParams, itemvo, (String) snUnitMap.get(materlKey)); } } @@ -177,12 +180,12 @@ public class PMOFillSNPkAndCodeRule implements IRule { param.setKey(itemvo.getCmoid()); if (snunit.equalsIgnoreCase(itemvo.getCunitid())) { double num = itemvo.getNmmnum().toDouble(); - param.setCreateSnNum((int)num); + param.setCreateSnNum((int) num); } if (snunit.equalsIgnoreCase(itemvo.getCastunitid())) { double astnum = itemvo.getNmmastnum().toDouble(); - param.setCreateSnNum((int)astnum); + param.setCreateSnNum((int) astnum); } param.setPk_storeorg(itemvo.getPk_org()); @@ -202,19 +205,27 @@ public class PMOFillSNPkAndCodeRule implements IRule { PMOHeadVO headVO = aggvo.getParentVO(); String pkOrg = headVO.getPk_org(); if (MMValueCheck.isNotEmpty(pkOrg)) { - // 交易类型编码 - String vtrantypecode = headVO.getVtrantypecode(); - Set billTypeCodes = Set.of( - "55A2-Cxx-01", "55A2-Cxx-18" - ); - // 电力电子集团下的-期初订单不填充序列号 - if (billTypeCodes.contains(vtrantypecode)) { - return; + try { + String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg); + Map configParams = MyHelper.getConfigParams("Dldz-config", null); + if (!MyHelper.checkIfDldzOrg(orgCode, configParams)) { + // 交易类型编码 + String vtrantypecode = headVO.getVtrantypecode(); + Set billTypeCodes = Set.of( + "55A2-Cxx-01", "55A2-Cxx-18" + ); + // 电力电子集团下的-期初订单不填充序列号 + if (billTypeCodes.contains(vtrantypecode)) { + return; + } + } + } catch (BusinessException e) { + Logger.error("fillPMOGrandSNVoValues-exp = " + e.getMessage()); } } - for(PMOItemVO itemvo : aggvo.getChildrenVO()) { + for (PMOItemVO itemvo : aggvo.getChildrenVO()) { if (MMValueCheck.isNotEmpty(itemvo.getSerialnos())) { - for(PMOSerialNoVO snvo : itemvo.getSerialnos()) { + for (PMOSerialNoVO snvo : itemvo.getSerialnos()) { if (!MMValueCheck.isNotEmpty(snvo.getCserialnoid())) { String var10000 = itemvo.getCmoid(); String key = var10000 + snvo.getVsncode(); @@ -231,7 +242,7 @@ public class PMOFillSNPkAndCodeRule implements IRule { if (!MMValueCheck.isEmpty(rets)) { List snvoList = new ArrayList(); - for(ISnPkandCodeParam ret : rets) { + for (ISnPkandCodeParam ret : rets) { PMOSerialNoVO snvo = new PMOSerialNoVO(); snvo.setCserialnoid(ret.getPk_sndoc()); snvo.setVsncode(ret.getSncode()); @@ -242,7 +253,7 @@ public class PMOFillSNPkAndCodeRule implements IRule { snvoList.add(snvo); } - itemvo.setSerialnos((PMOSerialNoVO[])snvoList.toArray(new PMOSerialNoVO[snvoList.size()])); + itemvo.setSerialnos((PMOSerialNoVO[]) snvoList.toArray(new PMOSerialNoVO[snvoList.size()])); } } }