From 06504b3aa89672e8ad6fe0f3976acadf706216e6 Mon Sep 17 00:00:00 2001 From: houyi <1398559711@qq.com> Date: Tue, 30 Sep 2025 16:34:45 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=AE=A1=E6=89=B9=E5=90=8E=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E9=AB=98=E5=8E=8BMES=E6=8E=A5=E5=8F=A3,=E9=94=80=E5=94=AE?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=AE=A1=E6=89=B9=E5=90=8E=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E9=AB=98=E5=8E=8BMES=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=8C=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E5=90=8E=E6=8E=A8=E9=80=81=E9=AB=98=E5=8E=8BMES=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=8E=A5=E5=8F=A3=EF=BC=8C=E7=94=9F=E4=BA=A7=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=8F=96=E6=B6=88=E5=AE=A1=E6=89=B9=E5=90=8E=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E9=AB=98=E5=8E=8BMES=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rApproveCancelSyncHighpressureMesRule.java | 4 +- .../AfterApproveSyncHighpressureMesRule.java | 181 +++++++++++++----- .../approve/AfterSoCancelSyncRuleGyMes.java | 4 +- .../rule/approve/AfterSoSyncRuleGyMes.java | 99 ++++++++-- 4 files changed, 215 insertions(+), 73 deletions(-) diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveCancelSyncHighpressureMesRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveCancelSyncHighpressureMesRule.java index ff74066a..545f1488 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveCancelSyncHighpressureMesRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveCancelSyncHighpressureMesRule.java @@ -89,14 +89,14 @@ public class AfterApproveCancelSyncHighpressureMesRule implements IRule 1) { for (int i = 0; i < cmoidObj.size(); i++) { - sb.append("'").append(cmoidObj.get(i)).append("'"); + sb.append(cmoidObj.get(i)); if (i < cmoidObj.size() - 1) { sb.append(","); } } result = sb.toString(); } else { - result = "'" + (String) cmoidObj.get(0) + "'"; + result = (String) cmoidObj.get(0); } list.put("bipChildId", result); // 子项主键ID 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 1e8b08b6..b21236cc 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 @@ -58,6 +58,7 @@ public class AfterApproveSyncHighpressureMesRule implements IRule { HYPubBO hybo = new HYPubBO(); JSONObject list = new JSONObject(); JSONArray jsonArray = new JSONArray(); + String flags = "";//判断是否新增或修改 for (PMOAggVO vo : useVOs) { PMOHeadVO pmoHeadVO = vo.getParentVO(); PMOItemVO[] itemVOS = vo.getChildrenVO(); @@ -74,84 +75,159 @@ public class AfterApproveSyncHighpressureMesRule implements IRule { singleObj.put("billDate", pmoHeadVO.getDbilldate().toString()); // 单据日期 singleObj.put("orderVersion", pmoHeadVO.getVersion()); // 版本号 singleObj.put("orderTranType", pmoHeadVO.getVtrantypecode()); // 订单交易类型 - 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 // 创建子项数组 JSONArray contentArray = new JSONArray(); + for (PMOItemVO item : itemVOS) { - JSONObject itemObj = new JSONObject(); + //自定义项30是Y时调用修改口,若不是则调用新增口 + String saleDef = (String) item.getAttributeValue("vdef30") == null ? "" : (String) item.getAttributeValue("vdef30"); + if (!saleDef.equals("Y")) { + // 更新自定义项30为“Y” + String updatesql = "update mm_mo set vdef30 = '" + "Y" + "' where cmoid = '" + item.getCmoid() + "'"; + baseDAO.executeUpdate(updatesql); - // 填充子项基础信息 + JSONObject itemObj = new JSONObject(); + // 填充子项基础信息 - String sql = " select pk_defdoclist from bd_defdoclist where code='zdy-001' and dr=0 "; - String o = (String) baseDAO.executeQuery(sql, new ColumnProcessor()); + String sql = " select pk_defdoclist from bd_defdoclist where code='zdy-001' and dr=0 "; + String o = (String) baseDAO.executeQuery(sql, new ColumnProcessor()); - Object contractNum = hybo.findColValue("bd_defdoc", "code", " (pk_defdoclist = '" + o + "' and pk_defdoc='" + item.getVdef1() + "') "); + Object contractNum = hybo.findColValue("bd_defdoc", "code", " (pk_defdoclist = '" + o + "' and pk_defdoc='" + item.getVdef1() + "') "); - itemObj.put("contractNum", contractNum); // 合同编号 - itemObj.put("cwarehouseid", item.getAttributeValue("vbdef35")); // 合同编号 - Object pk_project = hybo.findColValue("bd_project", "project_name", " pk_project = '" + item.getCprojectid() + "' "); + itemObj.put("contractNum", contractNum); // 合同编号 + itemObj.put("cwarehouseid", item.getAttributeValue("vbdef35")); // 合同编号 + Object pk_project = hybo.findColValue("bd_project", "project_name", " pk_project = '" + item.getCprojectid() + "' "); - itemObj.put("entryName", pk_project); // 项目名称 - itemObj.put("bipChildId", item.getCmoid()); // 子项主键ID + itemObj.put("entryName", pk_project); // 项目名称 + itemObj.put("bipChildId", item.getCmoid()); // 子项主键ID - // 部门信息 - 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")); // 生产部门编码 + // 部门信息 + 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")); // 生产部门编码 - // 日期信息 - itemObj.put("requiredDate", item.getTrequiredate().toString()); // 需用日期 + // 日期信息 + itemObj.put("requiredDate", item.getTrequiredate().toString()); // 需用日期 - itemObj.put("bipParentProcessProductionOrderId", item.getVparentbillcode()); - itemObj.put("bipParentProcessProductionOrderRowNum", item.getVparentmorowno()); - itemObj.put("bipOriginProcessProductionOrderId", item.getVsrccode()); - itemObj.put("bipOriginProcessProductionOrderRowNum", item.getVsrcrowno()); + itemObj.put("bipParentProcessProductionOrderId", item.getVparentbillcode()); + itemObj.put("bipParentProcessProductionOrderRowNum", item.getVparentmorowno()); + 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")); // 物料名称 + // 物料信息 + 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("drawingNumber","1234"); - Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" + mrl.get("pk_measdoc") + "' "); + itemObj.put("drawingNumber", "1234"); + Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" + mrl.get("pk_measdoc") + "' "); - itemObj.put("unit", unit); // 单位 pk_measdoc + itemObj.put("unit", unit); // 单位 pk_measdoc - // 生产信息 - itemObj.put("intervalModel", mrl.get("materialspec")); // 产品类型 + // 生产信息 + itemObj.put("intervalModel", mrl.get("materialspec")); // 产品类型 // itemObj.put("processCode", item.getProcedures()); // 工序编码 - itemObj.put("lineNumber", String.valueOf(item.getVrowno())); // 行号 + itemObj.put("lineNumber", String.valueOf(item.getVrowno())); // 行号 - // 库存信息 - itemObj.put("demandInventoryOrganization", item.getCrequireorg()); // 需求库存组织 - itemObj.put("plannedInputQuantity",(int) item.getNplanputastnum().doubleValue()); // 计划投入量 - itemObj.put("plannedOutputQuantity",(int)item.getNmmastnum().doubleValue()); // 计划产出量 - itemObj.put("plannedStartTime", item.getTplanstarttime().toString()); // 计划开工时间 - itemObj.put("plannedCompletionTime", item.getTplanendtime().toString()); // 计划完工时间 - itemObj.put("customerMaterialCode", item.getCcustmaterialid()); // 客户物料编码 - itemObj.put("productionBatch", item.getCbatchid()); // 生产批次(按BIP格式) - itemObj.put("productionBatchNumber", item.getVbatchcode()); // 生产批次号(按BIP格式) + // 库存信息 + itemObj.put("demandInventoryOrganization", item.getCrequireorg()); // 需求库存组织 + itemObj.put("plannedInputQuantity", (int) item.getNplanputastnum().doubleValue()); // 计划投入量 + itemObj.put("plannedOutputQuantity", (int) item.getNmmastnum().doubleValue()); // 计划产出量 + itemObj.put("plannedStartTime", item.getTplanstarttime().toString()); // 计划开工时间 + itemObj.put("plannedCompletionTime", item.getTplanendtime().toString()); // 计划完工时间 + itemObj.put("customerMaterialCode", item.getCcustmaterialid()); // 客户物料编码 + itemObj.put("productionBatch", item.getCbatchid()); // 生产批次(按BIP格式) + itemObj.put("productionBatchNumber", item.getVbatchcode()); // 生产批次号(按BIP格式) + + contentArray.add(itemObj); // 将子项添加到数组 + + flags = "addOrder"; + } else { + JSONObject itemObj = new JSONObject(); + + // 填充子项基础信息 + + String sql = " select pk_defdoclist from bd_defdoclist where code='zdy-001' and dr=0 "; + String o = (String) baseDAO.executeQuery(sql, new ColumnProcessor()); + + Object contractNum = hybo.findColValue("bd_defdoc", "code", " (pk_defdoclist = '" + o + "' and pk_defdoc='" + item.getVdef1() + "') "); + + itemObj.put("contractNum", contractNum); // 合同编号 +// itemObj.put("cwarehouseid", item.getAttributeValue("vbdef35")); // 仓库编号 + Object pk_project = hybo.findColValue("bd_project", "project_name", " pk_project = '" + item.getCprojectid() + "' "); + + itemObj.put("entryName", pk_project); // 项目名称 + + // 部门信息 + 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("bipChildId", item.getCmoid()); // 子项主键ID + itemObj.put("bipDeptName", tr.get("name")); // 生产部门名称 + itemObj.put("bipDeptId", tr.get("code")); // 生产部门编码 + + // 日期信息 + itemObj.put("requiredDate", item.getTrequiredate().toString()); // 需用日期 + + itemObj.put("bipParentProcessProductionOrderId", item.getVparentbillcode()); + itemObj.put("bipParentProcessProductionOrderRowNum", item.getVparentmorowno()); + itemObj.put("bipOriginProcessProductionOrderId", item.getVsalebillcode()); + itemObj.put("bipOriginProcessProductionOrderRowNum", ""); + + // 物料信息 + 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("drawingNumber", mrl.get("graphid")); + Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" + mrl.get("pk_measdoc") + "' "); + + itemObj.put("unit", unit); // 单位 pk_measdoc + + // 生产信息 + itemObj.put("intervalModel", mrl.get("materialspec")); // 产品类型 +// itemObj.put("processCode", item.getProcedures()); // 工序编码 + itemObj.put("lineNumber", String.valueOf(item.getVrowno())); // 行号 + + // 库存信息 + itemObj.put("demandInventoryOrganization", item.getCrequireorg()); // 需求库存组织 + itemObj.put("plannedInputQuantity", (int) item.getNplanputastnum().doubleValue()); // 计划投入量 + itemObj.put("plannedOutputQuantity", (int) item.getNmmastnum().doubleValue()); // 计划产出量 + itemObj.put("plannedStartTime", item.getTplanstarttime().toString()); // 计划开工时间 + itemObj.put("plannedCompletionTime", item.getTplanendtime().toString()); // 计划完工时间 + itemObj.put("customerMaterialCode", item.getCcustmaterialid()); // 客户物料编码 + itemObj.put("productionBatch", item.getCbatchid()); // 生产批次(按BIP格式) + itemObj.put("productionBatchNumber", item.getVbatchcode()); // 生产批次号(按BIP格式) + + contentArray.add(itemObj); // 将子项添加到数组 + + flags = "updateOrder"; + } - contentArray.add(itemObj); // 将子项添加到数组 } - + if (flags.equals("addOrder")) { + 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 + } else if (flags.equals("updateOrder")){ + String sql1 = " select user_name from sm_user where cuserid = '" + pmoHeadVO.getModifier() + "' "; + String bipUpdateBy = (String) baseDAO.executeQuery(sql1, new ColumnProcessor()); + singleObj.put("bipUpdateBy", bipUpdateBy); // 修改人ID + } singleObj.put("itemList", contentArray); // 将子项数组添加到主对象 jsonArray.add(singleObj); list.put("list", jsonArray); } - pushData(list); + pushData(list, flags); } /** * 推送同步数据 */ - private void pushData(JSONObject param) throws BusinessException { + private void pushData(JSONObject param, String flags) throws BusinessException { // 转json字符串的时候保留null值 String jsonStr = JSON.toJSONString(param, SerializerFeature.WriteMapNullValue, @@ -159,7 +235,12 @@ public class AfterApproveSyncHighpressureMesRule implements IRule { ); logger.error("gyMes-PMO-param = " + jsonStr); String baseUrl = configParams.get("mesBaseUrl"); - String requestUrl = baseUrl + configParams.get("productionOrderAdd"); + String requestUrl = ""; + if (flags.equals("addOrder")) { + requestUrl = baseUrl + configParams.get("productionOrderAdd"); + } else if (flags.equals("updateOrder")) {//调用修改口 + requestUrl = baseUrl + configParams.get("productionOrderUpdate"); + } logger.error("gyMes-PMO-url = " + requestUrl); String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr); JSONObject resultObj = JSONObject.parseObject(result); diff --git a/so/src/private/nc/bs/so/m30/rule/approve/AfterSoCancelSyncRuleGyMes.java b/so/src/private/nc/bs/so/m30/rule/approve/AfterSoCancelSyncRuleGyMes.java index 6f7d4e9e..d9d0aae8 100644 --- a/so/src/private/nc/bs/so/m30/rule/approve/AfterSoCancelSyncRuleGyMes.java +++ b/so/src/private/nc/bs/so/m30/rule/approve/AfterSoCancelSyncRuleGyMes.java @@ -83,14 +83,14 @@ public class AfterSoCancelSyncRuleGyMes implements IRule { StringBuilder sb = new StringBuilder(); if (cmoidObj.size() > 1) { for (int i = 0; i < cmoidObj.size(); i++) { - sb.append("'").append(cmoidObj.get(i)).append("'"); + sb.append(cmoidObj.get(i)); if (i < cmoidObj.size() - 1) { sb.append(","); } } result = sb.toString(); } else { - result = "'" + (String) cmoidObj.get(0) + "'"; + result = (String) cmoidObj.get(0); } // 取消审批人 diff --git a/so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleGyMes.java b/so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleGyMes.java index 44c8a2b6..bd5d8c66 100644 --- a/so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleGyMes.java +++ b/so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleGyMes.java @@ -12,8 +12,10 @@ import nc.bs.uapbd.util.MyHelper; import nc.bs.uapbd.util.ThirdPartyPostRequestUtil; import nc.impl.pubapp.pattern.rule.IRule; import nc.jdbc.framework.processor.ColumnProcessor; +import nc.jdbc.framework.processor.MapListProcessor; import nc.jdbc.framework.processor.MapProcessor; import nc.vo.bd.defdoc.DefdocVO; +import nc.vo.bd.material.MaterialVO; import nc.vo.org.OrgVO; import nc.vo.pmpub.project.ProjectHeadVO; import nc.vo.pub.BusinessException; @@ -23,6 +25,9 @@ import nc.vo.so.m30.entity.SaleOrderHVO; import nc.vo.so.m30.entity.SaleOrderVO; import nccloud.baseapp.core.log.NCCForUAPLogger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.Map; /** @@ -34,6 +39,7 @@ public class AfterSoSyncRuleGyMes implements IRule { private static final String LOG_INFO_NAME = "gymeslog"; private static final Log logger = Log.getInstance(LOG_INFO_NAME); private static final String reqUrl = "/bip/order/saleOrderAdd"; + private static final String reqUrl_update = "/bip/order/saleOrderUpdate"; private Map configParams; @Override @@ -77,27 +83,59 @@ public class AfterSoSyncRuleGyMes implements IRule { // 合同编号 String vdef6 = hvo.getVdef6(); String contractNum = getDefCode("zdy-001", vdef6); - for (SaleOrderBVO item : itemVOS) { - Object projectName =getDefName("zdy-001", vdef6); -// Object projectName = hybo.findColValue(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_NAME, ProjectHeadVO.PK_PROJECT + " = '" + item.getCprojectid() + "' "); - String wlsql = " select code,name,graphid from bd_material where dr = 0 and pk_material = '" + item.getCmaterialvid() + "' "; - Map mrlMap = (Map) baseDAO.executeQuery(wlsql, new MapProcessor()); - JSONObject itemObj = new JSONObject(); - itemObj.put("contractNum", contractNum);// 合同编码 - itemObj.put("bipOrderId", hvo.getVbillcode());// 销售订单号 - itemObj.put("bipId", item.getCsaleorderbid());// 主键ID - itemObj.put("entryName", projectName);// 项目名称 - itemObj.put("productQuantity", item.getNastnum().doubleValue());// 数量 - itemObj.put("materialCode", mrlMap.get("code"));// 物料编码 - itemObj.put("materialName", mrlMap.get("name"));// 物料名称 - itemObj.put("drawingNumber", mrlMap.get("graphid"));// 图号 - itemObj.put("supplyDate", item.getDreceivedate().toString());// 供货日期-要求收货日期 - itemObj.put("remark", item.getVrownote());// 备注 - itemObj.put("bipCreateBy", createName);// 创建人 - itemObj.put("customers", customerName);// 客户 - pushData(itemObj); + //自定义项26是Y时调用修改口,若不是则调用新增口 + String saleDef = hvo.getVdef26()== null ? "" : hvo.getVdef26(); + if (!saleDef.equals("Y")) { + // 更新自定义项26为“Y” + String sql = "update so_saleorder set vdef26 = '" + "Y" + "' where vbillcode = '" + hvo.getVbillcode() + "'"; + baseDAO.executeUpdate(sql); + + for (SaleOrderBVO item : itemVOS) { + Object projectName = getDefName("zdy-001", vdef6); +// Object projectName = hybo.findColValue(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_NAME, ProjectHeadVO.PK_PROJECT + " = '" + item.getCprojectid() + "' "); + String wlsql = " select code,name,graphid from bd_material where dr = 0 and pk_material = '" + item.getCmaterialvid() + "' "; + Map mrlMap = (Map) baseDAO.executeQuery(wlsql, new MapProcessor()); + + JSONObject itemObj = new JSONObject(); + itemObj.put("contractNum", contractNum);// 合同编码 + itemObj.put("bipOrderId", hvo.getVbillcode());// 销售订单号 + itemObj.put("bipId", item.getCsaleorderbid());// 主键ID + itemObj.put("entryName", projectName);// 项目名称 + itemObj.put("productQuantity", (int) item.getNastnum().doubleValue());// 数量 + itemObj.put("materialCode", mrlMap.get("code"));// 物料编码 + itemObj.put("materialName", mrlMap.get("name"));// 物料名称 + itemObj.put("drawingNumber", mrlMap.get("graphid"));// 图号 + itemObj.put("supplyDate", item.getDreceivedate().toString());// 供货日期-要求收货日期 + itemObj.put("remark", item.getVrownote());// 备注 + itemObj.put("bipCreateBy", createName);// 创建人 + itemObj.put("customers", customerName);// 客户 + pushData(itemObj); + + } + } else { + for (SaleOrderBVO item : itemVOS) { + Object projectName = getDefName("zdy-001", vdef6); + String wlsql = " select code,name,graphid from bd_material where dr = 0 and pk_material = '" + item.getCmaterialvid() + "' "; + Map mrlMap = (Map) baseDAO.executeQuery(wlsql, new MapProcessor()); + + JSONObject itemObj = new JSONObject(); + itemObj.put("contractNum", contractNum);// 合同编码 + itemObj.put("bipOrderId", hvo.getVbillcode());// 销售订单号 + itemObj.put("entryName", projectName);// 项目名称 + itemObj.put("productQuantity", (int) item.getNastnum().doubleValue());// 数量 + itemObj.put("materialCode", mrlMap.get("code"));// 物料编码 + itemObj.put("materialName", mrlMap.get("name"));// 物料名称 + itemObj.put("drawingNumber", mrlMap.get("graphid"));// 图号 + itemObj.put("supplyDate", item.getDreceivedate().toString());// 供货日期-要求收货日期 + itemObj.put("remark", item.getVrownote());// 备注 + itemObj.put("bipUpdateBy", createName);// 修改人 + itemObj.put("customers", customerName);// 客户 + pushData_Update(itemObj); + + } } + /** * { * "contractNum": "TZF2520201225 合同编码", @@ -139,6 +177,28 @@ public class AfterSoSyncRuleGyMes implements IRule { } } + /** + * 推送同步数据_修改口 + */ + private void pushData_Update(JSONObject param) throws BusinessException { + // String jsonString = param.toJSONString(); + // 转json字符串的时候保留null值 + String jsonStr = JSON.toJSONString(param, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty); + logger.error("gyMes-SaleOrder-param = " + jsonStr); + NCCForUAPLogger.debug("gyMes-SaleOrder-param = " + jsonStr); + String baseUrl = configParams.get("mesBaseUrl"); + String requestUrl = baseUrl + reqUrl_update; + logger.error("gyMes-SaleOrder-url = " + requestUrl); + String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr); + JSONObject resultObj = JSONObject.parseObject(result); + logger.error("gyMes-SaleOrder-res = " + result); + + if (!"200".equals(resultObj.getString("code"))) { + logger.error("gyMes-SaleOrder-error,result[" + resultObj.toJSONString() + "]"); + throw new BusinessException("销售订单推送高压MES错误:" + resultObj.getString("msg")); + } + } + private boolean checkIfOrg(String code, Map configParams) throws BusinessException { String targetCode = configParams.get("gyOrg"); if (targetCode == null || nc.vo.am.common.util.StringUtils.isEmpty(targetCode)) { @@ -170,6 +230,7 @@ public class AfterSoSyncRuleGyMes implements IRule { return res; } + /** * 获取自定义项信息 */ From 2fc6dd67e5d0075a548355f6aa6246db6f686eaa Mon Sep 17 00:00:00 2001 From: houyi <1398559711@qq.com> Date: Tue, 30 Sep 2025 16:40:20 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rApproveSyncUpdateHighpressureMesRule.java | 188 ------------------ .../approve/AfterSoSyncRuleUpdateGyMes.java | 188 ------------------ 2 files changed, 376 deletions(-) delete mode 100644 mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncUpdateHighpressureMesRule.java delete mode 100644 so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleUpdateGyMes.java diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncUpdateHighpressureMesRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncUpdateHighpressureMesRule.java deleted file mode 100644 index 7e11e082..00000000 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncUpdateHighpressureMesRule.java +++ /dev/null @@ -1,188 +0,0 @@ -package nc.bs.mmpac.pmo.pac0002.bp.rule; - - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.serializer.SerializerFeature; -import nc.bs.dao.BaseDAO; -import nc.bs.logging.Log; -import nc.bs.trade.business.HYPubBO; -import nc.bs.uapbd.util.MyHelper; -import nc.bs.uapbd.util.ThirdPartyPostRequestUtil; -import nc.impl.pubapp.pattern.rule.IRule; -import nc.jdbc.framework.processor.ColumnProcessor; -import nc.jdbc.framework.processor.MapProcessor; -import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; -import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO; -import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; -import nc.vo.org.OrgVO; -import nc.vo.pub.BusinessException; -import nc.vo.pubapp.pattern.exception.ExceptionUtils; -import nc.vo.scmpub.util.ArrayUtil; - -import java.util.Map; - -/** - * 流程生产订单审批后推送高压MES修改 - * - * @author lihao - * @date 2025/9/1 - */ -public class AfterApproveSyncUpdateHighpressureMesRule implements IRule { - - 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) { - logger.error("同步生产订单到高压MES系统失败: " + e.getMessage(), e); - ExceptionUtils.wrappException(e); - } - } - - /** - * 构建同步数据 - */ - private void buildSyncData(PMOAggVO[] useVOs) throws BusinessException { - BaseDAO baseDAO = new BaseDAO(); - - HYPubBO hybo = new HYPubBO(); - JSONObject list = new JSONObject(); - JSONArray jsonArray = new JSONArray(); - for (PMOAggVO vo : useVOs) { - 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_name from sm_user where cuserid = '" + pmoHeadVO.getModifier() + "' "; - String bipCreateBy = (String) baseDAO.executeQuery(sql1, new ColumnProcessor()); - - singleObj.put("bipUpdateBy", bipCreateBy); // 修改人ID - - // 创建子项数组 - JSONArray contentArray = new JSONArray(); - for (PMOItemVO item : itemVOS) { - JSONObject itemObj = new JSONObject(); - - // 填充子项基础信息 - - String sql = " select pk_defdoclist from bd_defdoclist where code='zdy-001' and dr=0 "; - String o = (String) baseDAO.executeQuery(sql, new ColumnProcessor()); - - Object contractNum = hybo.findColValue("bd_defdoc", "code", " (pk_defdoclist = '" + o + "' and pk_defdoc='" + item.getVdef1() + "') "); - - itemObj.put("contractNum", contractNum); // 合同编号 -// itemObj.put("cwarehouseid", item.getAttributeValue("vbdef35")); // 仓库编号 - Object pk_project = hybo.findColValue("bd_project", "project_name", " pk_project = '" + item.getCprojectid() + "' "); - - itemObj.put("entryName", pk_project); // 项目名称 - - // 部门信息 - 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")); // 生产部门编码 - - // 日期信息 - itemObj.put("requiredDate", item.getTrequiredate().toString()); // 需用日期 - - itemObj.put("bipParentProcessProductionOrderId", item.getVparentbillcode()); - itemObj.put("bipParentProcessProductionOrderRowNum", item.getVparentmorowno()); - 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("drawingNumber",mrl.get("graphid")); - Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" + mrl.get("pk_measdoc") + "' "); - - itemObj.put("unit", unit); // 单位 pk_measdoc - - // 生产信息 - itemObj.put("intervalModel", mrl.get("materialspec")); // 产品类型 -// itemObj.put("processCode", item.getProcedures()); // 工序编码 - itemObj.put("lineNumber", String.valueOf(item.getVrowno())); // 行号 - - // 库存信息 - itemObj.put("demandInventoryOrganization", item.getCrequireorg()); // 需求库存组织 - itemObj.put("plannedInputQuantity",(int) item.getNplanputastnum().doubleValue()); // 计划投入量 - itemObj.put("plannedOutputQuantity",(int)item.getNmmastnum().doubleValue()); // 计划产出量 - itemObj.put("plannedStartTime", item.getTplanstarttime().toString()); // 计划开工时间 - itemObj.put("plannedCompletionTime", item.getTplanendtime().toString()); // 计划完工时间 - itemObj.put("customerMaterialCode", item.getCcustmaterialid()); // 客户物料编码 - itemObj.put("productionBatch", item.getCbatchid()); // 生产批次(按BIP格式) - itemObj.put("productionBatchNumber", item.getVbatchcode()); // 生产批次号(按BIP格式) - - contentArray.add(itemObj); // 将子项添加到数组 - } - - singleObj.put("itemList", contentArray); // 将子项数组添加到主对象 - jsonArray.add(singleObj); - list.put("list", jsonArray); - } - pushData(list); - } - - /** - * 推送同步数据 - */ - private void pushData(JSONObject param) throws BusinessException { - // 转json字符串的时候保留null值 - String jsonStr = JSON.toJSONString(param, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteNullStringAsEmpty - ); - logger.error("gyMes-PMO-param = " + jsonStr); - String baseUrl = configParams.get("mesBaseUrl"); - String requestUrl = baseUrl + configParams.get("productionOrderUpdate"); - logger.error("gyMes-PMO-url = " + requestUrl); - String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr); - JSONObject resultObj = JSONObject.parseObject(result); - logger.error("gyMes-PMO-res = " + result); - - if (!"200".equals(resultObj.getString("code"))) { - logger.error("gyMes-PMO-error,result[" + resultObj.toJSONString() + "]"); - throw new BusinessException("流程生产订单推送高压MES错误:" + resultObj.getString("msg")); - } - } - - private boolean checkIfOrg(String code, Map configParams) throws BusinessException { - String targetCode = configParams.get("gyOrg"); - 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; - } - - -} diff --git a/so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleUpdateGyMes.java b/so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleUpdateGyMes.java deleted file mode 100644 index 1cff53d0..00000000 --- a/so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleUpdateGyMes.java +++ /dev/null @@ -1,188 +0,0 @@ -package nc.bs.so.m30.rule.approve; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.serializer.SerializerFeature; -import nc.bs.dao.BaseDAO; -import nc.bs.dao.DAOException; -import nc.bs.logging.Log; -import nc.bs.trade.business.HYPubBO; -import nc.bs.trade.business.HYSuperDMO; -import nc.bs.uapbd.util.MyHelper; -import nc.bs.uapbd.util.ThirdPartyPostRequestUtil; -import nc.impl.pubapp.pattern.rule.IRule; -import nc.jdbc.framework.processor.ColumnProcessor; -import nc.jdbc.framework.processor.MapProcessor; -import nc.vo.bd.defdoc.DefdocVO; -import nc.vo.org.OrgVO; -import nc.vo.pub.BusinessException; -import nc.vo.pubapp.pattern.exception.ExceptionUtils; -import nc.vo.so.m30.entity.SaleOrderBVO; -import nc.vo.so.m30.entity.SaleOrderHVO; -import nc.vo.so.m30.entity.SaleOrderVO; -import nccloud.baseapp.core.log.NCCForUAPLogger; - -import java.util.Map; - -/** - * 销售订单推送高压mes修改 - * - * @author houyi - */ -public class AfterSoSyncRuleUpdateGyMes implements IRule { - private static final String LOG_INFO_NAME = "gymeslog"; - private static final Log logger = Log.getInstance(LOG_INFO_NAME); - private static final String reqUrl = "/bip/order/saleOrderUpdate"; - private Map configParams; - - @Override - public void process(SaleOrderVO[] saleOrderVOs) { - try { - if (saleOrderVOs == null || saleOrderVOs.length == 0) { - return; - } - configParams = MyHelper.getConfigParams("gy-config", null); - if (configParams.isEmpty()) { - throw new BusinessException("高压的接口缺少配置"); - } - buildSyncData(saleOrderVOs); - } catch (Exception e) { - ExceptionUtils.wrappException(e); - } - } - - /** - * 构建同步数据 - */ - private void buildSyncData(SaleOrderVO[] useVOs) throws BusinessException { - BaseDAO baseDAO = new BaseDAO(); - HYPubBO hybo = new HYPubBO(); - for (SaleOrderVO 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; - } - - SaleOrderHVO hvo = vo.getParentVO(); - SaleOrderBVO[] itemVOS = vo.getChildrenVO(); - // 客户 - String customerSql = " select name from bd_customer where dr = 0 and pk_customer = '" + hvo.getCcustomerid() + "' "; - String customerName = (String) baseDAO.executeQuery(customerSql, new ColumnProcessor()); - // 创建人 - String userSql = " select user_name from sm_user where dr = 0 and cuserid = '" + hvo.getCreviserid() + "' "; - String createName = (String) baseDAO.executeQuery(userSql, new ColumnProcessor()); - // 合同编号 - String vdef6 = hvo.getVdef6(); - String contractNum = getDefCode("zdy-001", vdef6); - for (SaleOrderBVO item : itemVOS) { - Object projectName =getDefName("zdy-001", vdef6); -// Object projectName = hybo.findColValue(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_NAME, ProjectHeadVO.PK_PROJECT + " = '" + item.getCprojectid() + "' "); - String wlsql = " select code,name,graphid from bd_material where dr = 0 and pk_material = '" + item.getCmaterialvid() + "' "; - Map mrlMap = (Map) baseDAO.executeQuery(wlsql, new MapProcessor()); - - JSONObject itemObj = new JSONObject(); - itemObj.put("contractNum", contractNum);// 合同编码 - itemObj.put("bipOrderId", hvo.getVbillcode());// 销售订单号 - itemObj.put("entryName", projectName);// 项目名称 - itemObj.put("productQuantity", item.getNastnum().doubleValue());// 数量 - itemObj.put("materialCode", mrlMap.get("code"));// 物料编码 - itemObj.put("materialName", mrlMap.get("name"));// 物料名称 - itemObj.put("drawingNumber", mrlMap.get("graphid"));// 图号 - itemObj.put("supplyDate", item.getDreceivedate().toString());// 供货日期-要求收货日期 - itemObj.put("remark", item.getVrownote());// 备注 - itemObj.put("bipUpdateBy", createName);// 修改人 - itemObj.put("customers", customerName);// 客户 - pushData(itemObj); - } - /*{ - "contractNum": "TZF2520201225 合同编码", - "bipOrderId": "TZF2520201225 销售的订单号", - "entryName": "大唐河北故城50MW风电项目", - "productQuantity": "数量个数 例如 1", - "materialCode": "物料编码", - "materialName": "物料名称", - "drawingNumber": "图号编码 计划信息组织是高压的图号", //计划信息组织是高压的图号 - "supplyDate": "2025-01-03 11:09:22", - "remark": "备注", - "bipUpdateBy": "修改人ID", - "customers": "客户 例如贵州电网xxx" - }*/ - } - } - - /** - * 推送同步数据 - */ - private void pushData(JSONObject param) throws BusinessException { - // String jsonString = param.toJSONString(); - // 转json字符串的时候保留null值 - String jsonStr = JSON.toJSONString(param, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty); - logger.error("gyMes-SaleOrder-param = " + jsonStr); - NCCForUAPLogger.debug("gyMes-SaleOrder-param = " + jsonStr); - String baseUrl = configParams.get("mesBaseUrl"); - String requestUrl = baseUrl + reqUrl; - logger.error("gyMes-SaleOrder-url = " + requestUrl); - String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr); - JSONObject resultObj = JSONObject.parseObject(result); - logger.error("gyMes-SaleOrder-res = " + result); - - if (!"200".equals(resultObj.getString("code"))) { - logger.error("gyMes-SaleOrder-error,result[" + resultObj.toJSONString() + "]"); - throw new BusinessException("销售订单推送高压MES错误:" + resultObj.getString("msg")); - } - } - - private boolean checkIfOrg(String code, Map configParams) throws BusinessException { - String targetCode = configParams.get("gyOrg"); - 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; - } - - /** - * 获取自定义项信息 - */ - private String getDefCode(String code, String pk_defdoc) { - String res = ""; - String strWhere = " pk_defdoclist in (select pk_defdoclist from bd_defdoclist where code='" + code + "' and dr=0 ) and dr = 0 and pk_defdoc = '" + pk_defdoc + "'"; - try { - DefdocVO[] defdocVOs = (DefdocVO[]) new HYSuperDMO().queryByWhereClause(DefdocVO.class, strWhere); - if (defdocVOs != null && defdocVOs.length > 0) { - res = defdocVOs[0].getCode().trim(); - } - } catch (DAOException e) { - logger.error("gyMes-SaleOrder-error,getDefCode[" + e.getMessage() + "]"); - } - return res; - - } - /** - * 获取自定义项信息 - */ - private String getDefName(String code, String pk_defdoc) { - String res = ""; - String strWhere = " pk_defdoclist in (select pk_defdoclist from bd_defdoclist where code='" + code + "' and dr=0 ) and dr = 0 and pk_defdoc = '" + pk_defdoc + "'"; - try { - DefdocVO[] defdocVOs = (DefdocVO[]) new HYSuperDMO().queryByWhereClause(DefdocVO.class, strWhere); - if (defdocVOs != null && defdocVOs.length > 0) { - res = defdocVOs[0].getName().trim(); - } - } catch (DAOException e) { - logger.error("gyMes-SaleOrder-error,getDefCode[" + e.getMessage() + "]"); - } - return res; - - } - - -} - From fb975ac137489060ea4bc4a8164abcbe669a8b46 Mon Sep 17 00:00:00 2001 From: houyi <1398559711@qq.com> Date: Tue, 30 Sep 2025 17:11:37 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=A4=87=E6=96=99=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E5=90=8E=E6=8E=A8=E9=80=81=E9=AB=98=E5=8E=8BMES=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rule/AfterApproveRuleHighpressureMes.java | 211 ++++++++++++------ 1 file changed, 147 insertions(+), 64 deletions(-) diff --git a/mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/AfterApproveRuleHighpressureMes.java b/mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/AfterApproveRuleHighpressureMes.java index 6492c0e1..d3b9d877 100644 --- a/mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/AfterApproveRuleHighpressureMes.java +++ b/mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/AfterApproveRuleHighpressureMes.java @@ -62,6 +62,7 @@ public class AfterApproveRuleHighpressureMes implements IRule { HYPubBO hybo = new HYPubBO(); JSONObject list = new JSONObject(); JSONArray jsonArray = new JSONArray(); + String flags = "";//判断是否新增或修改 for (AggPickmVO vo : useVOs) { PickmHeadVO pickmHeadVO = vo.getParentVO(); PickmItemVO[] itemVOS = (PickmItemVO[]) vo.getChildrenVO(); @@ -72,79 +73,156 @@ public class AfterApproveRuleHighpressureMes implements IRule { continue; } JSONObject singleObj = new JSONObject(); - singleObj.put("materialPreparationPlanNumber", pickmHeadVO.getVbillcode());// 备料计划单号 - singleObj.put("bipId", pickmHeadVO.getCpickmid());// 主键ID - // 生产部门 - String deptsql = " select name from org_dept where pk_dept='" + pickmHeadVO.getCdeptid() + "' and dr=0 "; - Map dept = (Map) baseDAO.executeQuery(deptsql, new MapProcessor()); - singleObj.put("bipDeptName", dept.get("name")); // 生产部门 - singleObj.put("bipDeptId", pickmHeadVO.getCdeptid()); // 生产部门Id - - singleObj.put("bipProcessProductionOrderId", pickmHeadVO.getVsourcemocode()); // 流程生产订单号 - singleObj.put("bipProcessProductionOrderRowNum", pickmHeadVO.getVsourcemorowcode()); // 来源单据号行号 - singleObj.put("bipParentProcessProductionOrderId", pickmHeadVO.getVfirstbillcode()); // 上级来源单据号 - singleObj.put("bipParentProcessProductionOrderRowNum", pickmHeadVO.getVfirstbillrowno()); // 上级来源单据行号 - singleObj.put("bipOriginProcessProductionOrderId", pickmHeadVO.getVsalebillcode()); // 顶级来源单据号 - singleObj.put("bipOriginProcessProductionOrderRowNum", pickmHeadVO.getVfirstbillrowno()); // 顶级来源单据行号 - singleObj.put("orderQuantity", pickmHeadVO.getNastnum() != null ? pickmHeadVO.getNastnum().doubleValue() : null); // 订单数量(计划数量) - singleObj.put("bomVersion", pickmHeadVO.getVbomversionnumber()); // bom版本 - // 物料信息 - String cpsql = "select code,name,graphid,pk_measdoc,materialspec from bd_material where pk_material = '" + pickmHeadVO.getCmaterialvid() + "' "; - Map mrl = (Map) baseDAO.executeQuery(cpsql, new MapProcessor()); - singleObj.put("productCode", mrl.get("code")); // 产品编码 - singleObj.put("productName", mrl.get("name")); // 产品名称 - -// singleObj.put("intervalModel", mrl.get("materialspec")); // (物料的自定义字段) - singleObj.put("intervalModel", "(物料的自定义字段)"); // (物料的自定义字段) - singleObj.put("requiredDate", pickmHeadVO.getDmakedate().toString()); // 需用日期 - String sql1 = " select user_name from sm_user where cuserid = '" + pickmHeadVO.getCreator() + "' "; - String bipCreateBy = (String) baseDAO.executeQuery(sql1, new ColumnProcessor()); - - singleObj.put("bipCreateBy", bipCreateBy); // 创建人ID - // 创建子项数组 JSONArray contentArray = new JSONArray(); - for (PickmItemVO item : itemVOS) { - JSONObject itemObj = new JSONObject(); + //自定义项19是Y时调用修改口,若不是则调用新增口 + String saleDef = pickmHeadVO.getVdef19() == null ? "" : pickmHeadVO.getVdef19(); + if (!saleDef.equals("Y")) { + // 更新自定义项19为“Y” + String sql = "update mm_pickm set vdef19 = '" + "Y" + "' where vbillcode = '" + pickmHeadVO.getVbillcode() + "'"; + baseDAO.executeUpdate(sql); - itemObj.put("bipChildId", item.getCpickm_bid()); // 子项主键ID -// itemObj.put("bchkitemforwr", item.getBchkitemforwr()); // 完工齐套检查 - itemObj.put("bchkitemforwr", "Y"); // 完工齐套检查 - itemObj.put("quantityPerSet", item.getNunituseastnum() != null ? item.getNunituseastnum().doubleValue() : null); // 单套数量(单位用量) - itemObj.put("reservedQuantity", item.getNatpastnum() != null ? item.getNatpastnum().doubleValue() : null); // 预留数量 - itemObj.put("cumulativePendingQuantity", item.getNshouldastnum() != null ? item.getNshouldastnum().doubleValue() : null); // 累计待发数量 - itemObj.put("cumulativeIssuedQuantity", item.getNaccoutastnum() != null ? item.getNaccoutastnum().doubleValue() : null); // 累计出库数量 - itemObj.put("totalQuantity", item.getNplanoutnum() != null ? item.getNplanoutnum().doubleValue() : null); // 总数量(计划出库主数量) + singleObj.put("materialPreparationPlanNumber", pickmHeadVO.getVbillcode());// 备料计划单号 + singleObj.put("bipId", pickmHeadVO.getCpickmid());// 主键ID + // 生产部门 + String deptsql = " select name from org_dept where pk_dept='" + pickmHeadVO.getCdeptid() + "' and dr=0 "; + Map dept = (Map) baseDAO.executeQuery(deptsql, new MapProcessor()); + singleObj.put("bipDeptName", dept.get("name")); // 生产部门 + singleObj.put("bipDeptId", pickmHeadVO.getCdeptid()); // 生产部门Id + singleObj.put("bipProcessProductionOrderId", pickmHeadVO.getVsourcemocode()); // 流程生产订单号 + singleObj.put("bipProcessProductionOrderRowNum", pickmHeadVO.getVsourcemorowcode()); // 来源单据号行号 + singleObj.put("bipParentProcessProductionOrderId", pickmHeadVO.getVfirstbillcode()); // 上级来源单据号 + singleObj.put("bipParentProcessProductionOrderRowNum", pickmHeadVO.getVfirstbillrowno()); // 上级来源单据行号 + singleObj.put("bipOriginProcessProductionOrderId", pickmHeadVO.getVsalebillcode()); // 顶级来源单据号 + singleObj.put("bipOriginProcessProductionOrderRowNum", pickmHeadVO.getVfirstbillrowno()); // 顶级来源单据行号 + singleObj.put("orderQuantity", pickmHeadVO.getNastnum() != null ? pickmHeadVO.getNastnum().doubleValue() : null); // 订单数量(计划数量) + singleObj.put("bomVersion", pickmHeadVO.getVbomversionnumber()); // bom版本 // 物料信息 - String mrlsql = "select code,name,graphid,pk_measdoc,materialspec from bd_material where pk_material = '" + item.getCbmaterialid() + "' "; - Map material = (Map) baseDAO.executeQuery(mrlsql, new MapProcessor()); - itemObj.put("materialCode", material.get("code")); // 物料编码 - itemObj.put("materialName", material.get("name")); // 物料名称 - itemObj.put("drawingNumber", material.get("graphid")); // 图号 - Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" + material.get("pk_measdoc") + "' "); - itemObj.put("unit", unit); // 规格单位 - // 生产信息 - itemObj.put("intervalModel", material.get("materialspec")); // 产品类型 - itemObj.put("lineNumber", String.valueOf(item.getVrowno())); // 行号 - // 项目编码 - String cprojectid = pickmHeadVO.getCprojectid();// 项目id - String projectCode = MyHelper.getStrValByCondition(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_CODE, - ProjectHeadVO.PK_PROJECT + " = '" + cprojectid + "'"); - singleObj.put("cbprojectid", projectCode); - // 生产厂商 - String productor = item.getCbproductorid();// 生产厂商id - String productorCode = getDefCode("Defdoc-BD006_0xx", item.getCbproductorid()); - singleObj.put("cbproductorid", productorCode); + String cpsql = "select code,name,graphid,pk_measdoc,materialspec from bd_material where pk_material = '" + pickmHeadVO.getCmaterialvid() + "' "; + Map mrl = (Map) baseDAO.executeQuery(cpsql, new MapProcessor()); + singleObj.put("productCode", mrl.get("code")); // 产品编码 + singleObj.put("productName", mrl.get("name")); // 产品名称 - contentArray.add(itemObj); // 将子项添加到数组 +// singleObj.put("intervalModel", mrl.get("materialspec")); // (物料的自定义字段) + singleObj.put("intervalModel", "(物料的自定义字段)"); // (物料的自定义字段) + singleObj.put("requiredDate", pickmHeadVO.getDmakedate().toString()); // 需用日期 + String sql1 = " select user_name from sm_user where cuserid = '" + pickmHeadVO.getCreator() + "' "; + String bipCreateBy = (String) baseDAO.executeQuery(sql1, new ColumnProcessor()); + + singleObj.put("bipCreateBy", bipCreateBy); // 创建人ID + + // 创建子项数组 + for (PickmItemVO item : itemVOS) { + JSONObject itemObj = new JSONObject(); + + itemObj.put("bipChildId", item.getCpickm_bid()); // 子项主键ID +// itemObj.put("bchkitemforwr", item.getBchkitemforwr()); // 完工齐套检查 + itemObj.put("bchkitemforwr", "Y"); // 完工齐套检查 + itemObj.put("quantityPerSet", item.getNunituseastnum() != null ? item.getNunituseastnum().doubleValue() : null); // 单套数量(单位用量) + itemObj.put("reservedQuantity", item.getNatpastnum() != null ? item.getNatpastnum().doubleValue() : null); // 预留数量 + itemObj.put("cumulativePendingQuantity", item.getNshouldastnum() != null ? item.getNshouldastnum().doubleValue() : null); // 累计待发数量 + itemObj.put("cumulativeIssuedQuantity", item.getNaccoutastnum() != null ? item.getNaccoutastnum().doubleValue() : null); // 累计出库数量 + itemObj.put("totalQuantity", item.getNplanoutnum() != null ? item.getNplanoutnum().doubleValue() : null); // 总数量(计划出库主数量) + + // 物料信息 + String mrlsql = "select code,name,graphid,pk_measdoc,materialspec from bd_material where pk_material = '" + item.getCbmaterialid() + "' "; + Map material = (Map) baseDAO.executeQuery(mrlsql, new MapProcessor()); + itemObj.put("materialCode", material.get("code")); // 物料编码 + itemObj.put("materialName", material.get("name")); // 物料名称 + itemObj.put("drawingNumber", material.get("graphid")); // 图号 + Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" + material.get("pk_measdoc") + "' "); + itemObj.put("unit", unit); // 规格单位 + // 生产信息 + itemObj.put("intervalModel", material.get("materialspec")); // 产品类型 + itemObj.put("lineNumber", String.valueOf(item.getVrowno())); // 行号 + // 项目编码 + String cprojectid = pickmHeadVO.getCprojectid();// 项目id + String projectCode = MyHelper.getStrValByCondition(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_CODE, + ProjectHeadVO.PK_PROJECT + " = '" + cprojectid + "'"); + singleObj.put("cbprojectid", projectCode); + // 生产厂商 + String productor = item.getCbproductorid();// 生产厂商id + String productorCode = getDefCode("Defdoc-BD006_0xx", item.getCbproductorid()); + singleObj.put("cbproductorid", productorCode); + + contentArray.add(itemObj); // 将子项添加到数组 + } + flags = "addOrder"; + } else { +// JSONObject singleObj = new JSONObject(); + singleObj.put("materialPreparationPlanNumber", pickmHeadVO.getVbillcode());// 备料计划单号 + singleObj.put("bipId", pickmHeadVO.getCpickmid());// 主键ID + // 生产部门 + String deptsql = " select name from org_dept where pk_dept='" + pickmHeadVO.getCdeptid() + "' and dr=0 "; + Map dept = (Map) baseDAO.executeQuery(deptsql, new MapProcessor()); + singleObj.put("bipDeptName", dept.get("name")); // 生产部门 + singleObj.put("bipDeptId", pickmHeadVO.getCdeptid()); // 生产部门Id + + singleObj.put("bipProcessProductionOrderId", pickmHeadVO.getVsourcemocode()); // 流程生产订单号 + singleObj.put("bipProcessProductionOrderRowNum", pickmHeadVO.getVsourcemorowcode()); // 来源单据号行号 + singleObj.put("bipParentProcessProductionOrderId", pickmHeadVO.getVfirstbillcode()); // 上级来源单据号 + singleObj.put("bipParentProcessProductionOrderRowNum", pickmHeadVO.getVfirstbillrowno()); // 上级来源单据行号 + singleObj.put("bipOriginProcessProductionOrderId", pickmHeadVO.getVsalebillcode()); // 顶级来源单据号 + singleObj.put("bipOriginProcessProductionOrderRowNum", ""); // 顶级来源单据行号 + singleObj.put("orderQuantity", pickmHeadVO.getNastnum() != null ? pickmHeadVO.getNastnum().doubleValue() : null); // 订单数量(计划数量) + singleObj.put("bomVersion", pickmHeadVO.getVbomversionnumber()); // bom版本 + // 物料信息 + String cpsql = "select code,name,graphid,pk_measdoc,materialspec from bd_material where pk_material = '" + pickmHeadVO.getCmaterialvid() + "' "; + Map mrl = (Map) baseDAO.executeQuery(cpsql, new MapProcessor()); + singleObj.put("productCode", mrl.get("code")); // 产品编码 + singleObj.put("productName", mrl.get("name")); // 产品名称 + +// singleObj.put("intervalModel", mrl.get("materialspec")); // (物料的自定义字段) + singleObj.put("processCode", "(物料的自定义字段)"); // 产品编码的工序(物料的自定义字段) + singleObj.put("requiredDate", pickmHeadVO.getDmakedate().toString()); // 需用日期 + String sql1 = " select user_name from sm_user where cuserid = '" + pickmHeadVO.getModifier() + "' "; + String bipCreateBy = (String) baseDAO.executeQuery(sql1, new ColumnProcessor()); + + singleObj.put("bipUpdateBy", bipCreateBy); // 创建人ID + + // 创建子项数组 +// JSONArray contentArray = new JSONArray(); + for (PickmItemVO item : itemVOS) { + JSONObject itemObj = new JSONObject(); + + itemObj.put("bipChildId", item.getCpickm_bid()); // 子项主键ID + itemObj.put("quantityPerSet", item.getNunituseastnum() != null ? item.getNunituseastnum().doubleValue() : null); // 单套数量(单位用量) + itemObj.put("reservedQuantity", item.getNatpastnum() != null ? item.getNatpastnum().doubleValue() : null); // 预留数量 + itemObj.put("cumulativePendingQuantity", item.getNshouldastnum() != null ? item.getNshouldastnum().doubleValue() : null); // 累计待发数量 + itemObj.put("cumulativeIssuedQuantity", item.getNaccoutastnum() != null ? item.getNaccoutastnum().doubleValue() : null); // 累计出库数量 + itemObj.put("totalQuantity", item.getNplanoutnum() != null ? item.getNplanoutnum().doubleValue() : null); // 总数量(计划出库主数量) + + // 物料信息 + String mrlsql = "select code,name,graphid,pk_measdoc,materialspec from bd_material where pk_material = '" + item.getCbmaterialid() + "' "; + Map material = (Map) baseDAO.executeQuery(mrlsql, new MapProcessor()); + itemObj.put("materialCode", material.get("code")); // 物料编码 + itemObj.put("materialName", material.get("name")); // 物料名称 + itemObj.put("drawingNumber", material.get("graphid")); // 图号 + Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" + material.get("pk_measdoc") + "' "); + itemObj.put("unit", unit); // 规格单位 + // 生产信息 +// itemObj.put("intervalModel", material.get("materialspec")); // 产品类型 + itemObj.put("lineNumber", String.valueOf(item.getVrowno())); // 行号 + // 项目编码 + String cprojectid = pickmHeadVO.getCprojectid();// 项目id + String projectCode = MyHelper.getStrValByCondition(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_CODE, + ProjectHeadVO.PK_PROJECT + " = '" + cprojectid + "'"); + singleObj.put("cbprojectid", projectCode); + // 生产厂商 +// String productor = item.getCbproductorid();// 生产厂商id + String productorCode = getDefCode("Defdoc-BD006_0xx", item.getCbproductorid()); + singleObj.put("cbproductorid", productorCode); + + contentArray.add(itemObj); // 将子项添加到数组 + } + flags = "updateOrder"; } - singleObj.put("itemList", contentArray); // 将子项数组添加到主对象 jsonArray.add(singleObj); list.put("list", jsonArray); } - pushData(list); + pushData(list, flags); } /** @@ -168,7 +246,7 @@ public class AfterApproveRuleHighpressureMes implements IRule { /** * 推送同步数据 */ - private void pushData(JSONObject param) throws BusinessException { + private void pushData(JSONObject param, String flags) throws BusinessException { // 转json字符串的时候保留null值 String jsonStr = JSON.toJSONString(param, SerializerFeature.WriteMapNullValue, @@ -176,7 +254,12 @@ public class AfterApproveRuleHighpressureMes implements IRule { ); logger.error("gyMes-Pickm-param = " + jsonStr); String baseUrl = configParams.get("mesBaseUrl"); - String requestUrl = baseUrl + configParams.get("materialRequirementsAdd"); + String requestUrl = ""; + if (flags.equals("addOrder")) { + requestUrl = baseUrl + configParams.get("materialRequirementsAdd"); + } else if (flags.equals("updateOrder")) {//调用修改口 + requestUrl = baseUrl + configParams.get("materialRequirementsUpdate"); + } logger.error("gyMes-Pickm-url = " + requestUrl); String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr); JSONObject resultObj = JSONObject.parseObject(result); From 200e8cdb790e9e62930b1abcce43cfb34dfa8f82 Mon Sep 17 00:00:00 2001 From: houyi <1398559711@qq.com> Date: Tue, 30 Sep 2025 17:13:21 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=81=9C=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E5=A4=87=E6=96=99=E5=AE=A1=E6=89=B9=E5=90=8E=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E9=AB=98=E5=8E=8BMES=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...AfterApproveRuleHighpressureUpdateMes.java | 204 ------------------ 1 file changed, 204 deletions(-) delete mode 100644 mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/AfterApproveRuleHighpressureUpdateMes.java diff --git a/mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/AfterApproveRuleHighpressureUpdateMes.java b/mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/AfterApproveRuleHighpressureUpdateMes.java deleted file mode 100644 index f4a1a96b..00000000 --- a/mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/AfterApproveRuleHighpressureUpdateMes.java +++ /dev/null @@ -1,204 +0,0 @@ -package nc.bs.mmpac.pickm.bp.rule; - - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.serializer.SerializerFeature; -import nc.bs.dao.BaseDAO; -import nc.bs.dao.DAOException; -import nc.bs.logging.Log; -import nc.bs.trade.business.HYPubBO; -import nc.bs.trade.business.HYSuperDMO; -import nc.bs.uapbd.util.MyHelper; -import nc.bs.uapbd.util.ThirdPartyPostRequestUtil; -import nc.impl.pubapp.pattern.rule.IRule; -import nc.jdbc.framework.processor.ColumnProcessor; -import nc.jdbc.framework.processor.MapProcessor; -import nc.vo.bd.defdoc.DefdocVO; -import nc.vo.mmpac.pickm.entity.AggPickmVO; -import nc.vo.mmpac.pickm.entity.PickmHeadVO; -import nc.vo.mmpac.pickm.entity.PickmItemVO; -import nc.vo.org.OrgVO; -import nc.vo.pmpub.project.ProjectHeadVO; -import nc.vo.pub.BusinessException; -import nc.vo.pubapp.pattern.exception.ExceptionUtils; -import nc.vo.scmpub.util.ArrayUtil; - -import java.util.Map; - -/** - * 备料审批后推送高压MES 修改 - * - * @author houyi - * @date 2025/9/28 - */ -public class AfterApproveRuleHighpressureUpdateMes implements IRule { - - 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(AggPickmVO[] aggPickmVOS) { - if (ArrayUtil.isEmpty(aggPickmVOS)) { - return; - } - configParams = MyHelper.getConfigParams("gy-config", null); - try { - buildSyncData(aggPickmVOS); - } catch (Exception e) { - logger.error("同步备料计划到高压MES系统失败: " + e.getMessage(), e); - ExceptionUtils.wrappException(e); - } - } - - /** - * 构建同步数据 - */ - private void buildSyncData(AggPickmVO[] useVOs) throws BusinessException { - BaseDAO baseDAO = new BaseDAO(); - - HYPubBO hybo = new HYPubBO(); - JSONObject list = new JSONObject(); - JSONArray jsonArray = new JSONArray(); - for (AggPickmVO vo : useVOs) { - PickmHeadVO pickmHeadVO = vo.getParentVO(); - PickmItemVO[] itemVOS = (PickmItemVO[]) vo.getChildrenVO(); - // 判断物料的业务单元是否是高压公司,不是则跳过 - String pkOrg = pickmHeadVO.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("materialPreparationPlanNumber", pickmHeadVO.getVbillcode());// 备料计划单号 -// singleObj.put("bipId", pickmHeadVO.getCpickmid());// 主键ID - // 生产部门 - String deptsql = " select name from org_dept where pk_dept='" + pickmHeadVO.getCdeptid() + "' and dr=0 "; - Map dept = (Map) baseDAO.executeQuery(deptsql, new MapProcessor()); - singleObj.put("bipDeptName", dept.get("name")); // 生产部门 - singleObj.put("bipDeptId", pickmHeadVO.getCdeptid()); // 生产部门Id - - singleObj.put("bipProcessProductionOrderId", pickmHeadVO.getVsourcemocode()); // 流程生产订单号 - singleObj.put("bipProcessProductionOrderRowNum", pickmHeadVO.getVsourcemorowcode()); // 来源单据号行号 - singleObj.put("bipParentProcessProductionOrderId", pickmHeadVO.getVfirstbillcode()); // 上级来源单据号 - singleObj.put("bipParentProcessProductionOrderRowNum", pickmHeadVO.getVfirstbillrowno()); // 上级来源单据行号 - singleObj.put("bipOriginProcessProductionOrderId", pickmHeadVO.getVsalebillcode()); // 顶级来源单据号 - singleObj.put("bipOriginProcessProductionOrderRowNum", pickmHeadVO.getVfirstbillrowno()); // 顶级来源单据行号 - singleObj.put("orderQuantity", pickmHeadVO.getNastnum() != null ? pickmHeadVO.getNastnum().doubleValue() : null); // 订单数量(计划数量) - singleObj.put("bomVersion", pickmHeadVO.getVbomversionnumber()); // bom版本 - // 物料信息 - String cpsql = "select code,name,graphid,pk_measdoc,materialspec from bd_material where pk_material = '" + pickmHeadVO.getCmaterialvid() + "' "; - Map mrl = (Map) baseDAO.executeQuery(cpsql, new MapProcessor()); - singleObj.put("productCode", mrl.get("code")); // 产品编码 - singleObj.put("productName", mrl.get("name")); // 产品名称 - -// singleObj.put("intervalModel", mrl.get("materialspec")); // (物料的自定义字段) - singleObj.put("processCode", "(物料的自定义字段)"); // 产品编码的工序(物料的自定义字段) - singleObj.put("requiredDate", pickmHeadVO.getDmakedate().toString()); // 需用日期 - String sql1 = " select user_name from sm_user where cuserid = '" + pickmHeadVO.getModifier() + "' "; - String bipCreateBy = (String) baseDAO.executeQuery(sql1, new ColumnProcessor()); - - singleObj.put("bipUpdateBy", bipCreateBy); // 创建人ID - - // 创建子项数组 - JSONArray contentArray = new JSONArray(); - for (PickmItemVO item : itemVOS) { - JSONObject itemObj = new JSONObject(); - -// itemObj.put("bipChildId", item.getCpickm_bid()); // 子项主键ID - itemObj.put("quantityPerSet", item.getNunituseastnum() != null ? item.getNunituseastnum().doubleValue() : null); // 单套数量(单位用量) - itemObj.put("reservedQuantity", item.getNatpastnum() != null ? item.getNatpastnum().doubleValue() : null); // 预留数量 - itemObj.put("cumulativePendingQuantity", item.getNshouldastnum() != null ? item.getNshouldastnum().doubleValue() : null); // 累计待发数量 - itemObj.put("cumulativeIssuedQuantity", item.getNaccoutastnum() != null ? item.getNaccoutastnum().doubleValue() : null); // 累计出库数量 - itemObj.put("totalQuantity", item.getNplanoutnum() != null ? item.getNplanoutnum().doubleValue() : null); // 总数量(计划出库主数量) - - // 物料信息 - String mrlsql = "select code,name,graphid,pk_measdoc,materialspec from bd_material where pk_material = '" + item.getCbmaterialid() + "' "; - Map material = (Map) baseDAO.executeQuery(mrlsql, new MapProcessor()); - itemObj.put("materialCode", material.get("code")); // 物料编码 - itemObj.put("materialName", material.get("name")); // 物料名称 - itemObj.put("drawingNumber", material.get("graphid")); // 图号 - Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" + material.get("pk_measdoc") + "' "); - itemObj.put("unit", unit); // 规格单位 - // 生产信息 -// itemObj.put("intervalModel", material.get("materialspec")); // 产品类型 - itemObj.put("lineNumber", String.valueOf(item.getVrowno())); // 行号 - // 项目编码 - String cprojectid = pickmHeadVO.getCprojectid();// 项目id - String projectCode = MyHelper.getStrValByCondition(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_CODE, - ProjectHeadVO.PK_PROJECT + " = '" + cprojectid + "'"); - singleObj.put("cbprojectid", projectCode); - // 生产厂商 -// String productor = item.getCbproductorid();// 生产厂商id - String productorCode = getDefCode("Defdoc-BD006_0xx", item.getCbproductorid()); - singleObj.put("cbproductorid", productorCode); - - contentArray.add(itemObj); // 将子项添加到数组 - } - - singleObj.put("itemList", contentArray); // 将子项数组添加到主对象 - jsonArray.add(singleObj); - list.put("list", jsonArray); - } - pushData(list); - } - - /** - * 获取自定义项信息 - */ - private String getDefCode(String code, String pk_defdoc) { - String res = ""; - String strWhere = " pk_defdoclist in (select pk_defdoclist from bd_defdoclist where code='" + code + "' and dr=0 ) and dr = 0 and pk_defdoc = '" + pk_defdoc + "'"; - try { - DefdocVO[] defdocVOs = (DefdocVO[]) new HYSuperDMO().queryByWhereClause(DefdocVO.class, strWhere); - if (defdocVOs != null && defdocVOs.length > 0) { - res = defdocVOs[0].getCode().trim(); - } - } catch (DAOException e) { - logger.error("gyMes-SaleOrder-error,getDefCode[" + e.getMessage() + "]"); - } - return res; - - } - - /** - * 推送同步数据 - */ - private void pushData(JSONObject param) throws BusinessException { - // 转json字符串的时候保留null值 - String jsonStr = JSON.toJSONString(param, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteNullStringAsEmpty - ); - logger.error("gyMes-Pickm-param = " + jsonStr); - String baseUrl = configParams.get("mesBaseUrl"); - String requestUrl = baseUrl + configParams.get("materialRequirementsAdd"); - logger.error("gyMes-Pickm-url = " + requestUrl); - String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr); - JSONObject resultObj = JSONObject.parseObject(result); - logger.error("gyMes-Pickm-res = " + result); - - if (!"200".equals(resultObj.getString("code"))) { - logger.error("gyMes-Pickm-error,result[" + resultObj.toJSONString() + "]"); - throw new BusinessException("备料计划推送高压MES错误:" + resultObj.getString("msg")); - } - } - - private boolean checkIfOrg(String code, Map configParams) throws BusinessException { - String targetCode = configParams.get("gyOrg"); - 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; - } - - -}