流程生产订单审批后推送艾普MES-代码调整

This commit is contained in:
mzr 2025-07-07 16:12:23 +08:00
parent 47b13fbfbf
commit f516e44a62
2 changed files with 21 additions and 21 deletions

View File

@ -1,7 +1,7 @@
package nc.bs.mmpac.pmo.pac0002.bp;
import nc.bs.mmpac.pmo.pac0002.bp.rule.AfterApproveRuleSyncMes;
import nc.bs.mmpac.pmo.pac0002.bp.rule.AfterApproveSyncEpicMesRule;
import nc.bs.mmpac.pmo.pac0002.bp.rule.AfterApprovingSynchronizeRuleRZ;
import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint;
import nc.bs.mmpac.pmo.pac0002.rule.*;
@ -55,6 +55,8 @@ public class PMOApproveBP {
processer.addAfterRule(new AfterApprovingSynchronizeRuleRZ(true));
// 审批后推送流程生产订单到MES
// processer.addAfterRule(new AfterApproveRuleSyncMes());
// 审批后推送流程生产订单到艾普MES
processer.addAfterRule(new AfterApproveSyncEpicMesRule());
}

View File

@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import nc.bs.dao.BaseDAO;
import nc.bs.logging.Log;
import nc.bs.logging.Logger;
import nc.bs.trade.business.HYPubBO;
import nc.bs.uapbd.util.MyHelper;
import nc.bs.uapbd.util.ThirdPartyPostRequestUtil;
@ -13,8 +12,6 @@ import nc.impl.pubapp.pattern.rule.IRule;
import nc.itf.arap.goldentax.SysParaInitQuery;
import nc.jdbc.framework.processor.MapListProcessor;
import nc.jdbc.framework.processor.MapProcessor;
import nc.vo.ic.m4d.entity.MaterialOutBodyVO;
import nc.vo.ic.m4d.entity.MaterialOutVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO;
@ -73,11 +70,11 @@ public class AfterApproveSyncEpicMesRule implements IRule<PMOAggVO> {
JSONObject data = buildSyncData(aggVO);
pushData(data);
JSONObject buildSyncData= buildSyncData1(aggVO);
JSONObject buildSyncData = buildSyncData1(aggVO);
jsonArray.add(buildSyncData);
}
if(jsonArray.size() > 0) {
pushData("/prj-v5-web/ext/api/releaseNo",jsonArray);
if (jsonArray.size() > 0) {
pushNoData("/prj-v5-web/ext/api/releaseNo", jsonArray);
}
obmlog.info("生产订单同步到艾普MES系统处理完成。");
@ -103,7 +100,7 @@ public class AfterApproveSyncEpicMesRule implements IRule<PMOAggVO> {
responseString = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, param.toJSONString());
obmlog.info(" 艾普MES系统原始返回: " + responseString);
JSONObject jsonResponse = JSONObject.parseObject(responseString);
// JSONObject jsonResponse = JSONObject.parseObject(responseString);
} catch (Exception e) {
obmlog.error(" 调用MES或处理响应时发生错误。原始响应: " + responseString + " 错误: " + e.getMessage(), e);
throw new BusinessException("调用MES或处理响应时发生错误" + e.getMessage(), e);
@ -129,7 +126,7 @@ public class AfterApproveSyncEpicMesRule implements IRule<PMOAggVO> {
}
/**
* ×é×°Êý¾Ý
* 组装数据-流程生产订单+备料计划
*/
private JSONObject buildSyncData(PMOAggVO aggVO) throws BusinessException {
JSONObject data = new JSONObject();
@ -258,7 +255,7 @@ public class AfterApproveSyncEpicMesRule implements IRule<PMOAggVO> {
return field;
}
private JSONObject buildSyncData1(PMOAggVO vo ) throws BusinessException {
private JSONObject buildSyncData1(PMOAggVO vo) throws BusinessException {
// [
// {
// "siteCode": "", // 工厂编码
@ -270,38 +267,39 @@ public class AfterApproveSyncEpicMesRule implements IRule<PMOAggVO> {
//]
JSONObject obj = new JSONObject();
obj.put("siteCode", vo.getParentVO().getVbillcode()); // ÒÑ´æÔÚµÄbillCode×ÖÎ
obj.put("workOrderCode", null);
obj.put("siteCode", null); // 已存在的billCode字段
obj.put("workOrderCode", vo.getParentVO().getVbillcode());
BaseDAO dao = new BaseDAO();
String orgsql = "select code,name from org_factory where pk_factory = '" + vo.getParentVO().getPk_org() + "' ";
Map<String,Object> tr = (Map<String, Object>) dao.executeQuery( orgsql, new MapProcessor());
Map<String, Object> tr = (Map<String, Object>) dao.executeQuery(orgsql, new MapProcessor());
obj.put("companyCode", tr.get("code"));
obj.put("companyName", tr.get("name"));
JSONArray jsonArray = new JSONArray();
for (PMOItemVO item: vo.getChildrenVO()){
for (PMOItemVO item : vo.getChildrenVO()) {
HYPubBO hybo = new HYPubBO();
Object materialtype = hybo.findColValue("bd_material_v", "materialtype", "pk_source = '" + item.getCmaterialid() + "' ");
String detailItem = materialtype+vo.getParentVO().getDbilldate().toStdString().substring(0,3)+vo.getParentVO().getDbilldate().toStdString().substring(5,6)+"0001";
String detailItem = materialtype + vo.getParentVO().getDbilldate().toStdString().substring(0, 3) + vo.getParentVO().getDbilldate().toStdString().substring(5, 6) + "0001";
jsonArray.add(detailItem);
}
obj.put("releaseNo", jsonArray);
return obj;
}
private void pushData(String requestUrl, JSONArray param) throws BusinessException {
private void pushNoData(String requestUrl, JSONArray param) throws BusinessException {
String baseUrl = SysParaInitQuery.getParaString("GLOBLE00000000000000", "EPICMESURL");
baseUrl="http://192.168.55.39:8080";
baseUrl = "http://192.168.55.39:8080";
requestUrl = baseUrl + requestUrl;
String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, param.toJSONString());
JSONObject resultObj = JSONObject.parseObject(result);
Logger.error("EpicMes-Material-req = " + result);
obmlog.error("AfterApproveSyncEpicMesRule-pushData-req = " + result);
if ("false".equals(resultObj.getString("success"))) {
throw new BusinessException("EpicMes-Material-failerror:" + resultObj.getString("msg"));
throw new BusinessException("AfterApproveSyncEpicMesRule-pushData-failerror:" + resultObj.getString("msg"));
} else {
Logger.error("EpicMes-Material-suc,result[" + resultObj.toJSONString() + "]");
obmlog.error("AfterApproveSyncEpicMesRule-pushData-suc,result[" + resultObj.toJSONString() + "]");
}
}