diff --git a/com/Client.java b/com/Client.java
index 9d89a4f..64abd4a 100644
--- a/com/Client.java
+++ b/com/Client.java
@@ -1,58 +1,37 @@
package com;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.PrintStream;
+import com.engine.util.XMLUtils;
+
+import java.io.*;
import java.net.Socket;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
public class Client {
+ // public static final int port = 8090;
public static final int port = 8090;
- public static final String host = "14.1.209.146";
-// public static final String host = "127.0.0.1";
+ // public static final String host = "14.1.209.146";
+ public static final String host = "127.0.0.1";
public static void main(String[] args) {
System.out.println("Client Start...");
+ String str = "000006041010157060000081243025801570102311000120230905104426true500130004130157202309050600000812430todogetCountuserNum10913026任广鹏是个大刷币";
+ // String str = "1010157060000081243025801570102311000120230905104426true500130004130157202309050600000812430todogetCountuserNum10913026任广鹏是个大刷币";
+ // Map stringStringMap = XMLUtils.parseXMLToMap(str);
+ // System.out.println(stringStringMap);
+ System.out.println(str.length());
+
// while (true) {
Socket socket = null;
try {
//创建一个流套接字并将其连接到指定主机上的指定端口号
socket = new Socket(host,port);
-
+ // String str = "000006121010157060000081243025801570102311000120230905104426true500130004130157202309050600000812430todogetCountuserNum10913026任广鹏是个大刷币";
+ // System.out.println(str);
//读取服务器端数据
- BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
+ BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
//向服务器端发送数据
- PrintStream out = new PrintStream(socket.getOutputStream());
-// System.out.print("请输入: \t");
-// String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
- String str = "00000656\n" +
- "\n" +
- " \n" +
- " 1010157010000001812\n" +
- " 0258\n" +
- " 0157\n" +
- " 010231100\n" +
- " 01\n" +
- " 20230621170408\n" +
- " true\n" +
- " 500130004\n" +
- " 13\n" +
- " 015720230621010000001812\n" +
- " 0\n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " getCount\n" +
- " todo"+
- " \n" +
- " \n" +
- " userNum\n" +
- " 10110039\n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- "";
+ // PrintStream out = new PrintStream(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8));
+ PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8),true);
out.println(str);
String ret = input.readLine();
diff --git a/com/engine/util/XMLUtils.java b/com/engine/util/XMLUtils.java
index 5d8789e..868e95e 100644
--- a/com/engine/util/XMLUtils.java
+++ b/com/engine/util/XMLUtils.java
@@ -4,6 +4,7 @@ import com.alibaba.druid.util.StringUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
+import weaver.general.BaseBean;
import javax.xml.parsers.DocumentBuilder;
@@ -15,6 +16,7 @@ import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
+import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
@@ -167,11 +169,13 @@ public class XMLUtils {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
- Document document = builder.parse(new ByteArrayInputStream(xmlString.getBytes()));
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(xmlString.getBytes(StandardCharsets.UTF_8));
+ Document document = builder.parse(byteArrayInputStream);
Element rootElement = document.getDocumentElement();
extractValues(rootElement, resultMap);
} catch (Exception e) {
+ new BaseBean().writeLog(e.getMessage());
e.printStackTrace();
}
return resultMap;
diff --git a/com/engine/web/tjbk/TJBKWorkFlow.java b/com/engine/web/tjbk/TJBKWorkFlow.java
index 2331617..d436211 100644
--- a/com/engine/web/tjbk/TJBKWorkFlow.java
+++ b/com/engine/web/tjbk/TJBKWorkFlow.java
@@ -82,9 +82,9 @@ public class TJBKWorkFlow {
Map paramMap = null;
String result = "";
try {
- String substring = param.substring(8, param.length());
+ // String substring = param.substring(8, param.length());
// new BaseBean().writeLog("xml报文"+substring);
- paramMap = XMLUtils.parseXMLToMap(substring);
+ paramMap = XMLUtils.parseXMLToMap(param);
String path = paramMap.get("path");
String method = paramMap.get("method");
diff --git a/com/engine/web/tjbk/TjbkServerSocket.java b/com/engine/web/tjbk/TjbkServerSocket.java
index 52fad62..eb39795 100644
--- a/com/engine/web/tjbk/TjbkServerSocket.java
+++ b/com/engine/web/tjbk/TjbkServerSocket.java
@@ -3,6 +3,7 @@ package com.engine.web.tjbk;
import com.engine.tjbankSocket.SocketExecute;
import com.engine.tjbankSocket.impl.GetToCountSocketExecute;
import com.engine.util.XMLUtils;
+import org.apache.commons.lang.StringEscapeUtils;
import weaver.general.BaseBean;
import weaver.general.StringUtil;
@@ -30,7 +31,7 @@ public class TjbkServerSocket implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
-
+ new BaseBean().writeLog("contextInitialized启动");
ServletContext servletContext = arg0.getServletContext();
if (socketThread == null) {
socketThread = new SocketThread(null, servletContext);
@@ -64,6 +65,7 @@ class SocketThread extends Thread {
while (!this.isInterrupted()) { // 线程未中断执行循环
try {
+ new BaseBean().writeLog("SocketThread线程启动");
Socket socket = serverSocket.accept();
if (socket != null) {
new ProcessSocketData(socket, this.servletContext).start();
@@ -109,23 +111,36 @@ class ProcessSocketData extends Thread {
PrintWriter pw = new PrintWriter(outputStreamWriter);
InputStream inputStream = socket.getInputStream();
- // byte[] arr = new byte[1024];
- // int length = inputStream.read(arr);//返回有效数据长度
- byte[] arr = new byte[1024];
- int bytesRead;
- StringBuilder stringBuilder = new StringBuilder();
-
- while ((bytesRead = inputStream.read(arr)) != -1) {
- // bytesRead contains the number of bytes read from the input stream
- stringBuilder.append(new String(arr, 0, bytesRead, StandardCharsets.UTF_8));
- }
-
- // String data = new String(arr, 0, length);
- String requestData = stringBuilder.toString();
- new BaseBean().writeLog("ServerSocket线程启动");
+ BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
+ // StringBuilder requestData = new StringBuilder();
+ String inputLine;
+ char[] datalen=new char[8];//报文前八位为报文体总长度
+ in.read(datalen,0,8);
+ String lendata=new String (datalen);
+ int length=Integer.parseInt(lendata);
+ // byte[] data=new byte[length];
+ char[] data=new char[length];
+ int datalength = in.read(data,0,length);
+ String requestData = new String(data);
+ // inputLine = in.readLine();
+ // requestData.append(inputLine);
+ // System.out.println("Received from client: " + inputLine);
+
+
+
+
+ // byte[] datalen=new byte[8];//报文前八位为报文体总长度
+ // inputStream.read(datalen);
+ // String lendata=new String (datalen);
+ // int length=Integer.parseInt(lendata);
+ // // byte[] data=new byte[length];
+ // byte[] data=new byte[length];
+ // int datalength = inputStream.read(data);
+ // String requestData = new String(data, 0, datalength);
String s = "";
- if (!StringUtil.isEmpty(requestData)) {
- s = new TJBKWorkFlow().getToDoCount(requestData);
+ if (!StringUtil.isEmpty(requestData.toString())) {
+ new BaseBean().writeLog("requestData",requestData);
+ s = execute(requestData.toString());
}
// 执行自定义的请求解析方法,生成响应response
pw.println(s);
@@ -141,7 +156,9 @@ class ProcessSocketData extends Thread {
private String execute(String XMLparam){
+
Map paramMap = XMLUtils.parseXMLToMap(XMLparam);
+ StringEscapeUtils.unescapeXml(XMLparam);
//目标系统代码
String system_id = paramMap.get("system_id");
// 请求方系统代码
@@ -149,7 +166,7 @@ class ProcessSocketData extends Thread {
// 请求方机构代号
String branch_id = paramMap.get("branch_id");
SocketExecute socketExecute = null;
- if ("1".equals(requester_id)){
+ if ("0157".equals(requester_id)){
socketExecute = new GetToCountSocketExecute();
}
String execute = socketExecute.execute(XMLparam);
diff --git a/weaver/interfaces/workflow/action/javacode/Action20230906023509.java b/weaver/interfaces/workflow/action/javacode/Action20230906023509.java
new file mode 100644
index 0000000..27966b3
--- /dev/null
+++ b/weaver/interfaces/workflow/action/javacode/Action20230906023509.java
@@ -0,0 +1,99 @@
+package weaver.interfaces.workflow.action.javacode;
+
+import weaver.conn.RecordSet;
+import weaver.conn.RecordSetTrans;
+import weaver.interfaces.workflow.action.Action;
+import weaver.general.BaseBean;
+import weaver.soa.workflow.request.RequestInfo;
+
+ public class Action20230906023509 extends BaseBean implements Action {
+
+ public static final String sql = "insert into workflow_requestlog (requestid,workflowid,nodeid,logtype,operatedate,operatetime,operator,remark1,clientip,operatortype,destnodeid,receivedpersons_1,showorder,agentorbyagentid,agenttype,logid,annexdocids,requestlogid,operatordept,signdocids,signworkflowids,receivedpersons,ismobile,handwrittensign,speechattachment,receivedpersonids,\n" +
+ "remarklocation,issubmitdirect,remarkquote,fulltextannotation,speechattachmente9,remark,operatorsub,operatorjob,isrobotnode,seclevel) \n" +
+ " select \n" +
+ "'{?lc}',\n" +
+ "'331',\n" +
+ "'2181',\n" +
+ "'2',\n" +
+ "r.operatedate,\n" +
+ "r.operatetime,\n" +
+ "r.operator,\n" +
+ "r.remark1,\n" +
+ "r.clientip,\n" +
+ "r.operatortype, \n" +
+ "'', \n" +
+ "'{?xbbmzh}',\n" +
+ "r.showorder,\n" +
+ "r.agentorbyagentid,\n" +
+ "r.agenttype,\n" +
+ "r.logid,\n" +
+ "r.annexdocids,\n" +
+ "r.requestlogid,\n" +
+ "r.operatordept,\n" +
+ "r.signdocids,\n" +
+ "r.signworkflowids, \n" +
+ "'',r.ismobile,\n" +
+ "r.handwrittensign,\n" +
+ "r.speechattachment,\n" +
+ "'',\n" +
+ "r.remarklocation,\n" +
+ "r.issubmitdirect,\n" +
+ "r.remarkquote,\n" +
+ "r.fulltextannotation,\n" +
+ "r.speechattachmente9,\n" +
+ "r.remark, \n" +
+ "r.operatorsub, \n" +
+ "r.operatorjob, \n" +
+ "r.isrobotnode, \n" +
+ "r.seclevel \n" +
+ "from workflow_requestlog r where \n" +
+ "r.requestid={?requestid}\n" +
+ "and r.nodeid=2169\n" +
+ "order by r.operatedate desc,r.operatetime desc limit 1";
+
+ @Override
+ public String execute(RequestInfo request) {
+ // 1:Log
+ writeLog("Action20230906023509 action start...");
+
+ // 2:Exception
+ // boolean error = true;
+ // if (error) {
+ // request.getRequestManager().setMessageid("90001");
+ // request.getRequestManager().setMessagecontent("System Abnormal Termination Process Submission!");
+ // }
+
+ // 3:Get requestid
+ String requestId = request.getRequestid();
+
+ // 4:Get form tableName
+ String tablename = request.getRequestManager().getBillTableName();
+
+ // 5:Find form content
+ RecordSet rs = new RecordSet();
+ rs.execute("select * from " + tablename + " where requestid = " + requestId);
+ rs.next();
+ String lc = rs.getString("lc"); //id:Form primary key
+ String xbbmzh = rs.getString("xbbmzh"); //formData:Field name for form design
+ RecordSetTrans rsTrans = new RecordSetTrans();
+ String excutesql = sql.replaceAll("\\{\\?xbbmzh}",xbbmzh).replaceAll("\\{\\?lc}",lc).replaceAll("\\{\\?requestid}",requestId);
+ try {
+ writeLog("Action20230906023509 action rsTrans" + rsTrans);
+ writeLog("Action20230906023509 action excutesql" + excutesql);
+ rsTrans.executeSql(excutesql);
+ } catch (Exception e) {
+ e.printStackTrace();
+
+ return Action.FAILURE_AND_CONTINUE;
+ }
+
+ return Action.SUCCESS;
+ }
+
+
+ public static void main(String[] args) {
+ // System.out.println(sql);
+ String excutesql = sql.replaceAll("\\{\\?xbbmzh}","11111").replaceAll("\\{\\?lc}","22222").replaceAll("\\{\\?requestid}","3333");
+ System.out.println(excutesql);
+ }
+}