webService转http接口 todo

tags/yfai-pcn-ext-v1.0
gsz 12 months ago
parent f83a1d13d1
commit 082ccf97c4

@ -0,0 +1,25 @@
package cn.estsh.i3plus.ext.mes.pcn.api.busi;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author :
* @CreateDate : 2024-05-29 10:37
* @Modify:
**/
public interface IWriteOPCEquipmentService {
@ApiOperation(value = "查询工单")
ResultBean doOPCEquipment(List<Map<String, Object>> listData,String xmlString);
}

@ -0,0 +1,119 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.equiplog;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IWriteOPCEquipmentService;
import cn.estsh.i3plus.mes.pcn.util.datatable.DataColumnCollection;
import cn.estsh.i3plus.pojo.base.enumutil.WmsEnumUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.hutool.json.XML;
import com.alibaba.excel.util.StringUtils;
import cn.estsh.impp.framework.boot.util.ResultBean;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.List;
import java.util.Map;
/**
* @Description : WriteOPCEquipmentServiceImpl
* @Author :gsz
* @Date 2024/5/29 10:48
* @Modify
**/
@Slf4j
@Service("WriteOPCEquipmentServiceImpl")
public class WriteOPCEquipmentServiceImpl implements IWriteOPCEquipmentService {
@Override
public ResultBean doOPCEquipment(List<Map<String, Object>> listData,String xmlString) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
// headers.setContentType(MediaType.APPLICATION_JSON_UTF8); //application/soap+xml;charset=UTF-8
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
cn.hutool.json.JSONObject jsonObjectParam = XML.toJSONObject(xmlString);
String content = jsonObjectParam.toString();
HttpEntity<String> request = new HttpEntity<>(content, headers);
String url = String.format("http://172.28.16.50:8111/WriteOPCEquipmentService" );
ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);
if (response.getStatusCode().is2xxSuccessful()) {
String bodyJson = response.getBody();
JSONObject jsonObject = JSON.parseObject(bodyJson);
if ("0" == jsonObject.getString("code")) {
return new ResultBean(WmsEnumUtil.RC_RESPONSE_TIPS.OK.getCodeStatus(),
"OK");
} else {
throw new ImppBusiException(String.format("Error message【%s】", jsonObject.getString("message")));
}
} else {
throw new ImppBusiException(String.format("Error Code %s", response.getStatusCode().toString()));
}
}
private String convertListToXml(DataColumnCollection newTable, List<Map<String, Object>> listData, String rootNodeName, String nodeName,
String rootClassName, String nodeClassName) {
if (listData == null || listData.size() == 0) {
throw new RuntimeException("listData is null ! ");
}
StringBuilder sb = new StringBuilder();
if (rootNodeName != null && !rootNodeName.isEmpty() && rootClassName != null && !rootClassName.isEmpty()) {
sb.append(String.format("<%s class=\"%s\">\n", rootNodeName, rootClassName));
}
for (Map<String, Object> row : listData) {
// 子节点的类名可能为空,这种情况下不需要填充类名
if (StringUtils.isEmpty(nodeClassName)) {
sb.append(String.format("<%s>\n", nodeName));
} else {
sb.append(String.format("<%s class=\"%s\">\n", nodeName, nodeClassName));
}
newTable.forEach( s ->
sb.append(String.format("<%s>%s</%s>\n", s, row.get(s.getColumnName()), s))
);
sb.append(String.format("</%s>\n", nodeName));
}
if (rootNodeName != null && !rootNodeName.isEmpty()) {
sb.append(String.format("</%s>\n", rootNodeName));
}
return sb.toString();
}
// private HashMap<String,String> getData(String serviceCode, String xmlPara){
// HashMap<String,String> res = new HashMap<>();
// String endpoint = "http://124.205.248.2:8080/eSales/esales.asmx?WSDL";
// PostMethod postMethod = new PostMethod(endpoint);
// byte[] b;
// try {
// b = xmlPara.getBytes("utf-8");
// InputStream is = new ByteArrayInputStream(b,0,b.length);
// RequestEntity re = new InputStreamRequestEntity(is,b.length,"application/soap+xml; charset=utf-8");
// //把Soap请求数据添加到PostMethod中
// postMethod.setRequestEntity(re);
//
// //生成一个HttpClient对象并发出postMethod请求
// HttpClient httpClient = new HttpClient();
// int statusCode = httpClient.executeMethod(postMethod);
// if(200==statusCode){
// String getServerData = postMethod.getResponseBodyAsString();
// //System.out.println("----->"+getServerData);
// //获取返回值状态标识标识为0成功非0失败
// res.put("status", "0");
// res.put("msg", msg);
// }
// } catch (Exception e) {
// res.put("status", "1");
// res.put("msg", e.toString());
// e.printStackTrace();
// }
// return res;
// }
}

