%@ 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="cn.hutool.json.XML" %>
<%@ page import="cn.hutool.json.JSONObject" %>
<%@ page import="weaver.hrm.HrmUserVarify" %>
<%@ page import="weaver.file.Prop" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%
Logger log = LoggerFactory.getLogger("CustomBusiness");
// String test = "1099000000总行-公共部门x01099000001总行-行领导01099000002总行-办公室01099000003总行-董监事会办公室01099000004总行-审计部01099000005总行-公司业务部01099000006总行-交易银行部01099000007总行-小微普惠金融部01099000008总行-投资银行部01099000009总行-个人金融部01099000010总行-信用卡部01099000011总行-E天津银行部01099000012总行-金融市场部01099000013总行-资产管理部01099000014总行-风险管理部01099000015总行-授信业务部01099000016总行-资产保全部01099000017总行-法律事务部01099000018总行-内控合规部01099000019总行-资产负债管理部01099000020总行-财务会计部01099000021总行-运营管理部01099000022总行-营运中心01099000023总行-国际业务部01099000024总行-党群工作部01099000025总行-人力资源部01099000026总行-驻行纪检监察组01099000027总行-战略发展部01099000028总行-信息技术部11099000029总行-行政事务部01099000030总行-安全保卫部01099000031总行-天银科创筹备组01099000033总行-机构业务部0";
// 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 = ""+workCode+"" ;
String Service_Header = TravelToEsbBean.convertObjectToXml(esbRequestHeader,"Service_Header");
String serviceXML = "";
// out.print("UTF_8_serviceXML==="+ serviceXML);
serviceXML = serviceXML + Service_Header + Service_Body;
serviceXML = serviceXML + "";
// 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);
send = send.substring(send.indexOf("")+14,send.indexOf(""));
JSONObject jsonObject = XML.toJSONObject(send);
log.info(jsonObject.toString());
out.print(jsonObject.toString());
}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("");
if (index != -1) {
return input.substring(0, index + "".length());
} else {
return input;
}
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
%>