From 281f8846abab6ebfb0f703188452cc79bd9f0cef Mon Sep 17 00:00:00 2001 From: mzr Date: Fri, 12 Sep 2025 13:52:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=94=9F=E4=BA=A7=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=AE=A1=E6=89=B9=E5=90=8E=E6=8E=A8=E9=80=81=E9=AB=98?= =?UTF-8?q?=E5=8E=8BMES-=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AfterApproveSyncHighpressureMesRule.java | 103 +++++------------- 1 file changed, 25 insertions(+), 78 deletions(-) diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncHighpressureMesRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncHighpressureMesRule.java index 5e0d472..c9da98b 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncHighpressureMesRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncHighpressureMesRule.java @@ -7,7 +7,6 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; import nc.bs.dao.BaseDAO; import nc.bs.logging.Log; -import nc.bs.mmpac.pmo.pac0002.bp.rule.util.SyncEpicMesUtil; import nc.bs.trade.business.HYPubBO; import nc.bs.uapbd.util.MyHelper; import nc.bs.uapbd.util.ThirdPartyPostRequestUtil; @@ -21,11 +20,8 @@ import nc.vo.org.OrgVO; import nc.vo.pub.BusinessException; import nc.vo.pubapp.pattern.exception.ExceptionUtils; import nc.vo.scmpub.util.ArrayUtil; -import nccloud.baseapp.core.log.NCCForUAPLogger; -import java.util.Date; import java.util.Map; -import java.util.stream.Collectors; /** * 流程生产订单审批后推送高压MES @@ -35,25 +31,24 @@ import java.util.stream.Collectors; */ public class AfterApproveSyncHighpressureMesRule implements IRule { - private static final String LOG_INFO_NAME = "dldzlog"; - - private static final Log logDl = Log.getInstance(LOG_INFO_NAME); + private static final String LOG_INFO_NAME = "gymeslog"; + private static final Log logger = Log.getInstance(LOG_INFO_NAME); private Map configParams; + @Override public void process(PMOAggVO[] pmoAggVOS) { if (ArrayUtil.isEmpty(pmoAggVOS)) { return; } configParams = MyHelper.getConfigParams("gy-config", null); - try { - buildSyncData(pmoAggVOS); } catch (Exception e) { - logDl.error("同步生产订单到高压MES系统失败: " + e.getMessage(), e); + logger.error("同步生产订单到高压MES系统失败: " + e.getMessage(), e); ExceptionUtils.wrappException(e); } } + /** * 构建同步数据 */ @@ -62,24 +57,23 @@ public class AfterApproveSyncHighpressureMesRule implements IRule { HYPubBO hybo = new HYPubBO(); for (PMOAggVO vo : useVOs) { - // 判断物料的业务单元是否是箱变公司,不是则跳过 - String pkOrg = vo.getParentVO().getPk_org(); - String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg); -// if (checkIfOrg(orgCode, configParams)) { -// continue; -// } - JSONObject singleObj = new JSONObject(); PMOHeadVO pmoHeadVO = vo.getParentVO(); PMOItemVO[] itemVOS = vo.getChildrenVO(); - + // 判断物料的业务单元是否是箱变公司,不是则跳过 + String pkOrg = pmoHeadVO.getPk_org(); + String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg); + if (checkIfOrg(orgCode, configParams)) { + continue; + } + JSONObject singleObj = new JSONObject(); singleObj.put("bipProcessProductionOrderId", pmoHeadVO.getVbillcode()); singleObj.put("bipId", pmoHeadVO.getCpmohid());// 主键ID // singleObj.put("orderQuantity", pmoHeadVO.getPlanQuantity()); // 订单数量(计划数量) singleObj.put("billDate", pmoHeadVO.getDbilldate().toString()); // 单据日期 singleObj.put("orderVersion", pmoHeadVO.getVersion()); // 版本号 singleObj.put("orderTranType", pmoHeadVO.getVtrantypecode()); // 订单交易类型 - String sql1 = " select user_code from sm_user where cuserid = '" + pmoHeadVO.getCreator() + "' "; - String bipCreateBy= (String) baseDAO.executeQuery(sql1, new ColumnProcessor()); + String sql1 = " select user_name from sm_user where cuserid = '" + pmoHeadVO.getCreator() + "' "; + String bipCreateBy = (String) baseDAO.executeQuery(sql1, new ColumnProcessor()); singleObj.put("bipCreateBy", bipCreateBy); // 创建人ID @@ -102,9 +96,7 @@ public class AfterApproveSyncHighpressureMesRule implements IRule { itemObj.put("bipChildId", item.getCmoid()); // 子项主键ID // 部门信息 - - - String deptsql = " select code,name from org_dept where pk_dept='"+item.getCdeptid()+"' and dr=0 "; + String deptsql = " select code,name from org_dept where pk_dept='" + item.getCdeptid() + "' and dr=0 "; Map tr = (Map) baseDAO.executeQuery(deptsql, new MapProcessor()); itemObj.put("bipDeptName", tr.get("name")); // 生产部门名称 itemObj.put("bipDeptId", tr.get("code")); // 生产部门编码 @@ -117,14 +109,14 @@ public class AfterApproveSyncHighpressureMesRule implements IRule { itemObj.put("bipOriginProcessProductionOrderId", item.getVsrccode()); itemObj.put("bipOriginProcessProductionOrderRowNum", item.getVsrcrowno()); - // 物料信息 + // 物料信息 String mrlsql = "select code,name,graphid,pk_measdoc,materialspec from bd_material where pk_material = '" + item.getCmaterialvid() + "' "; Map mrl = (Map) baseDAO.executeQuery(mrlsql, new MapProcessor()); itemObj.put("materialCode", mrl.get("code")); // 物料编码 - itemObj.put("materialName",mrl.get("name")); // 物料名称 - itemObj.put("drawingNumber",mrl.get("graphid")); // 图号编码 graphid + itemObj.put("materialName", mrl.get("name")); // 物料名称 + itemObj.put("drawingNumber", mrl.get("graphid")); // 图号编码 graphid - Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" +mrl.get("pk_measdoc") + "' "); + Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" + mrl.get("pk_measdoc") + "' "); itemObj.put("unit", unit); // 单位 pk_measdoc @@ -148,49 +140,6 @@ public class AfterApproveSyncHighpressureMesRule implements IRule { singleObj.put("itemList", contentArray); // 将子项数组添加到主对象 - /* -{ - "list": [ - { - "bipProcessProductionOrderId": "流程生产订单号", - "bipId": "主键ID", - "orderQuantity": "订单数量(计划数量)", - "billDate": "单据日期 按Bip格式", - "orderVersion": "版本", - "orderTranType": "订单交易类型 按BIP状态", - "bipCreateBy": "创建人ID", - "itemList": [ - { - "contractNum": "TGYZF2520201225", - "entryName": "大唐河北故城50MW风电项目", - "bipChildId": "子项主键ID", - "bipDeptName": "生产部门 名称", - "bipDeptId": "生产部门编码", - "requiredDate": "需用日期", - "bipParentProcessProductionOrderId": "上级单据号", - "bipParentProcessProductionOrderRowNum": "上级单据行号", - "bipOriginProcessProductionOrderId": "顶级来源单据号", - "bipOriginProcessProductionOrderRowNum": "顶级来源单据行号", - "materialCode": "物料编码", - "materialName": "物料名称", - "drawingNumber": "图号编码", - "unit": "单位 例如件", - "intervalModel": "产品类型 例如35-KV-断路器(物料自定义字段)", - "processCode": "产品编码的工序(物料的自定义字段)", - "lineNumber": "行号需要 例如 10 20", - "demandInventoryOrganization": "需求库存组织", - "plannedInputQuantity": "计划投入主数量 1", - "plannedOutputQuantity": "计划产出主数量 1", - "plannedStartTime": "计划开工时间 2025-08-01", - "plannedCompletionTime": "计划完工时间 2026-08-01", - "customerMaterialCode": "客户物料编码", - "productionBatch": "生产批次 按BIP格式", - "productionBatchNumber": "生产批次号 按BIP格式" - } - ] - } - ] -} */ pushData(singleObj); } } @@ -199,24 +148,22 @@ public class AfterApproveSyncHighpressureMesRule implements IRule { * 推送同步数据 */ private void pushData(JSONObject param) throws BusinessException { - // String jsonString = param.toJSONString(); // 转json字符串的时候保留null值 String jsonStr = JSON.toJSONString(param, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty ); -// logDl.error("QMS-Material-param = " + jsonStr); + logger.error("gyMes-PMO-param = " + jsonStr); String baseUrl = configParams.get("mesBaseUrl"); String requestUrl = baseUrl + configParams.get("productionOrderAdd"); -// logDl.error("QMS-Material-url = " + requestUrl); -// String requestUrl ="/bip/order/productionOrderAdd"; + logger.error("gyMes-PMO-url = " + requestUrl); String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr); JSONObject resultObj = JSONObject.parseObject(result); - logDl.error("QMS-Material-res = " + result); + logger.error("gyMes-PMO-res = " + result); - if (!"success".equals(resultObj.getString("success"))) { - // throw new BusinessException("QMS-Material-error:" + resultObj.getString("msg")); - logDl.error("QMS-Material-error,result[" + resultObj.toJSONString() + "]"); + if (!"200".equals(resultObj.getString("code"))) { + logger.error("gyMes-PMO-error,result[" + resultObj.toJSONString() + "]"); + throw new BusinessException("流程生产订单推送高压MES错误:" + resultObj.getString("msg")); } }