@ -1,11 +1,11 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.equiplog;
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMouldMultiCavityService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipVariableCfgRuleMatchDispatchService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipmentLogExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCfgCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipLogDispatchContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IPartService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
@ -77,7 +77,7 @@ public class MesSendInitializationCmdStepSeryice extends BaseStepService {
List<MesEquipmentVariableCfg> equipmentVariableCfgList = productionProcessContext.getEquipVariableCfgListByVct();
// equipmentVariableCfgList = productionProcessContextStepService.collectEquipmentVariableCfgList(equipmentVariableCfgList, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.INIT_INSTRUCTION_STEP.getValue());
equipmentVariableCfgList = productionProcessContextStepService.collectEquipmentVariableCfgList(equipmentVariableCfgList, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.SEND_INIT.getValue());
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
@ -93,8 +93,8 @@ public class MesSendInitializationCmdStepSeryice extends BaseStepService {
if (CollectionUtils.isEmpty(equipmentVariableList)) execExpSendMsgAndThrowEx(reqBean, resultBean,
String.format("请检查设备数据变量信息,根据设备[%s]对应的数据变量接口逻辑信息,未配置变量类型[%s]二级变量%s相关的数据变量信息!", cellEquipContext.getEquipmentCode(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getDescription(), categoryLevelTwoList.toString()));
List<MesEquipVariableCfgCollectContext> collectContextList = equipmentLogExtService.doHandleEquipmentLogList(cellEquipContext, equipmentVariableList, equipmentVariableCfgList);
this.sendMessage(reqBean, resultBean, JSONObject.toJSONString(collectContextList), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
MesEquipLogDispatchContext equipLogDispatchContext = equipmentLogExtService.doHandleEquipmentLogList(cellEquipContext, equipmentVariableList, equipmentVariableCfgList);
this.sendMessage(reqBean, resultBean, JSONObject.toJSONString(equipLogDispatchContext), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
//todo

@ -1,13 +1,10 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.equiplog;
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMouldMultiCavityService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipVariableCfgRuleMatchDispatchService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipmentLogExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCfgCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IPartService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
@ -86,7 +83,7 @@ public class MesSendProcessCmdStepService extends BaseStepService {
List<MesEquipmentVariableCfg> equipmentVariableCfgList = productionProcessContext.getEquipVariableCfgListByVct();
// equipmentVariableCfgList = productionProcessContextStepService.collectEquipmentVariableCfgList(equipmentVariableCfgList, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PROCESS_INSTRUCTION_STEP.getValue());
equipmentVariableCfgList = productionProcessContextStepService.collectEquipmentVariableCfgList(equipmentVariableCfgList, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.SEND_PROCESS.getValue());
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
@ -102,9 +99,8 @@ public class MesSendProcessCmdStepService extends BaseStepService {
if (CollectionUtils.isEmpty(equipmentVariableList)) execExpSendMsgAndThrowEx(reqBean, resultBean,
String.format("请检查设备数据变量信息,根据设备[%s]对应的数据变量接口逻辑信息,未配置变量类型[%s]二级变量%s相关的数据变量信息!", cellEquipContext.getEquipmentCode(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getDescription(), categoryLevelTwoList.toString()));
List<MesEquipVariableCfgCollectContext> collectContextList = equipmentLogExtService.doHandleEquipmentLogList(cellEquipContext, equipmentVariableList, equipmentVariableCfgList);
this.sendMessage(reqBean, resultBean, JSONObject.toJSONString(collectContextList), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
MesEquipLogDispatchContext equipLogDispatchContext = equipmentLogExtService.doHandleEquipmentLogList(cellEquipContext, equipmentVariableList, equipmentVariableCfgList);
this.sendMessage(reqBean, resultBean, JSONObject.toJSONString(equipLogDispatchContext), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
//发送 todo
Loading…
Cancel
Save