From 5d22fa9cef05801bb4be9654cb3133b795f34f89 Mon Sep 17 00:00:00 2001 From: mzr Date: Wed, 3 Dec 2025 15:28:18 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../openapi/mmpac/pmo/PmoResource.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/mmpac/src/public/nccloud/openapi/mmpac/pmo/PmoResource.java b/mmpac/src/public/nccloud/openapi/mmpac/pmo/PmoResource.java index 7548a2a4..317b7891 100644 --- a/mmpac/src/public/nccloud/openapi/mmpac/pmo/PmoResource.java +++ b/mmpac/src/public/nccloud/openapi/mmpac/pmo/PmoResource.java @@ -8,8 +8,10 @@ import nc.bs.trade.business.HYPubBO; import nc.itf.mmpac.pmo.pac0002.IPMOBusinessService; import nc.itf.mmpac.pmo.pac0002.IPMOQueryService; import nc.jdbc.framework.SQLParameter; +import nc.jdbc.framework.processor.ColumnProcessor; import nc.jdbc.framework.processor.MapListProcessor; import nc.util.mmf.framework.base.MMCollectionUtil; +import nc.util.mmf.framework.base.MMValueCheck; import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; import nc.vo.pub.BusinessException; @@ -350,6 +352,84 @@ public class PmoResource extends AbstractNCCRestResource { } } + @POST + @Path("queryByCondition") + @Consumes({"application/json"}) + @Produces({"application/json"}) + public JSONString queryByCondition(Map paramMap) { + if (MMValueCheck.isEmpty(paramMap)) { + return ResultMessageUtil.exceptionToJSON("传入数据异常,参数不能为空", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); + } + if (MMValueCheck.isEmpty(paramMap.get("pk_org"))) { + return ResultMessageUtil.exceptionToJSON("传入数据异常,组织参数为空", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); + } + try { + StringBuilder whereSql = new StringBuilder(); + + // 处理时间范围参数 ts + if (paramMap.containsKey("ts") && paramMap.get("ts") != null) { + String tsRange = paramMap.get("ts").toString(); + if (tsRange.contains("~")) { + String[] dates = tsRange.split("~"); + if (dates.length == 2) { + whereSql.append(" AND ts BETWEEN '") + .append(dates[0].trim()) + .append("' AND '") + .append(dates[1].trim()) + .append("' "); + } + } + } + // 处理修改时间范围参数 modifiedtime + if (paramMap.containsKey("modifiedtime") && paramMap.get("modifiedtime") != null) { + String tsRange = paramMap.get("modifiedtime").toString(); + if (tsRange.contains("~")) { + String[] dates = tsRange.split("~"); + if (dates.length == 2) { + whereSql.append(" AND modifiedtime BETWEEN '") + .append(dates[0].trim()) + .append("' AND '") + .append(dates[1].trim()) + .append("' "); + } + } + } + + // 处理组织参数 pk_org + if (paramMap.containsKey("pk_org") && paramMap.get("pk_org") != null) { + String sql = " SELECT pk_factory FROM org_factory " + + " WHERE nvl(dr,0)= 0 and code = '" + paramMap.get("pk_org") + "' "; + String pkOrg = (String) BASE_DAO.executeQuery(sql, new ColumnProcessor()); + whereSql.append(" AND pk_org = '") + .append(pkOrg) + .append("' "); + } + + if (paramMap.containsKey("vbillcode") && paramMap.get("vbillcode") != null) { + whereSql.append(" AND vbillcode = '") + .append(paramMap.get("vbillcode").toString()) + .append("' "); + } + if (paramMap.containsKey("fbillstatus") && paramMap.get("fbillstatus") != null) { + whereSql.append(" AND fbillstatus = '") + .append(paramMap.get("fbillstatus").toString()) + .append("' "); + } + + String finalWhereSql = ""; + if (!whereSql.isEmpty()) { + // 去掉开头的 " AND " + finalWhereSql = whereSql.substring(5); + } + // NCCForUAPLogger.debug("查询流程生产订单参数:" + finalWhereSql); + IPMOQueryService pmoQuery = NCLocator.getInstance().lookup(IPMOQueryService.class); + PMOAggVO[] pmoAggVOS = pmoQuery.queryByWhereSql(finalWhereSql); + return ResultMessageUtil.toJSON(pmoAggVOS, "流程生产订单查询成功"); + } catch (BusinessException e) { + return ResultMessageUtil.exceptionToJSON(e); + } + } + @POST @Path("queryPmos") @Consumes({"application/json"}) From cfc94d9cdb380d296ec78534bca4b6c05b4afee9 Mon Sep 17 00:00:00 2001 From: mzr <1562242162@qq.com> Date: Wed, 3 Dec 2025 21:47:05 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2API=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nccloud/openapi/mmpac/pmo/PmoResource.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mmpac/src/public/nccloud/openapi/mmpac/pmo/PmoResource.java b/mmpac/src/public/nccloud/openapi/mmpac/pmo/PmoResource.java index 317b7891..b52cc906 100644 --- a/mmpac/src/public/nccloud/openapi/mmpac/pmo/PmoResource.java +++ b/mmpac/src/public/nccloud/openapi/mmpac/pmo/PmoResource.java @@ -13,6 +13,7 @@ import nc.jdbc.framework.processor.MapListProcessor; import nc.util.mmf.framework.base.MMCollectionUtil; import nc.util.mmf.framework.base.MMValueCheck; 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.pub.BusinessException; import nc.ws.opm.pub.utils.result.APIErrCodeEnum; @@ -418,12 +419,21 @@ public class PmoResource extends AbstractNCCRestResource { String finalWhereSql = ""; if (!whereSql.isEmpty()) { - // 去掉开头的 " AND " - finalWhereSql = whereSql.substring(5); + // finalWhereSql = whereSql.substring(5); + finalWhereSql = " dr = 0 " + whereSql; } // NCCForUAPLogger.debug("查询流程生产订单参数:" + finalWhereSql); IPMOQueryService pmoQuery = NCLocator.getInstance().lookup(IPMOQueryService.class); PMOAggVO[] pmoAggVOS = pmoQuery.queryByWhereSql(finalWhereSql); + if (pmoAggVOS != null) { + for (PMOAggVO pmoAggVO : pmoAggVOS) { + if (pmoAggVO.getChildrenVO() == null || pmoAggVO.getChildrenVO().length == 0) { + PMOHeadVO headVO = pmoAggVO.getParentVO(); + PMOItemVO[] itemVOS = pmoQuery.getPMOItemVOsByids(new String[]{headVO.getPrimaryKey()}, null); + pmoAggVO.setChildrenVO(itemVOS); + } + } + } return ResultMessageUtil.toJSON(pmoAggVOS, "流程生产订单查询成功"); } catch (BusinessException e) { return ResultMessageUtil.exceptionToJSON(e); From 74664c8dd2d75084244160ae16526fab9795937a Mon Sep 17 00:00:00 2001 From: mzr Date: Thu, 4 Dec 2025 15:33:42 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E7=94=B5=E5=8A=9B=E7=94=B5=E5=AD=90-?= =?UTF-8?q?=E8=89=BE=E6=99=AEMES-=E6=89=8B=E5=8A=A8=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=8C=89=E9=92=AE-=E8=B0=83=E6=95=B4=E5=87=BA=E5=8E=82?= =?UTF-8?q?=E7=BC=96=E5=8F=B7=E4=B9=9F=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/nccloud/web/mmpac/pmo/action/PmoToEpicMesAction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmpac/src/client/nccloud/web/mmpac/pmo/action/PmoToEpicMesAction.java b/mmpac/src/client/nccloud/web/mmpac/pmo/action/PmoToEpicMesAction.java index bb3c3a2b..dd17fa49 100644 --- a/mmpac/src/client/nccloud/web/mmpac/pmo/action/PmoToEpicMesAction.java +++ b/mmpac/src/client/nccloud/web/mmpac/pmo/action/PmoToEpicMesAction.java @@ -40,7 +40,7 @@ public class PmoToEpicMesAction implements ICommonAction { ExceptionUtils.wrapBusinessException("查询不到对应流程生产订单"); } HttpPmoEpicMesUtil mesUtil = new HttpPmoEpicMesUtil(); - mesUtil.processData(pmoAggVOS, "Y", false); + mesUtil.processData(pmoAggVOS, "Y", true); return ResultMessageUtil.toJSON(true, "推送成功"); } catch (Exception e) { logDl.error("同步生产订单到艾普MES系统失败: " + e.getMessage(), e); From b9a8c6b873c4fb03555e998e9ca34f68a2deee37 Mon Sep 17 00:00:00 2001 From: mzr Date: Fri, 5 Dec 2025 10:51:12 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=94=B5=E5=8A=9B=E7=94=B5=E5=AD=90-?= =?UTF-8?q?=E8=89=BE=E6=99=AEMES-BOM=E6=8E=A8=E9=80=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bd/bom/bom0202/rule/BomSaveAfterEpicMesRule.java | 11 ++++------- .../nc/bs/uapbd/task/mes/epic/BomToEpicMesPlugin.java | 11 ++++------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/uapbd/src/private/nc/bs/bd/bom/bom0202/rule/BomSaveAfterEpicMesRule.java b/uapbd/src/private/nc/bs/bd/bom/bom0202/rule/BomSaveAfterEpicMesRule.java index 60c5b619..d38b32a8 100644 --- a/uapbd/src/private/nc/bs/bd/bom/bom0202/rule/BomSaveAfterEpicMesRule.java +++ b/uapbd/src/private/nc/bs/bd/bom/bom0202/rule/BomSaveAfterEpicMesRule.java @@ -48,10 +48,7 @@ public class BomSaveAfterEpicMesRule implements IRule { if (!MMValueCheck.isEmpty(vos)) { try { configParams = MyHelper.getConfigParams("Dldz-config", null); - JSONArray data = buildSyncData(vos); - if (!data.isEmpty()) { - pushData(data, vos); - } + buildSyncData(vos); } catch (BusinessException e) { String message = e.getMessage(); logDl.error("EpicMes-BOM-exp:" + message, e); @@ -70,8 +67,7 @@ public class BomSaveAfterEpicMesRule implements IRule { /** * 构建同步数据 */ - private JSONArray buildSyncData(AggBomVO[] useVOs) throws BusinessException { - JSONArray data = new JSONArray(); + private void buildSyncData(AggBomVO[] useVOs) throws BusinessException { for (AggBomVO vo : useVOs) { // 判断物料的业务单元是否是电力电子公司,不是则跳过 BomVO hvo = (BomVO) vo.getParentVO(); @@ -99,6 +95,7 @@ public class BomSaveAfterEpicMesRule implements IRule { String mitm = MyHelper.getStrValByCondition(MaterialVO.getDefaultTableName(), MaterialVO.CODE, MaterialVO.PK_MATERIAL + " = '" + hcmaterialid + "'"); + JSONArray data = new JSONArray(); for (BomItemVO childrenVO : childrenVOs) { String cmaterialid = childrenVO.getCmaterialid(); String sitm = MyHelper.getStrValByCondition(MaterialVO.getDefaultTableName(), MaterialVO.CODE, @@ -113,6 +110,7 @@ public class BomSaveAfterEpicMesRule implements IRule { singleObj.put("remark", childrenVO.getVnote()); // 备注 data.add(singleObj); } + pushData(data, new AggBomVO[]{vo}); /** * [ * { @@ -127,7 +125,6 @@ public class BomSaveAfterEpicMesRule implements IRule { */ } - return data; } /** diff --git a/uapbd/src/private/nc/bs/uapbd/task/mes/epic/BomToEpicMesPlugin.java b/uapbd/src/private/nc/bs/uapbd/task/mes/epic/BomToEpicMesPlugin.java index 2ac8bed7..4077a625 100644 --- a/uapbd/src/private/nc/bs/uapbd/task/mes/epic/BomToEpicMesPlugin.java +++ b/uapbd/src/private/nc/bs/uapbd/task/mes/epic/BomToEpicMesPlugin.java @@ -61,10 +61,7 @@ public class BomToEpicMesPlugin implements IBackgroundWorkPlugin { for (Map map : pkList) { String cbomid = map.get("cbomid"); AggBomVO[] vos = qry.queryAggBomByBomID(new String[]{cbomid}); - JSONArray data = buildSyncData(vos); - if (!data.isEmpty()) { - pushData(data, vos); - } + buildSyncData(vos); } } catch (Exception e) { @@ -76,8 +73,7 @@ public class BomToEpicMesPlugin implements IBackgroundWorkPlugin { /** * 构建同步数据 */ - private JSONArray buildSyncData(AggBomVO[] useVOs) throws BusinessException { - JSONArray data = new JSONArray(); + private void buildSyncData(AggBomVO[] useVOs) throws BusinessException { for (AggBomVO vo : useVOs) { // 判断物料的业务单元是否是电力电子公司,不是则跳过 BomVO hvo = (BomVO) vo.getParentVO(); @@ -105,6 +101,7 @@ public class BomToEpicMesPlugin implements IBackgroundWorkPlugin { String mitm = MyHelper.getStrValByCondition(MaterialVO.getDefaultTableName(), MaterialVO.CODE, MaterialVO.PK_MATERIAL + " = '" + hcmaterialid + "'"); + JSONArray data = new JSONArray(); for (BomItemVO childrenVO : childrenVOs) { String cmaterialid = childrenVO.getCmaterialid(); String sitm = MyHelper.getStrValByCondition(MaterialVO.getDefaultTableName(), MaterialVO.CODE, @@ -119,6 +116,7 @@ public class BomToEpicMesPlugin implements IBackgroundWorkPlugin { singleObj.put("remark", childrenVO.getVnote()); // 备注 data.add(singleObj); } + pushData(data, new AggBomVO[]{vo}); /** * [ * { @@ -133,7 +131,6 @@ public class BomToEpicMesPlugin implements IBackgroundWorkPlugin { */ } - return data; } /**