From bf345f6b8fef28d04809d7830357969b91795864 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=8E?= <125556714+Topfunplus@users.noreply.github.com> Date: Fri, 30 May 2025 09:19:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20MES=20=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=B9=B6=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=8E=92=E9=99=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了 AfterApprovingSynchronizeRuleMES 类中的冗余代码 - 在 BatchTransferToPurchaseOrder 类中实现了批量转换采购订单的新逻辑 - 在 HttpPostOtherSysImpl 类中添加了用户排除检查功能 - 优化了 IHttpPostOtherSys 接口,新增 checkIfExcludeUser 方法 --- .../impl/utils/HttpPostOtherSysImpl.java | 27 ++++++++++++++++++- .../commen/itf/utils/IHttpPostOtherSys.java | 2 ++ .../plugin/BatchTransferToPurchaseOrder.java | 21 ++++++++++++++- .../AfterApprovingSynchronizeRuleMES.java | 12 ++++----- 4 files changed, 53 insertions(+), 9 deletions(-) diff --git a/ic/src/private/nccloud/pubift/commen/impl/utils/HttpPostOtherSysImpl.java b/ic/src/private/nccloud/pubift/commen/impl/utils/HttpPostOtherSysImpl.java index 16417c0..6b64de0 100644 --- a/ic/src/private/nccloud/pubift/commen/impl/utils/HttpPostOtherSysImpl.java +++ b/ic/src/private/nccloud/pubift/commen/impl/utils/HttpPostOtherSysImpl.java @@ -2,9 +2,11 @@ package nccloud.pubift.commen.impl.utils; import com.alibaba.fastjson.JSONObject; +import nc.bs.framework.common.InvocationInfoProxy; import nc.bs.logging.Log; import nc.hr.utils.PubEnv; import nc.itf.arap.goldentax.SysParaInitQuery; +import nc.vo.am.common.util.StringUtils; import nc.vo.pub.BusinessException; import nccloud.pubift.commen.itf.utils.IHttpPostOtherSys; import org.apache.http.Header; @@ -57,9 +59,12 @@ public class HttpPostOtherSysImpl implements IHttpPostOtherSys { try { obmlog.debug("HttpPostOtherSys :" + JSONObject.toJSONString(requestData)); // ¼ JSONObject jsonRequest = new JSONObject(requestData); // MapתΪJSONObject + if (checkIfExcludeUser()) { + obmlog.debug("ǰûΪûΪͬͬMESϵͳ"); + return; + } String response = callMes(apiPath, jsonRequest); // MESӿ JSONObject jsonResponse = JSONObject.parseObject(response); // صJSONַ - obmlog.debug("ӿڷ:" + jsonResponse.toJSONString()); // ¼ӿڷص // Ƿ "Data" @@ -103,6 +108,26 @@ public class HttpPostOtherSysImpl implements IHttpPostOtherSys { } } + /** + * 鵱ǰûǷҪͬ + */ + public boolean checkIfExcludeUser() { + String code = InvocationInfoProxy.getInstance().getUserCode(); + //ǰԱBIPʱ ֱreturn ͬMESҵ߼ + String excludeUsers = SysParaInitQuery.getParaString("GLOBLE00000000000000", "JINSIWEINOSYNCUESR"); + if (StringUtils.isNotEmpty(excludeUsers)) { + String[] userItem = excludeUsers.split(";"); + for (String userCode : userItem) { + if (userCode.isEmpty()) continue; + if (code != null && code.equals(userCode)) { + obmlog.debug("AfterApprovingSynchronizeRuleMES-ǰԱDzԱ,ǰûΪ:" + code); + return true; + } + } + } + return false; + } + /** * ҵpost */ diff --git a/ic/src/public/nccloud/pubift/commen/itf/utils/IHttpPostOtherSys.java b/ic/src/public/nccloud/pubift/commen/itf/utils/IHttpPostOtherSys.java index 148ed08..e63f1fb 100644 --- a/ic/src/public/nccloud/pubift/commen/itf/utils/IHttpPostOtherSys.java +++ b/ic/src/public/nccloud/pubift/commen/itf/utils/IHttpPostOtherSys.java @@ -24,4 +24,6 @@ public interface IHttpPostOtherSys { * ݵⲿϵͳ */ public void sendToExternalSystem(String apiPaht, Map requestData) throws BusinessException; + + public boolean checkIfExcludeUser(); } diff --git a/pu/src/private/nc/bs/pu/m21/plugin/BatchTransferToPurchaseOrder.java b/pu/src/private/nc/bs/pu/m21/plugin/BatchTransferToPurchaseOrder.java index 72c62e5..c647a4f 100644 --- a/pu/src/private/nc/bs/pu/m21/plugin/BatchTransferToPurchaseOrder.java +++ b/pu/src/private/nc/bs/pu/m21/plugin/BatchTransferToPurchaseOrder.java @@ -25,7 +25,12 @@ import nc.vo.pu.m21.entity.OrderVO; import nc.vo.pub.BusinessException; import nc.vo.pub.compiler.PfParameterVO; import nc.vo.pubapp.pattern.exception.ExceptionUtils; +import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill; import nc.vo.scmpub.res.billtype.POBillType; +import nc.vo.scmpub.util.AppInfoContext; +import nccloud.dto.scmpub.script.entity.SCMScriptResultDTO; +import nccloud.pubitf.riart.pflow.CloudPFlowContext; +import nccloud.pubitf.scmpub.commit.service.IBatchRunScriptService; public class BatchTransferToPurchaseOrder implements IBackgroundWorkPlugin { private static final Log logger = Log.getInstance("devpoordertask"); @@ -204,7 +209,11 @@ public class BatchTransferToPurchaseOrder implements IBackgroundWorkPlugin { } } IPfExchangeService service = NCLocator.getInstance().lookup(IPfExchangeService.class); - OrderVO[] transVos = (OrderVO[]) service.runChangeDataAry("20", "21", orderVOs, null); + OrderVO[] transVos = (OrderVO[]) service.runChangeDataAryNeedClassify("20", "21", orderVOs, null, 1); + CloudPFlowContext cloudContext = this.getCloudPFlowContext(transVos); + AppInfoContext.setBtnCode("Save"); + SCMScriptResultDTO scriptResult = ((IBatchRunScriptService) NCLocator.getInstance().lookup(IBatchRunScriptService.class)).runBacth(cloudContext, OrderVO.class); + AbstractBill[] sucessVOs = scriptResult.getSucessVOs(); if (transVos == null || transVos.length <= 0) { logger.info("תʱ,VOΪ", this.getClass(), "processBatchTransfer"); } @@ -219,4 +228,14 @@ public class BatchTransferToPurchaseOrder implements IBackgroundWorkPlugin { throw new BusinessException("ת빺ɹʧ: " + e.getMessage(), e); } } + + private CloudPFlowContext getCloudPFlowContext(OrderVO[] vos) { + CloudPFlowContext context = new CloudPFlowContext(); + context.setActionName("SAVEBASE"); + context.setBillType(POBillType.Order.getCode()); + context.setBillVos(vos); + context.setUserObj(null); + AppInfoContext.setBtnCode("Save"); + return context; + } } diff --git a/so/src/private/nc/bs/so/m30/rule/approve/AfterApprovingSynchronizeRuleMES.java b/so/src/private/nc/bs/so/m30/rule/approve/AfterApprovingSynchronizeRuleMES.java index 3ee3d47..20c8d94 100644 --- a/so/src/private/nc/bs/so/m30/rule/approve/AfterApprovingSynchronizeRuleMES.java +++ b/so/src/private/nc/bs/so/m30/rule/approve/AfterApprovingSynchronizeRuleMES.java @@ -1,13 +1,17 @@ package nc.bs.so.m30.rule.approve; +import bsh.StringUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import nc.bs.dao.BaseDAO; import nc.bs.framework.common.InvocationInfoProxy; import nc.bs.framework.common.NCLocator; import nc.bs.logging.Log; +import nc.hr.utils.PubEnv; import nc.impl.pubapp.pattern.rule.IRule; +import nc.itf.arap.goldentax.SysParaInitQuery; import nc.jdbc.framework.processor.ColumnProcessor; +import nc.vo.am.common.util.StringUtils; import nc.vo.bd.balatype.BalaTypeVO; import nc.vo.bd.currtype.CurrtypeVO; import nc.vo.bd.cust.CustomerVO; @@ -49,13 +53,6 @@ public class AfterApprovingSynchronizeRuleMES implements IRule { // ʼHTTP󹤾 IHttpPostOtherSys httpPostOtherSys = NCLocator.getInstance().lookup(IHttpPostOtherSys.class); try { -// String code = InvocationInfoProxy.getInstance().getUserCode(); - // ǰԱBIPʱ ֱreturn ͬMESҵ߼ -// if (code != null && code.equals("BIP")) { -// obmlog.debug("AfterApprovingSynchronizeRuleMES-ǰԱBIP"); -// return; -// } - if (saleOrderVOs == null || saleOrderVOs.length == 0) { obmlog.debug("AfterApprovingSynchronizeRuleMES-ûҪ۶"); return; @@ -81,6 +78,7 @@ public class AfterApprovingSynchronizeRuleMES implements IRule { } } + /** * Ͻ˼άϵͳӿڹ淶 */