流程生产订单点击备料计划重算推送高压MES 优化

This commit is contained in:
houyi 2025-10-17 11:39:51 +08:00
parent 2e1795ce48
commit 9d71f6ab34
1 changed files with 4 additions and 26 deletions

View File

@ -47,14 +47,6 @@ public class AfterPickmRuleHighpressureRule implements IRule<PMOAggVO> {
// 配置参数同步目标组织等
private Map<String, String> configParams;
// -------------------------- 线程安全的日期格式化工具解决SimpleDateFormat线程安全问题 --------------------------
private static final ThreadLocal<SimpleDateFormat> DATETIME_FORMATTER = ThreadLocal.withInitial(
() -> new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
);
private static final ThreadLocal<SimpleDateFormat> DATE_FORMATTER = ThreadLocal.withInitial(
() -> new SimpleDateFormat("yyyy-MM-dd")
);
@Override
public void process(PMOAggVO[] pmoAggVOS) {
@ -73,7 +65,6 @@ public class AfterPickmRuleHighpressureRule implements IRule<PMOAggVO> {
IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance()
.lookup(IMDPersistenceQueryService.class);
// 根据主键查询得到aggvo
@SuppressWarnings("unchecked")
ArrayList<AggPickmVO> aggVOs = null;
try {
aggVOs = (ArrayList<AggPickmVO>) aggvoQueryService
@ -98,31 +89,18 @@ public class AfterPickmRuleHighpressureRule implements IRule<PMOAggVO> {
ExceptionUtils.wrappException(new BusinessException("加载配置参数异常:" + e.getMessage(), e));
return;
}
// 4. 构建同步数据并执行同步统一异常捕获
try {
List<Map<String, Object>> mainDataList = new ArrayList<>(); // 主表数据
List<Map<String, Object>> detailDataList = new ArrayList<>(); // 子表数据
buildSyncData(aggPickmVOS, mainDataList, detailDataList);
// 5. 若有数据则执行同步取第一个主表的cpickmid作为关键标识若主表为空则不同步
// String targetCpickmid = mainDataList.isEmpty() ? null : (String) mainDataList.get(0).get("cpickmid");
// pushIms(mainDataList, detailDataList, targetCpickmid);
}
// catch (BusinessException e) {
// // 业务异常直接包装抛出NC框架会处理
// logger.error("备料计划同步IMS业务异常关键备料单号" + getCpickmidFromAgg(aggPickmVOS) + "");
// ExceptionUtils.wrappException(e);
// }
catch (Exception e) {
buildSyncData(aggPickmVOS);
} catch (Exception e) {
// 未知异常转为业务异常避免上游捕获到RuntimeException
logger.error("同步备料计划到高压MES系统失败: " + e.getMessage(), e);
ExceptionUtils.wrappException(e);
}
}
private void buildSyncData(AggPickmVO[] aggPickmVOS, List<Map<String, Object>> mainDataList, List<Map<String, Object>> detailDataList) throws BusinessException {
private void buildSyncData(AggPickmVO[] aggPickmVOS) throws BusinessException {
BaseDAO baseDAO = new BaseDAO();
HYPubBO hybo = new HYPubBO();