You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
3.0 KiB
Java

2 years ago
package com.engine.web.sl;
import com.alibaba.fastjson.JSONObject;
import com.engine.common.util.ParamUtil;
import com.engine.custom.sl.entity.EsbRequestHeader;
import com.engine.custom.sl.entity.TravelToEsbBean;
import com.engine.util.SocketClientUtil;
import com.engine.util.XMLUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
public class SLController {
@Path("/getCWInfo")
@GET
public String getDataById(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String, Object> param = ParamUtil.request2Map(request);
String workCode = param.get("workCode").toString();
String timeStr = generateTimestamp();
EsbRequestHeader esbRequestHeader = new EsbRequestHeader();
esbRequestHeader.setService_sn(timeStr+workCode);
esbRequestHeader.setSystem_id("0170");
esbRequestHeader.setRequester_id("0258");
esbRequestHeader.setBranch_id("cwgl00002");
esbRequestHeader.setChannel_id("02");
esbRequestHeader.setService_time(timeStr);
esbRequestHeader.setNeed_request("");
esbRequestHeader.setSvcCd("300130001");
esbRequestHeader.setSvcScn("39");
String bnkSrlNo = esbRequestHeader.getRequester_id() + timeStr + workCode;
esbRequestHeader.setBnkSrlNo(bnkSrlNo);
esbRequestHeader.setFileFlg("0");
String Service_Body = "<Service_Body><request><operatorNo>"+ workCode +"</operatorNo></request></Service_Body>" ;
String Service_Header = TravelToEsbBean.convertObjectToXml(esbRequestHeader,"Service_Header");
String serviceXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service>";
// out.print("UTF_8_serviceXML==="+ serviceXML);
serviceXML = serviceXML + Service_Header + Service_Body;
serviceXML = serviceXML + "</Service>";
// out.print("UTF_8_serviceXML==="+ serviceXML);
String length = String.format("%08d", serviceXML.length());
serviceXML = length + serviceXML;
serviceXML = new String(serviceXML.getBytes(StandardCharsets.UTF_8));
// out.print("请求=="+ serviceXML);
2 years ago
SocketClientUtil scketClient = new SocketClientUtil("14.1.71.90",10149);
2 years ago
String send = null;
try {
send = scketClient.send(serviceXML);
} catch (Exception e) {
return e.getMessage();
}
String substring = send.substring(0, 8);
String substring1 = send.substring(8);
Map<String, String> map = XMLUtils.parseXMLToMap(substring1);
return (JSONObject.toJSONString(map));
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
}