From 2e3b7b63294fe2fc2bc4fc5447a17cc9fbed9427 Mon Sep 17 00:00:00 2001 From: mzr Date: Sat, 12 Jul 2025 08:26:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E5=8A=9BMES-=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=92=8C=E6=B5=81=E7=A8=8B=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=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 --- .../bp/rule/AfterApproveSyncEpicMesRule.java | 20 +++++++------- .../listener/MaterialToEpicMesListener.java | 27 +++++++++++++++++++ 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncEpicMesRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncEpicMesRule.java index 246eadf..f3cd8e6 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncEpicMesRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncEpicMesRule.java @@ -119,15 +119,17 @@ public class AfterApproveSyncEpicMesRule implements IRule { String pkOrg = aggVo.getParentVO().getPk_org(); String orgCode = MyHelper.transferField(FactoryVO.getDefaultTableName(), FactoryVO.CODE, FactoryVO.PK_FACTORY, pkOrg); // 检查当前组织是否为电力电子 - if (MyHelper.checkIfDldzOrg(orgCode)) { - // 按照部门筛选生产订单,只传消弧车间、电容车间、成套车间(部门是配置项) - PMOItemVO[] childrenVO = aggVo.getChildrenVO(); - for (PMOItemVO item : childrenVO) { - String cdeptid = item.getCdeptid(); - String deptCode = MyHelper.transferField(DeptVO.getDefaultTableName(), DeptVO.CODE, DeptVO.PK_DEPT, cdeptid); - } - aggvoList.add(aggVo); + if (!MyHelper.checkIfDldzOrg(orgCode)) { + continue; } + // 按照部门筛选生产订单,只传消弧车间、电容车间、成套车间(部门是配置项) + PMOItemVO[] childrenVO = aggVo.getChildrenVO(); + for (PMOItemVO item : childrenVO) { + String cdeptid = item.getCdeptid(); + String deptCode = MyHelper.transferField(DeptVO.getDefaultTableName(), DeptVO.CODE, DeptVO.PK_DEPT, cdeptid); + // 如果部门不在范围内则跳过本次循环 + } + aggvoList.add(aggVo); } return aggvoList; @@ -179,7 +181,7 @@ public class AfterApproveSyncEpicMesRule implements IRule { NCCForUAPLogger.debug("计划开始时间:" + pmoItem.getTplanstarttime().getMillis()); NCCForUAPLogger.debug("计划完成时间:" + pmoItem.getTplanendtime().getMillis()); orderParam.put("planBeginDate", pmoItem.getTplanstarttime().getMillis()); // 计划开始时间(毫秒级时间戳) - orderParam.put("planEndDate", pmoItem.getTplanendtime()); // 计划完成时间(毫秒级时间戳) + orderParam.put("planEndDate", pmoItem.getTplanendtime().getMillis()); // 计划完成时间(毫秒级时间戳) // orderParam.put("endDate", null); // 试验结束时间(毫秒级时间戳) orderParam.put("type", "I"); // 类型:I:新增 U:修改 D:删除 orderParam.put("auditCode", "Y"); // 审核状态(Y:已审核 N:未审核) diff --git a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToEpicMesListener.java b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToEpicMesListener.java index 7fccd1d..e4e9a0c 100644 --- a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToEpicMesListener.java +++ b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToEpicMesListener.java @@ -15,6 +15,8 @@ import nc.vo.bd.material.measdoc.MeasdocVO; import nc.vo.org.FactoryVO; import nc.vo.pub.BusinessException; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.HashMap; import java.util.Map; @@ -107,4 +109,29 @@ public class MaterialToEpicMesListener implements IBusinessListener { return map.getOrDefault(eventType, "I"); } + /** + * 转换特殊字段 如 1/1 转换为小数 1.0 + */ + private String transferSpecialField(String field) { + if (field == null || field.trim().isEmpty()) { + return null; + } + String[] split = field.split("/"); + if (split.length == 2) { + String numStr = split[0].trim(); + String denStr = split[1].trim(); + if (denStr.equals("0")) { + return "0.00"; // 分母不能为零 + } + try { + BigDecimal numerator = new BigDecimal(numStr); + BigDecimal denominator = new BigDecimal(denStr); + return numerator.divide(denominator, 2, RoundingMode.HALF_UP).toString(); + } catch (NumberFormatException e) { + return field; // 非法数字,返回原字段 + } + } + return field; + } + }