流程生产订单点击备料计划重算推送高压MES 优化
This commit is contained in:
parent
2e1795ce48
commit
9d71f6ab34
|
|
@ -47,14 +47,6 @@ public class AfterPickmRuleHighpressureRule implements IRule<PMOAggVO> {
|
||||||
// 配置参数(同步目标组织等)
|
// 配置参数(同步目标组织等)
|
||||||
private Map<String, String> configParams;
|
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
|
@Override
|
||||||
public void process(PMOAggVO[] pmoAggVOS) {
|
public void process(PMOAggVO[] pmoAggVOS) {
|
||||||
|
|
@ -73,7 +65,6 @@ public class AfterPickmRuleHighpressureRule implements IRule<PMOAggVO> {
|
||||||
IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance()
|
IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance()
|
||||||
.lookup(IMDPersistenceQueryService.class);
|
.lookup(IMDPersistenceQueryService.class);
|
||||||
// 根据主键查询得到aggvo
|
// 根据主键查询得到aggvo
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
ArrayList<AggPickmVO> aggVOs = null;
|
ArrayList<AggPickmVO> aggVOs = null;
|
||||||
try {
|
try {
|
||||||
aggVOs = (ArrayList<AggPickmVO>) aggvoQueryService
|
aggVOs = (ArrayList<AggPickmVO>) aggvoQueryService
|
||||||
|
|
@ -98,23 +89,10 @@ public class AfterPickmRuleHighpressureRule implements IRule<PMOAggVO> {
|
||||||
ExceptionUtils.wrappException(new BusinessException("加载配置参数异常:" + e.getMessage(), e));
|
ExceptionUtils.wrappException(new BusinessException("加载配置参数异常:" + e.getMessage(), e));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. 构建同步数据并执行同步(统一异常捕获)
|
// 4. 构建同步数据并执行同步(统一异常捕获)
|
||||||
try {
|
try {
|
||||||
List<Map<String, Object>> mainDataList = new ArrayList<>(); // 主表数据
|
buildSyncData(aggPickmVOS);
|
||||||
List<Map<String, Object>> detailDataList = new ArrayList<>(); // 子表数据
|
} catch (Exception e) {
|
||||||
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) {
|
|
||||||
// 未知异常:转为业务异常,避免上游捕获到RuntimeException
|
// 未知异常:转为业务异常,避免上游捕获到RuntimeException
|
||||||
logger.error("同步备料计划到高压MES系统失败: " + e.getMessage(), e);
|
logger.error("同步备料计划到高压MES系统失败: " + e.getMessage(), e);
|
||||||
ExceptionUtils.wrappException(e);
|
ExceptionUtils.wrappException(e);
|
||||||
|
|
@ -122,7 +100,7 @@ public class AfterPickmRuleHighpressureRule implements IRule<PMOAggVO> {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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();
|
BaseDAO baseDAO = new BaseDAO();
|
||||||
|
|
||||||
HYPubBO hybo = new HYPubBO();
|
HYPubBO hybo = new HYPubBO();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue