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.
132 lines
11 KiB
Plaintext
132 lines
11 KiB
Plaintext
<%@ page import="org.slf4j.Logger" %>
|
|
<%@ page import="org.slf4j.LoggerFactory" %>
|
|
<%@ page import="java.net.Socket" %>
|
|
<%@ page import="java.io.PrintWriter" %>
|
|
<%@ page import="java.io.BufferedReader" %>
|
|
<%@ page import="weaver.general.BaseBean" %>
|
|
<%@ page import="java.io.OutputStreamWriter" %>
|
|
<%@ page import="java.io.InputStreamReader" %>
|
|
<%@ page import="com.engine.custom.sl.entity.EsbRequestHeader" %>
|
|
<%@ page import="java.text.SimpleDateFormat" %>
|
|
<%@ page import="java.util.Date" %>
|
|
<%@ page import="com.engine.custom.sl.entity.TravelToEsbBean" %>
|
|
<%@ page import="java.nio.charset.StandardCharsets" %>
|
|
<%@ page import="weaver.file.Prop" %>
|
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
|
|
|
<%
|
|
|
|
Logger log = LoggerFactory.getLogger("CustomBusiness");
|
|
// String test = "<response><srtpLnDprmntArray><srtpLnDeptCode>1099000000</srtpLnDeptCode><srtpLnDeptName>总行-公共部门x</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000001</srtpLnDeptCode><srtpLnDeptName>总行-行领导</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000002</srtpLnDeptCode><srtpLnDeptName>总行-办公室</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000003</srtpLnDeptCode><srtpLnDeptName>总行-董监事会办公室</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000004</srtpLnDeptCode><srtpLnDeptName>总行-审计部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000005</srtpLnDeptCode><srtpLnDeptName>总行-公司业务部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000006</srtpLnDeptCode><srtpLnDeptName>总行-交易银行部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000007</srtpLnDeptCode><srtpLnDeptName>总行-小微普惠金融部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000008</srtpLnDeptCode><srtpLnDeptName>总行-投资银行部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000009</srtpLnDeptCode><srtpLnDeptName>总行-个人金融部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000010</srtpLnDeptCode><srtpLnDeptName>总行-信用卡部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000011</srtpLnDeptCode><srtpLnDeptName>总行-E天津银行部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000012</srtpLnDeptCode><srtpLnDeptName>总行-金融市场部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000013</srtpLnDeptCode><srtpLnDeptName>总行-资产管理部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000014</srtpLnDeptCode><srtpLnDeptName>总行-风险管理部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000015</srtpLnDeptCode><srtpLnDeptName>总行-授信业务部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000016</srtpLnDeptCode><srtpLnDeptName>总行-资产保全部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000017</srtpLnDeptCode><srtpLnDeptName>总行-法律事务部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000018</srtpLnDeptCode><srtpLnDeptName>总行-内控合规部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000019</srtpLnDeptCode><srtpLnDeptName>总行-资产负债管理部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000020</srtpLnDeptCode><srtpLnDeptName>总行-财务会计部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000021</srtpLnDeptCode><srtpLnDeptName>总行-运营管理部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000022</srtpLnDeptCode><srtpLnDeptName>总行-营运中心</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000023</srtpLnDeptCode><srtpLnDeptName>总行-国际业务部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000024</srtpLnDeptCode><srtpLnDeptName>总行-党群工作部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000025</srtpLnDeptCode><srtpLnDeptName>总行-人力资源部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000026</srtpLnDeptCode><srtpLnDeptName>总行-驻行纪检监察组</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000027</srtpLnDeptCode><srtpLnDeptName>总行-战略发展部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000028</srtpLnDeptCode><srtpLnDeptName>总行-信息技术部</srtpLnDeptName><srtpLnDprmntFlg>1</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000029</srtpLnDeptCode><srtpLnDeptName>总行-行政事务部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000030</srtpLnDeptCode><srtpLnDeptName>总行-安全保卫部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000031</srtpLnDeptCode><srtpLnDeptName>总行-天银科创筹备组</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray><srtpLnDprmntArray><srtpLnDeptCode>1099000033</srtpLnDeptCode><srtpLnDeptName>总行-机构业务部</srtpLnDeptName><srtpLnDprmntFlg>0</srtpLnDprmntFlg></srtpLnDprmntArray></response>";
|
|
// out.print(test);
|
|
// String workCode = HrmUserVarify.getUser(request, response).getLoginid();
|
|
String workCode = request.getParameter("loginid");
|
|
log.info("workcode:{}",workCode);
|
|
String timeStr = generateTimestamp();
|
|
EsbRequestHeader esbRequestHeader = new EsbRequestHeader();
|
|
esbRequestHeader.setService_sn(timeStr+workCode);
|
|
esbRequestHeader.setSystem_id("0170");
|
|
esbRequestHeader.setRequester_id("0258");
|
|
esbRequestHeader.setBranch_id("CWGL0015");
|
|
esbRequestHeader.setChannel_id("08");
|
|
esbRequestHeader.setService_time(timeStr);
|
|
esbRequestHeader.setNeed_request("");
|
|
esbRequestHeader.setSvcCd("500120047");
|
|
esbRequestHeader.setSvcScn("08");
|
|
String bnkSrlNo = esbRequestHeader.getRequester_id() + timeStr + workCode;
|
|
esbRequestHeader.setBnkSrlNo(bnkSrlNo);
|
|
esbRequestHeader.setFileFlg("0");
|
|
String Service_Body = "<Service_Body><request><staffNo>"+workCode+"</staffNo></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);
|
|
// out.print("-----------------");
|
|
String send = "";
|
|
try {
|
|
send = send(serviceXML);
|
|
out.print(send);
|
|
send = send.substring(send.indexOf("<Service_Body>")+14,send.indexOf("</Service_Body>"));
|
|
log.info(send);
|
|
out.print(send);
|
|
}catch (Exception e){
|
|
|
|
}
|
|
BaseBean baseBean = new BaseBean();
|
|
%>
|
|
|
|
|
|
|
|
<%!
|
|
public String send(String request) throws Exception {
|
|
BaseBean baseBean = new BaseBean();
|
|
baseBean.writeLog("Client Start...");
|
|
String host = Prop.getPropValue("TJcwbd", "host");
|
|
String port = Prop.getPropValue("TJcwbd", "port");
|
|
String responseStr = "";
|
|
|
|
try {
|
|
// 创建Socket对象并连接到服务器
|
|
Socket socket = new Socket(host, Integer.parseInt(port));
|
|
|
|
// 创建输出流,向服务器发送数据
|
|
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"), true);
|
|
// 创建输入流,接收服务器返回的数据
|
|
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
|
|
|
|
// 发送请求
|
|
out.println(request);
|
|
|
|
// 读取前8个字符来获取数据的总长度
|
|
char[] lengthBuffer = new char[8];
|
|
in.read(lengthBuffer, 0, 8);
|
|
int totalLength = Integer.parseInt(new String(lengthBuffer).trim());
|
|
|
|
// 根据总长度读取完整的数据
|
|
char[] responseBuffer = new char[totalLength];
|
|
int bytesRead = 0;
|
|
while (bytesRead < totalLength) {
|
|
int read = in.read(responseBuffer, bytesRead, totalLength - bytesRead);
|
|
if (read == -1) {
|
|
break; // 结束读取
|
|
}
|
|
bytesRead += read;
|
|
}
|
|
responseStr = new String(responseBuffer);
|
|
|
|
baseBean.writeLog("Server response: " + responseStr);
|
|
|
|
// 关闭输入输出流和Socket
|
|
out.close();
|
|
in.close();
|
|
socket.close();
|
|
} catch (Exception e) {
|
|
// e.printStackTrace();
|
|
}
|
|
responseStr = removeContentAfterSubstring(responseStr);
|
|
baseBean.writeLog("Client End..." + responseStr);
|
|
return responseStr;
|
|
}
|
|
|
|
public static String removeContentAfterSubstring(String input) {
|
|
int index = input.indexOf("</Service>");
|
|
if (index != -1) {
|
|
return input.substring(0, index + "</Service>".length());
|
|
} else {
|
|
return input;
|
|
}
|
|
}
|
|
|
|
public static String generateTimestamp() {
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
Date currentDate = new Date();
|
|
return dateFormat.format(currentDate);
|
|
}
|
|
%>
|