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

<%@ 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);
}
%>