重构采购入库同步 MES 接口逻辑

This commit is contained in:
张明 2025-05-21 16:30:41 +08:00
parent 0bdb98af27
commit 63880a6a10
1 changed files with 7 additions and 27 deletions

View File

@ -1,6 +1,5 @@
package nc.bs.ic.m45.sign.rule; package nc.bs.ic.m45.sign.rule;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import nc.bs.dao.BaseDAO; import nc.bs.dao.BaseDAO;
import nc.bs.framework.common.NCLocator; import nc.bs.framework.common.NCLocator;
@ -50,27 +49,13 @@ public class AfterSigningSynchronizeRuleMES implements IRule<PurchaseInVO> {
// 初始化HTTP请求工具类 // 初始化HTTP请求工具类
IHttpPostOtherSys httpPostOtherSys = NCLocator.getInstance().lookup(IHttpPostOtherSys.class); IHttpPostOtherSys httpPostOtherSys = NCLocator.getInstance().lookup(IHttpPostOtherSys.class);
for (PurchaseInVO purchaseInVO : purchaseInVOs) { for (PurchaseInVO purchaseInVO : purchaseInVOs) {
// 判断是否需要同步到MES
if (!isSyncToMES(purchaseInVO)) {
continue;
}
PurchaseInHeadVO hvo = (PurchaseInHeadVO) purchaseInVO.getParentVO(); PurchaseInHeadVO hvo = (PurchaseInHeadVO) purchaseInVO.getParentVO();
PurchaseInBodyVO[] bvos = (PurchaseInBodyVO[]) purchaseInVO.getChildrenVO(); PurchaseInBodyVO[] bvos = (PurchaseInBodyVO[]) purchaseInVO.getChildrenVO();
// 构建请求参数 // 构建请求参数
JSONObject requestParam = buildSyncData(hvo, bvos); JSONObject syncData = buildSyncData(hvo, bvos);
if (syncData != null) {
if (requestParam != null) { httpPostOtherSys.sendToExternalSystem(ADD_URL, syncData);
// 获取操作类型
String operationType = (String) requestParam.get("operation_type");
// 根据操作类型选择URL
String url = "I".equals(operationType) ? ADD_URL : DELETE_URL;
obmlog.debug("采购入库同步MES-开始处理单据: " + hvo.getVbillcode());
obmlog.debug("采购入库同步MES-请求参数: " + requestParam.toJSONString());
// 调用MES接口
httpPostOtherSys.sendToExternalSystem(url, requestParam);
} }
} }
} catch (Exception e) { } catch (Exception e) {
@ -79,20 +64,15 @@ public class AfterSigningSynchronizeRuleMES implements IRule<PurchaseInVO> {
} }
} }
/**
* 判断是否需要同步到MES
*/
private boolean isSyncToMES(PurchaseInVO purchaseInVO) {
// 此处根据业务规则判断是否需要同步
return true;
}
/** /**
* 构建符合MES系统接口规范的请求数据 * 构建符合MES系统接口规范的请求数据
*/ */
private JSONObject buildSyncData(PurchaseInHeadVO hvo, PurchaseInBodyVO[] bvos) throws BusinessException { private JSONObject buildSyncData(PurchaseInHeadVO hvo, PurchaseInBodyVO[] bvos) throws BusinessException {
obmlog.debug("采购入库同步MES-开始构建数据: " + hvo.getVbillcode()); obmlog.debug("采购入库同步MES-开始构建数据: " + hvo.getVbillcode());
// if (!hvo.getPk_org().equals("0001A110000000000677")) {
// obmlog.debug("AfterSigningSynchronizeRule-跳过处理销售出库单,因为此单据组织非电缆: " + hvo.getVbillcode());
// return null;
// }
JSONObject requestData = new JSONObject(); JSONObject requestData = new JSONObject();
// 设置操作类型 // 设置操作类型
requestData.put("operation_type", "I"); // 签字为新增操作 requestData.put("operation_type", "I"); // 签字为新增操作