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 7e251ce..e8b52b5 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 @@ -5,11 +5,16 @@ 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; 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; @@ -55,6 +60,7 @@ public class AfterApproveSyncEpicMesRule implements IRule { } obmlog.info("开始同步生产订单到艾普MES系统,符合条件的订单数量: " + filteredOrders.size()); + JSONArray jsonArray = new JSONArray(); // 推送到艾普MES系统 for (PMOAggVO aggVO : filteredOrders) { PMOHeadVO head = aggVO.getParentVO(); @@ -66,7 +72,14 @@ public class AfterApproveSyncEpicMesRule implements IRule { } JSONObject data = buildSyncData(aggVO); pushData(data); + + JSONObject buildSyncData= buildSyncData1(aggVO); + jsonArray.add(buildSyncData); } + if(jsonArray.size() > 0) { + pushData("/prj-v5-web/ext/api/releaseNo",jsonArray); + } + obmlog.info("生产订单同步到艾普MES系统处理完成。"); @@ -245,4 +258,51 @@ public class AfterApproveSyncEpicMesRule implements IRule { return field; } + private JSONObject buildSyncData1(PMOAggVO vo ) throws BusinessException { +// [ +// { +// "siteCode": "", // 工厂编码 +// "workOrderCode": "", // 工单号 +// "companyCode": "DLDZ", //公司编码 +// "companyName": "泰开电力电子",//公司名称 +// "releaseNo": [] // 出厂编号 +// } +//] + + JSONObject obj = new JSONObject(); + obj.put("siteCode", vo.getParentVO().getVbillcode()); // 已存在的billCode字段 + obj.put("workOrderCode", null); + + BaseDAO dao = new BaseDAO(); + String orgsql = "select code,name from org_factory where pk_factory = '" + vo.getParentVO().getPk_org() + "' "; + Map tr = (Map) 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()){ + 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); + jsonArray.add(detailItem); + } + obj.put("releaseNo", jsonArray); + + return obj; + } + private void pushData(String requestUrl, JSONArray param) throws BusinessException { + String baseUrl = SysParaInitQuery.getParaString("GLOBLE00000000000000", "EPICMESURL"); + 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); + + if ("false".equals(resultObj.getString("success"))) { + throw new BusinessException("EpicMes-Material-failerror:" + resultObj.getString("msg")); + } else { + Logger.error("EpicMes-Material-suc,result[" + resultObj.toJSONString() + "]"); + } + } + }