no message

master
rengp 2 years ago
parent 5e0794e2dd
commit 662ec41297

@ -2,6 +2,8 @@ package com;
import com.engine.util.XMLUtils;
import java.io.*;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
@ -15,11 +17,14 @@ public class Client {
public static void main(String[] args) {
System.out.println("Client Start...");
// String str = "00000604<?xml version=\"1.0\" encoding=\"gbk\"?><Service><Service_Header><service_sn>1010157060000081243</service_sn><system_id>0258</system_id><requester_id>0157</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20230905104426</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720230905060000081243</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><path>todo</path><method>getCount</method><args><entry><key>userNum</key><value>10913026任广鹏是个大刷币</value></entry></args></request></Service_Body></Service>";
String str = "00000658<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>1010157060000081243</service_sn><system_id>0258</system_id><requester_id>0170</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20230905104426</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720230905060000081243</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><oaTrvlBnsExpnsAcctNo>补贴报销单09122</oaTrvlBnsExpnsAcctNo><apprvrNo>10110567</apprvrNo><apprvrName>10110567</apprvrName><flowStatus>2</flowStatus><sgntrOpn>测试退回签字意见?</sgntrOpn></request></Service_Body></Service>";
// String str = "00000666<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>1010157060000081243</service_sn><system_id>0258</system_id><requester_id>0170</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20230905104426</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720230905060000081243</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><oaTrvlBnsExpnsAcctNo>BTSQD-202309200005</oaTrvlBnsExpnsAcctNo><apprvrNo>10110567</apprvrNo><apprvrName>10110567</apprvrName><flowStatus>2</flowStatus><sgntrOpn>测试退回签字意见?</sgntrOpn></request></Service_Body></Service>";
// String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>1010157060000081243</service_sn><system_id>0258</system_id><requester_id>0157</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20230905104426</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720230905060000081243</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><path>todo</path><method>getCount</method><args><entry><key>userNum</key><value>10913026任广鹏是个大刷币</value></entry></args></request></Service_Body></Service>";
String str = "00000669<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>000000000004</service_sn><system_id>0258</system_id><requester_id>0170</requester_id><branch_id>951101</branch_id><channel_id>0170</channel_id><service_time>20230920195236</service_time><need_request>true</need_request><SvcCd>500120043</SvcCd><SvcScn>01</SvcScn><BnkSrlNo>017020230920000000000004</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><oaTrvlBnsExpnsAcctNo>BTSQD-202309210011</oaTrvlBnsExpnsAcctNo><apprvrNo>10110001</apprvrNo><apprvrName>测试审批人</apprvrName><flowStatus>2</flowStatus><sgntrOpn>驳回测试2</sgntrOpn></request></Service_Body></Service>";
// ;
// System.out.println(XMLUtils.parseXMLToMap(str));
// Map<String, String> stringStringMap = XMLUtils.parseXMLToMap(str);
// System.out.println(stringStringMap);
System.out.println(str.length());
System.out.println(str.getBytes(StandardCharsets.UTF_8).length);
// System.exit(0);
// while (true) {
Socket socket = null;

@ -0,0 +1,267 @@
package com.engine.custom.sl.action;
import com.dcfs.fts.common.error.FtpException;
import com.engine.custom.hg.util.HgUtils;
import com.engine.custom.sl.entity.*;
import com.engine.util.SocketClientUtil;
import com.engine.util.XMLUtils;
import com.weaver.general.Util;
import weaver.conn.RecordSet;
import weaver.file.ImageFileManager;
import weaver.general.BaseBean;
import weaver.hrm.User;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* (
*/
public class OAtoCWAction extends BaseBean implements Action {
/**
* After selecting aciton after the process path node, this method will be executed after the node is submitted.
*/
@Override
public String execute(RequestInfo request) {
// if(error) {
// request.getRequestManager().setMessageid("90001");
// request.getRequestManager().setMessagecontent("System Abnormal Termination Process Submission");
// }
String requestId = request.getRequestid();
String tablename = request.getRequestManager().getBillTableName();
TravelToEsbBean toEsbBean = new TravelToEsbBean();
//封装主表数据
RecordSet rs = new RecordSet();
String mainId = setMainForm(requestId, tablename, rs, toEsbBean);
writeLog("toEsbBean1====>"+toEsbBean);
writeLog("上传附件到ESB服务器====>");
try {
fileToEsb(toEsbBean,requestId);
} catch (Exception e) {
request.getRequestManager().setMessageid("10001");
request.getRequestManager().setMessagecontent(e.getMessage());
return Action.FAILURE_AND_CONTINUE;
}
setFormDt1(mainId,tablename,rs,toEsbBean);
writeLog("toEsbBean2====>"+toEsbBean);
setFormDt2(mainId,tablename,rs,toEsbBean);
writeLog("toEsbBean3====>"+toEsbBean);
String Service_Body = "<Service_Body><request>"+ toEsbBean.toXMLString()+"</request></Service_Body>" ;
writeLog("toEsbBean4====>"+Service_Body);
try{
EsbRequestHeader esbRequestHeader = new EsbRequestHeader(Util.getIntValue(mainId));
writeLog("esbRequestHeader====>"+esbRequestHeader);
String Service_Header = TravelToEsbBean.convertObjectToXml(esbRequestHeader,"Service_Header");
writeLog("esbRequestHeaderXML====>"+Service_Header);
String serviceXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service>";
serviceXML = serviceXML + Service_Header + Service_Body;
serviceXML = serviceXML + "</Service>";
String length = String.format("%08d", serviceXML.length());
writeLog("XMLlength"+ length);
serviceXML = length + serviceXML;
writeLog("serviceXML==="+ serviceXML);
serviceXML = new String(serviceXML.getBytes(StandardCharsets.UTF_8));
writeLog("UTF_8_serviceXML==="+ serviceXML);
SocketClientUtil scketClient = new SocketClientUtil("14.1.76.116",10149);
String send = scketClient.send(serviceXML);
}catch (Exception e){
e.printStackTrace();
writeLog("构建XML异常"+e.getMessage());
request.getRequestManager().setMessageid("10001");
request.getRequestManager().setMessagecontent(e.getMessage());
return Action.FAILURE_AND_CONTINUE;
}
// setFormDt1();
return Action.SUCCESS;
}
private void fileToEsb(TravelToEsbBean toEsbBean, String requestId) throws Exception {
// HashMap<String, String> filePathMap = new HashMap<>();
List<acsryItem> acsryArray = toEsbBean.getAcsryArray();
for (acsryItem acsryItem : acsryArray) {
String acsryNm = acsryItem.getAcsryNm();
writeLog("acsryNm"+acsryNm);
ImageFileManager ifm = new ImageFileManager();
ifm.getImageFileInfoById(Util.getIntValue(acsryNm,0));
InputStream inputStream = ifm.getInputStream();
String imageFileName = ifm.getImageFileName();
writeLog("imageFileName"+imageFileName);
String[] filename = imageFileName.split("\\.");
String tempFilePath = "";
try {
File tempFile = File.createTempFile(filename[0],filename.length ==2 ?filename[1]:"");
// 创建一个输出流,将数据写入临时文件
OutputStream outputStream = new FileOutputStream(tempFile);
// 将输入流中的数据复制到输出流(即临时文件)
byte[] buffer = new byte[2048];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
tempFilePath = tempFile.getAbsolutePath();
writeLog( "临时文件位置"+tempFilePath);
// 关闭输入流和输出流
inputStream.close();
outputStream.close();
}catch (Exception e){
e.printStackTrace();
writeLog( "创建本地文件异常"+e.getMessage());
throw new Exception("创建本地文件异常");
}
//推送ESB服务器
String ftpPath = "";
try {
ftpPath = HgUtils.putFile(tempFilePath, requestId + File.separator + imageFileName);
} catch (FtpException e) {
e.printStackTrace();
writeLog( "传输ESBftp异常"+e.getMessage());
throw new Exception("传输ESBftp异常");
} catch (IOException e) {
e.printStackTrace();
writeLog( "传输ESBIO异常"+e.getMessage());
throw new Exception("传输ESBftp异常");
}
acsryItem.setAcsryNm(imageFileName);
acsryItem.setSavePath(ftpPath);
}
}
private String setMainForm(String requestId, String tablename, RecordSet rs ,TravelToEsbBean toEsbBean) {
rs.execute("select * from " + tablename + " where requestid = " + requestId);
String mainid = "";
String fj = "";
//表单数据
if (rs.next()) {
mainid = rs.getString("id");
//OA差旅报销单单据编号
toEsbBean.setOaTrvlBnsExpnsAcctNo(rs.getString(Util.null2String("djbh")));
//经办人工号
toEsbBean.setOperatorNo(Util.null2String(rs.getString("jbrgh")));
//经办人姓名 id
toEsbBean.setOperatorName(Util.null2String(rs.getString("jbrxm")));
String lastname = new User(Util.getIntValue(toEsbBean.getOperatorName())).getLastname();
toEsbBean.setOperatorName(lastname);
//附件张数
toEsbBean.setAcsryNums(Util.null2String(rs.getString("fjzs")));
//报销金额
toEsbBean.setExpnsAmt(Util.null2String(rs.getString("bxjedwf")));
//报销事由
toEsbBean.setExpnsRsn(Util.null2String(rs.getString("bxsy")));
//备注
toEsbBean.setRemark(Util.null2String(rs.getString("bz")));
fj = Util.null2String(rs.getString("fj"));
// String formData = rs.getString("formData");
}
// 封装文件数组
//现在是id
List<String> fjids = Arrays.asList(fj.split(","));
ArrayList<acsryItem> acsryArray = new ArrayList<>();
for (String fjid : fjids) {
acsryItem acsryItem = new acsryItem();
acsryItem.setAcsryNm(getimgid(fjid,rs));
acsryArray.add(acsryItem);
}
toEsbBean.setAcsryArray(acsryArray);
return mainid;
}
private void setFormDt1(String mainid, String tablename, RecordSet rs , TravelToEsbBean toEsbBean) {
rs.execute("select * from " + tablename + "_dt1 where mainid = " + mainid);
List<ExpenseItem> expenseArray = new ArrayList<>();
while (rs.next()) {
ExpenseItem expenseItem = new ExpenseItem();
// 支出类型
expenseItem.setExpndType(getpartyBuildCostCode(Util.getIntValue(rs.getString("zclx"),0)));
//不含税金额
expenseItem.setExclsvTaxAmt(Util.null2String(rs.getString("bhsjedwf")));
// //不含税金额
expenseItem.setTaxAmt(Util.null2String(rs.getString("sedwf")));
//价税合计金额
expenseItem.setPrcTotAmt(Util.null2String(rs.getString("jshjjedwf")));
//记账摘要
expenseItem.setAcctingAbstct("");
expenseArray.add(expenseItem);
}
toEsbBean.setExpndArray(expenseArray);
}
private void setFormDt2(String mainid, String tablename, RecordSet rs , TravelToEsbBean toEsbBean) {
rs.execute("select * from " + tablename + "_dt2 where mainid = " + mainid);
List<JourneyInfo> jrnyInfoArray = new ArrayList<>();
while (rs.next()) {
JourneyInfo journeyInfo = new JourneyInfo();
// 开始日期
journeyInfo.setStartDate(Util.null2String(rs.getString("ksrq")));
// 结束日期
journeyInfo.setEndDate(Util.null2String(rs.getString("jsrq")));
// 出差天数
journeyInfo.setBsnTrpDays(Util.null2String(rs.getString("ccts")));
//行程路线
journeyInfo.setJrnyPath(Util.null2String(rs.getString("hclx")));
//行程说明
journeyInfo.setJrnyExpln(Util.null2String(rs.getString("hcsm")));
//记账摘要
journeyInfo.setRemark(Util.null2String(rs.getString("bz")));
jrnyInfoArray.add(journeyInfo);
}
toEsbBean.setJrnyInfoArray(jrnyInfoArray);
}
//获取支出类型
private String getpartyBuildCostCode(int index){
if(index == 0){
return "FEE_BUILD";
}else if(index == 1){
return "BIZ_FEE";
}else if(index == 2){
return "PARTY_BUILD_EXPENSE";
}
return "";
}
public String getimgid(String docid, RecordSet rs){
String sql = "select docid,df.imagefileid imgid from docimagefile df left join imagefile imf on df.imagefileid = imf.imagefileid where DOCID = ?";
writeLog("getimgidsql"+sql+"===="+docid);
rs.executeQuery(sql,docid);
if (rs.next()){
writeLog("imgid"+Util.null2String(rs.getString("imgid")));
return Util.null2String(rs.getString("imgid"));
}
return "";
};
//生成流水号
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
public static void main(String[] args) {
//String s = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>20230920132332000003</service_sn><system_id>0170</system_id><requester_id>0258</requester_id><branch_id>cwgl00001</branch_id><channel_id>01</channel_id><service_time>20230920132332</service_time><need_request></need_request><SvcCd>500120010</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>025820230920132332000003</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><oaTrvlBnsExpnsAcctNo>123123</oaTrvlBnsExpnsAcctNo><operatorNo>10110537</operatorNo><operatorName>测试_10110537</operatorName><acsryNums>1</acsryNums><expnsAmt>1,234.00</expnsAmt><expnsRsn>1234</expnsRsn><remark>的覅第v的v你你</remark><expndArray><expndType>BIZ_FEE</expndType><exclsvTaxAmt>11.00</exclsvTaxAmt><taxAmt>0.00</taxAmt><prcTotAmt>11.00</prcTotAmt><acctingAbstct></acctingAbstct></expndArray><jrnyInfoArray><startDate>2023-09-20</startDate><endDate>2023-09-20</endDate><bsnTrpDays>1</bsnTrpDays><jrnyPath>1111</jrnyPath><jrnyExpln>111</jrnyExpln><remark>11</remark></jrnyInfoArray><acsryArray><acsryNm>滴滴出行行程报销单 (1).pdf</acsryNm><savePath>/025801/YDBG/20230920/501502/滴滴出行行程报销单 (1).pdf</savePath></acsryArray></request></Service_Body></Service>";
// String s = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>20230920142508000007</service_sn><system_id>0170</system_id><requester_id>0258</requester_id><branch_id>cwgl00001</branch_id><channel_id>01</channel_id><service_time>20230920142508</service_time><need_request></need_request><SvcCd>500120010</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>025820230920142508000007</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><oaTrvlBnsExpnsAcctNo></oaTrvlBnsExpnsAcctNo><operatorNo>10110537</operatorNo><operatorName>测试_10110537</operatorName><acsryNums>2</acsryNums><expnsAmt>180.00</expnsAmt><expnsRsn>测试ESb补贴报销单报销事由</expnsRsn><remark>测试ESb补贴报销单备注</remark><expndArray><expndType>BIZ_FEE</expndType><exclsvTaxAmt>180.00</exclsvTaxAmt><taxAmt>0.00</taxAmt><prcTotAmt>180.00</prcTotAmt><acctingAbstct></acctingAbstct></expndArray><jrnyInfoArray><startDate>2023-09-20</startDate><endDate>2023-09-20</endDate><bsnTrpDays>1</bsnTrpDays><jrnyPath>行程路线-天津北京</jrnyPath><jrnyExpln>行程说明-天津北京</jrnyExpln><remark>备注-天津北京</remark></jrnyInfoArray><acsryArray><acsryNm>公文功能相关接口.pdf</acsryNm><savePath>/025801/YDBG/20230920/502519/公文功能相关接口.pdf</savePath></acsryArray><acsryArray><acsryNm>滴滴电子发票.pdf</acsryNm><savePath>/025801/YDBG/20230920/502519/滴滴电子发票.pdf</savePath></acsryArray></request></Service_Body></Service>";
String s = "00000667<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>000000000004</service_sn><system_id>0258</system_id><requester_id>0170</requester_id><branch_id>951101</branch_id><channel_id>0170</channel_id><service_time>20230920195236</service_time><need_request>true</need_request><SvcCd>500120043</SvcCd><SvcScn>01</SvcScn><BnkSrlNo>017020230920000000000004</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><oaTrvlBnsExpnsAcctNo>BTSQD-202309200007</oaTrvlBnsExpnsAcctNo><apprvrNo>111111</apprvrNo><apprvrName>测试审批人</apprvrName><flowStatus>0</flowStatus><sgntrOpn>驳回测试2</sgntrOpn></request></Service_Body></Service>";
// byte[] bytes = s.getBytes(StandardCharsets.US_ASCII);
// String s1 = new String(bytes);
try {
// Map<String, String> paramMap = XMLUtils.parseXMLToMap(s1);
// System.out.println(paramMap);
System.out.println(s.getBytes(StandardCharsets.UTF_8).length);
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -4,66 +4,98 @@ import com.engine.tjbankSocket.SocketExecute;
import com.engine.util.XMLUtils;
import com.icbc.api.internal.apache.http.impl.cookie.S;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetTrans;
import weaver.general.BaseBean;
import weaver.general.GCONST;
import weaver.general.StringUtil;
import weaver.general.Util;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestService;
import java.util.HashMap;
import java.util.Map;
public class CWGLSocketExecute implements SocketExecute {
public class CWGLSocketExecute extends BaseBean implements SocketExecute {
@Override
public String execute(String param) {
Map<String, String> paramMap = XMLUtils.parseXMLToMap(param);
writeLog("paramMap==="+paramMap);
String oaTrvlBnsExpnsAcctNo = paramMap.get("oaTrvlBnsExpnsAcctNo");
String apprvrNo = paramMap.get("apprvrNo");
String apprvrName = paramMap.get("apprvrName");
String flowStatus = paramMap.get("flowStatus");
String sgntrOpn = paramMap.get("sgntrOpn");
sgntrOpn = apprvrName + "(" + apprvrNo + "):" + sgntrOpn;
Map<String, String> resultMap = null;
int userid = 0;
try {
resultMap = getBeanByOAnum(oaTrvlBnsExpnsAcctNo,"formtable_main_281");
resultMap = getBeanByOAnum(oaTrvlBnsExpnsAcctNo, "formtable_main_281");
} catch (Exception e) {
e.printStackTrace();
return XMLUtils.CW2XML(paramMap, "1", e.getMessage());
}
try {
userid = getHrmidByWorkCode(apprvrNo);
userid = getHrmidByWorkCode(apprvrNo);
} catch (Exception e) {
e.printStackTrace();
}
String id = resultMap.get("id");
int requestid = Util.getIntValue(resultMap.get("requestid"));
if (requestid == 0){
writeLog("requestid==="+requestid);
if (requestid == 0) {
return XMLUtils.CW2XML(paramMap, "1", "流程未找到");
}
if (userid == 0){
if (userid == 0) {
return XMLUtils.CW2XML(paramMap, "1", "人员未找到");
}
RequestService requestService = new RequestService();
boolean istrue = false;
if ("0".equals(flowStatus)){
istrue = requestService.nextNodeBySubmit(null, requestid, userid, sgntrOpn);
}else {
istrue = requestService.nextNodeByReject(requestid, userid, sgntrOpn);
if ("0".equals(flowStatus)) {
sgntrOpn = sgntrOpn + "(驳回)";
istrue = requestService.nextNodeByReject(requestid, 1, sgntrOpn);
} else if ("1".equals(flowStatus)) {
sgntrOpn = sgntrOpn + "(记账前退单)";
istrue = requestService.nextNodeByReject(requestid, 1, sgntrOpn);
} else if ("2".equals(flowStatus)) {
sgntrOpn = sgntrOpn + "(记账后退单)";
istrue = requestService.nextNodeByReject(requestid, 1, sgntrOpn);
} else {
istrue = requestService.nextNodeBySubmit(null, requestid, 1, sgntrOpn);
}
if (istrue){
writeLog("istrue==="+istrue);
if (istrue) {
try {
updateStatus(requestid, flowStatus);
} catch (Exception e) {
e.printStackTrace();
return XMLUtils.CW2XML(paramMap, "1", e.getMessage());
}
return XMLUtils.CW2XML(paramMap, "0", "");
}else {
return XMLUtils.CW2XML(paramMap,"1","流程提交失败");
} else {
return XMLUtils.CW2XML(paramMap, "1", "流程提交失败");
}
}
private void updateStatus(int requestid, String flowStatus) throws Exception {
try {
RecordSet recordSet = new RecordSet();
recordSet.executeUpdate("update formtable_main_281 set cwxtzt = ? where requestId = ?", flowStatus, requestid);
} catch (Exception e) {
throw new Exception("更新状态失败");
}
}
public Map<String,String> getBeanByOAnum(String oaTrvlBnsExpnsAcctNo ,String tableName) throws Exception {
public Map<String, String> getBeanByOAnum(String oaTrvlBnsExpnsAcctNo, String tableName) throws Exception {
RecordSet recordSet = new RecordSet();
HashMap<String, String> resultMap = new HashMap<>();
String sql = "select * from "+tableName + " where djbh = ?";
recordSet.executeQuery(sql,oaTrvlBnsExpnsAcctNo);
if (recordSet.next()){
String sql = "select * from " + tableName + " where djbh = ?";
recordSet.executeQuery(sql, oaTrvlBnsExpnsAcctNo);
if (recordSet.next()) {
resultMap.put("id", Util.null2String(recordSet.getString("id")));
resultMap.put("requestid", Util.null2String(recordSet.getString("requestid")));
return resultMap;
}else{
} else {
throw new Exception("编号对应单据不存在");
}
}
@ -71,12 +103,20 @@ public class CWGLSocketExecute implements SocketExecute {
public int getHrmidByWorkCode(String workcode) throws Exception {
RecordSet recordSet = new RecordSet();
String sql = "select id from HRMRESOURCE where workcode = ?";
recordSet.executeQuery(sql,workcode);
if (recordSet.next()){
recordSet.executeQuery(sql, workcode);
if (recordSet.next()) {
return Util.getIntValue(recordSet.getString("id"));
}else {
} else {
throw new Exception("审批人不存在");
}
}
public static void main(String[] args) {
String rootPath = "D:\\WEAVER2\\ecology\\";
GCONST.setRootPath(rootPath);
GCONST.setServerName("ecology");
}
}

@ -21,7 +21,7 @@ public class SocketClientUtil {
this.host = host;
}
public String send(String request) {
public String send(String request) throws Exception {
// bs.writeLog("Client Start...");
Socket socket = null;
try {
@ -37,10 +37,10 @@ public class SocketClientUtil {
out.println(request);
String ret = input.readLine();
System.out.println("服务器端返回过来的是: " + ret);
// bs.writeLog("服务器端返回过来的是: " + ret);
bs.writeLog("服务器端返回过来的是: " + ret);
// 如接收到 "OK" 则断开连接
if (!StringUtil.isEmpty(ret)) {
// bs.writeLog("客户端将关闭连接");
bs.writeLog("客户端将关闭连接");
System.out.println("客户端将关闭连接: " + ret);
Thread.sleep(500);
}
@ -48,18 +48,19 @@ public class SocketClientUtil {
input.close();
return ret;
} catch (Exception e) {
// bs.writeLog("客户端异常:" + e.getMessage());
bs.writeLog("客户端异常:" + e.getMessage());
throw e;
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
socket = null;
// bs.writeLog("客户端 finally 异常:" + e.getMessage());
bs.writeLog("客户端 finally 异常:" + e.getMessage());
}
}
}
return "-1";
// return "-1";
}
static class UpdateLogThread extends Thread {

@ -165,6 +165,10 @@ public class XMLUtils {
public static Map<String, String> parseXMLToMap(String xmlString) {
// new BaseBean().writeLog("xmlString=="+xmlString);
// xmlString = new String(xmlString.getBytes(StandardCb harsets.UTF_8)).trim();
// new BaseBean().writeLog("xmlString=="+xmlString);
xmlString = xmlString.trim();
Map<String, String> resultMap = new HashMap<>();
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

@ -113,13 +113,16 @@ class ProcessSocketData extends Thread {
InputStream inputStream = socket.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
char[] datalen=new char[8];//报文前八位为报文体总长度
in.read(datalen,0,8);
String lendata=new String (datalen);
int length=Integer.parseInt(lendata);
new BaseBean().writeLog("报文长度"+length);
// byte[] data=new byte[length];
char[] data=new char[length];
int datalength = in.read(data,0,length);
String requestData = new String(data);
new BaseBean().writeLog("requestData",requestData);
String s = "";
if (!StringUtil.isEmpty(requestData.toString())) {
new BaseBean().writeLog("requestData",requestData);
@ -137,6 +140,7 @@ class ProcessSocketData extends Thread {
}
}
private String execute(String XMLparam){
new BaseBean().writeLog(this.getClass().getName()+":XMLparam=="+XMLparam);
Map<String, String> paramMap = XMLUtils.parseXMLToMap(XMLparam);
new BaseBean().writeLog(this.getClass().getName()+":paramMap=="+paramMap);

@ -0,0 +1,130 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.general.Util,weaver.conn.RecordSet" %>
<%@ page import="weaver.integration.logging.Logger"%>
<%@ page import="weaver.integration.logging.LoggerFactory"%>
<%@ page import="java.net.URL" %>
<%@ page import="java.net.URLConnection" %>
<%@ page import="org.apache.commons.lang3.StringUtils" %>
<%@ page import="weaver.interfaces.HrmTransferDao" %>
<%@ page import="java.io.*" %>
<%@ page import="weaver.sm.SM4Utils" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ include file="/systeminfo/init_wev8.jsp" %>
<%
Logger log = LoggerFactory.getLogger();
new BaseBean().writeLog("统一待办Userid===",11111);
RecordSet rs = new RecordSet();
String workflowId = request.getParameter("workflowid");
String sysId = request.getParameter("sysid");
int userId = user.getUID() ;
new BaseBean().writeLog("统一待办Userid===",userId);
String appURL ;
if(StringUtils.isNotBlank(workflowId)){
//新建异构系统
log.error("workflowid="+workflowId);
rs.executeQuery("select * from ofs_workflow where workflowid = ?",workflowId);
rs.next();
appURL = rs.getString("APPCWURL");
if ("".equals(Util.null2String(sysId))){
sysId = rs.getString("SYSID");
}
}else{
//访问异构系统流程
String todoDataId = request.getParameter("tododataid");
log.error("todoDataId="+todoDataId);
String isRemark = request.getParameter("isremark");
log.error("isRemark="+isRemark);
if( "0".equals(isRemark) || "8".equals(isRemark)){
rs.executeQuery("select * from ofs_todo_data where id = ?",todoDataId);
rs.next();
appURL = Util.null2String(rs.getString("appurlsrc"));
if ("".equals(Util.null2String(sysId))){
sysId = rs.getString("SYSID");
}
}else{
rs.executeQuery("select * from ofs_done_data where id = ?",todoDataId);
rs.next();
appURL = Util.null2String(rs.getString("appurlsrc"));
if ("".equals(Util.null2String(sysId))){
sysId = rs.getString("SYSID");
}
}
}
rs.executeQuery("select * from ofs_sysinfo where sysid = ?" , sysId);
if(rs.next()){
String prefixURL = Util.null2String(rs.getString("Appprefixurl"));
String hrmTransRule = Util.null2String(rs.getString("HRMTRANSRULE"));//人员转换关系
HrmTransferDao hrmTransferDao = new HrmTransferDao();
String loginId = hrmTransferDao.getHrmResourceIdByHrmTransRule(hrmTransRule, Util.null2String(userId));
new BaseBean().writeLog("loginidOld====="+loginId);
if(loginId.length() > 8){
loginId = loginId.substring(0,8);
new BaseBean().writeLog("loginidNew====="+loginId);
}
long stamp = System.currentTimeMillis();
String token = this.getToken(prefixURL, loginId, stamp);
String toURL = this.getURL(prefixURL, appURL, token, loginId, stamp);
log.info("==============APP端访问异构系统地址"+toURL);
response.sendRedirect(toURL);
%>
<%
}else{
log.error("根据标识:"+sysId+"未查询到数据");
return;
}
%>
<%!
Logger log = LoggerFactory.getLogger();
private String getURL(String prefixURL, String toURL, String token,String loginId, long stamp) throws UnsupportedEncodingException {
StringBuilder url = new StringBuilder() ;
if(toURL.startsWith("http://") || toURL.startsWith("https://")){
url.append(toURL);
}else{
url.append(prefixURL).append(toURL);
}
if(url.toString().contains("#")){
String[] split = toURL.split("#");
url.append(split[0]).append("&loginid="+loginId+"&stamp="+stamp+"&token=").append(URLEncoder.encode(token,"UTF-8")).append("#").append(split[1]) ;
}else{
if(toURL.contains("?")){
url.append("&");
}else{
url.append("?");
}
url.append("loginid="+loginId+"&stamp="+stamp+"&token=").append(URLEncoder.encode(token,"UTF-8")) ;
}
return url.toString() ;
}
private String getToken(String prefixURL, String loginId, long stamp){
//加密就是SM4 ECB模式NoPadding 不填充。加密key是bankoftianjincom
//String key = "bankoftianjincom";
SM4Utils sm4Utils = new SM4Utils();
String result = sm4Utils.encrypt(loginId + "" + stamp, "bankoftianjincom", "SM4");
log.info("=============apptransferforee9_token:"+result);
return result ;
}
%>

File diff suppressed because one or more lines are too long

@ -1,39 +0,0 @@
package weaver.interfaces.workflow.action.javacode;
import lombok.SneakyThrows;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetTrans;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import javax.servlet.ServletContext;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Online custom action interface
*/
public class Action20230907070937 extends BaseBean implements Action{
public static final String sql = "update workflow_requestlog set remark='测试流程该意见' where requestid=331343 and logid=19221";
/**
* After selecting aciton after the process path node, this method will be executed after the node is submitted.
*/
@Override
public String execute(RequestInfo request) {
RecordSetTrans rs = new RecordSetTrans();
try {
rs.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}
return Action.SUCCESS;
}
}

@ -3,14 +3,21 @@ package weaver.interfaces.workflow.action.javacode;
import com.dcfs.fts.common.error.FtpException;
import com.engine.custom.hg.util.HgUtils;
import com.engine.custom.sl.entity.*;
// import com.engine.util.SocketClientUtil;
import com.engine.util.SocketClientUtil;
import com.icbc.api.internal.apache.http.impl.cookie.S;
import com.weaver.general.Util;
import org.jsoup.Jsoup;
import weaver.conn.RecordSet;
import weaver.file.ImageFileManager;
import weaver.general.StringUtil;
import weaver.hrm.User;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.io.*;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.*;
@ -24,6 +31,7 @@ public class Action20230911062023 extends BaseBean implements Action {
*/
@Override
public String execute(RequestInfo request) {
writeLog("推送商旅节点后附加操作====>");
// if(error) {
// request.getRequestManager().setMessageid("90001");
// request.getRequestManager().setMessagecontent("System Abnormal Termination Process Submission");
@ -57,12 +65,19 @@ public class Action20230911062023 extends BaseBean implements Action {
String serviceXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service>";
serviceXML = serviceXML + Service_Header + Service_Body;
serviceXML = serviceXML + "</Service>";
String length = String.format("%08d", serviceXML.length());
writeLog("esbRequestHeaderXML====>"+serviceXML);
int byteArray = serviceXML.getBytes("UTF-8").length;
// Calculate the length of the byte array
// int bytelength = byteArray.length;
String length = String.format("%08d", byteArray);
writeLog("XMLlength"+ length);
serviceXML = length + serviceXML;
writeLog("serviceXML==="+ serviceXML);
serviceXML = new String(serviceXML.getBytes(StandardCharsets.UTF_8));
// serviceXML = new String(serviceXML.getBytes(StandardCharsets.UTF_8));
writeLog("UTF_8_serviceXML==="+ serviceXML);
SocketClientUtil scketClient = new SocketClientUtil("14.1.78.191",10149);
String send = scketClient.send(serviceXML);
}catch (Exception e){
e.printStackTrace();
writeLog("构建XML异常"+e.getMessage());
@ -132,6 +147,7 @@ public class Action20230911062023 extends BaseBean implements Action {
rs.execute("select * from " + tablename + " where requestid = " + requestId);
String mainid = "";
String fj = "";
String spdfj = "";
//表单数据
if (rs.next()) {
mainid = rs.getString("id");
@ -141,27 +157,46 @@ public class Action20230911062023 extends BaseBean implements Action {
toEsbBean.setOperatorNo(Util.null2String(rs.getString("jbrgh")));
//经办人姓名 id
toEsbBean.setOperatorName(Util.null2String(rs.getString("jbrxm")));
String lastname = new User(Util.getIntValue(toEsbBean.getOperatorName())).getLastname();
toEsbBean.setOperatorName(lastname);
//附件张数
toEsbBean.setAcsryNums(Util.null2String(rs.getString("fjzs")));
//报销金额
toEsbBean.setExpnsAmt(Util.null2String(rs.getString("bxjedwf")));
//报销事由
toEsbBean.setExpnsRsn(Util.null2String(rs.getString("bxsy")));
toEsbBean.setExpnsAmt(multiply100(Util.null2String(rs.getString("bxjedwf"))));
//报销事由 Jsoup.parse(htmlContent).text()
String expnsRsn = Util.null2String(rs.getString("bxsy"));
String text = Jsoup.parse(expnsRsn).text();
toEsbBean.setExpnsRsn(text);
//备注
toEsbBean.setRemark(Util.null2String(rs.getString("bz")));
fj = Util.null2String(rs.getString("fj"));
spdfj = Util.null2String(rs.getString("spdfj"));
// String formData = rs.getString("formData");
}
// 封装文件数组
//现在是id
List<String> fjids = Arrays.asList(fj.split(","));
ArrayList<acsryItem> acsryArray = new ArrayList<>();
for (String fjid : fjids) {
acsryItem acsryItem = new acsryItem();
acsryItem.setAcsryNm(getimgid(fjid,rs));
acsryArray.add(acsryItem);
List<String> fjids = new ArrayList<>( Arrays.asList(fj.split(",")));
//
writeLog("fjids"+fjids);
try {
if (!StringUtil.isEmpty(spdfj)){
fjids.add(spdfj);
}
ArrayList<acsryItem> acsryArray = new ArrayList<>();
for (String fjid : fjids) {
acsryItem acsryItem = new acsryItem();
acsryItem.setAcsryNm(getimgid(fjid,rs));
acsryArray.add(acsryItem);
}
toEsbBean.setAcsryArray(acsryArray);
//重新设置下附件张数为数组长度
toEsbBean.setAcsryNums(acsryArray.size()+"");
}catch (Exception e){
e.printStackTrace();
writeLog("fjidsException"+e);
}
toEsbBean.setAcsryArray(acsryArray);
return mainid;
}
@ -174,11 +209,11 @@ public class Action20230911062023 extends BaseBean implements Action {
// 支出类型
expenseItem.setExpndType(getpartyBuildCostCode(Util.getIntValue(rs.getString("zclx"),0)));
//不含税金额
expenseItem.setExclsvTaxAmt(Util.null2String(rs.getString("bhsjedwf")));
expenseItem.setExclsvTaxAmt(multiply100(Util.null2String(rs.getString("bhsjedwf"))));
// //不含税金额
expenseItem.setTaxAmt(Util.null2String(rs.getString("sedwf")));
expenseItem.setTaxAmt(multiply100(Util.null2String(rs.getString("sedwf"))));
//价税合计金额
expenseItem.setPrcTotAmt(Util.null2String(rs.getString("jshjjedwf")));
expenseItem.setPrcTotAmt(multiply100(Util.null2String(rs.getString("jshjjedwf"))));
//记账摘要
expenseItem.setAcctingAbstct("");
expenseArray.add(expenseItem);
@ -193,9 +228,9 @@ public class Action20230911062023 extends BaseBean implements Action {
while (rs.next()) {
JourneyInfo journeyInfo = new JourneyInfo();
// 开始日期
journeyInfo.setStartDate(Util.null2String(rs.getString("ksrq")));
journeyInfo.setStartDate(formatDate(Util.null2String(rs.getString("ksrq"))));
// 结束日期
journeyInfo.setEndDate(Util.null2String(rs.getString("jsrq")));
journeyInfo.setEndDate(formatDate(Util.null2String(rs.getString("jsrq"))));
// 出差天数
journeyInfo.setBsnTrpDays(Util.null2String(rs.getString("ccts")));
//行程路线
@ -238,10 +273,47 @@ public class Action20230911062023 extends BaseBean implements Action {
return dateFormat.format(currentDate);
}
public static void main(String[] args) {
public static String multiply100(String s) {
s = s.replace(",", ""); // 移除逗号
if (StringUtil.isEmpty(s)){
return "0";
}
BigDecimal value = new BigDecimal(s);
BigDecimal multipliedValue = value.multiply(new BigDecimal("100"));
int result = multipliedValue.intValue();
System.out.println(result); // 输出123456
return String.valueOf(result); // 输出123456
}
public static String formatDate(String input) {
// String input = "2023-09-20 19:29";
try {
// 使用SimpleDateFormat解析输入字符串
SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = datetimeFormat.parse(input);
// 使用另一个SimpleDateFormat对象格式化Date为所需的输出格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String output = dateFormat.format(date);
return output; // 输出: 2023-09-20
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static void main(String[] args) {
String htmlContent = "" ;
String plainText = Jsoup.parse(htmlContent).text();
System.out.println(plainText); // 输出: Hello, world!
}
}

@ -0,0 +1,54 @@
package weaver.interfaces.workflow.action.javacode;
import lombok.SneakyThrows;
import weaver.conn.RecordSetTrans;
import weaver.general.BaseBean;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;
public class Action20230914101926 extends BaseBean implements Action {
public static final String sql = "update workflow_requestlog set remark= ? where requestid = ? and logid = ? ";
@Override
public String execute(RequestInfo request) {
// RecordSetTrans rs = new RecordSetTrans();
RecordSetTrans rs = request.getRequestManager() .getRsTrans();
String requestId = request.getRequestid();
String tablename = request.getRequestManager().getBillTableName();
try {
rs.executeQuery("select * from " + tablename + " where requestid = " + requestId);
} catch (Exception e) {
writeLog("查询异常"+e.getMessage());
e.printStackTrace();
request.getRequestManager().setMessageid("90001");
request.getRequestManager().setMessagecontent("查询异常"+e.getMessage());
}
rs.next();
String logid = rs.getString("logid");
String requestid = rs.getString("request");
String remarkNew = rs.getString("remarkNew");
try {
writeLog("修改日志sql"+sql);
writeLog(logid );
writeLog(logid == null);
writeLog(requestid);
writeLog(requestid== null);
writeLog(remarkNew);
writeLog(remarkNew== null);
rs.executeUpdate(sql,remarkNew,requestid,logid);
writeLog("getCounts"+rs.getCounts());
} catch (Exception e) {
writeLog("修改异常"+e.getMessage());
e.printStackTrace();
request.getRequestManager().setMessageid("90001");
request.getRequestManager().setMessagecontent("修改异常"+e.getMessage());
}
return Action.SUCCESS;
}
public static void main(String[] args) {
}
}

@ -0,0 +1,139 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.hrm.company.DepartmentComInfo;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* Online custom action interface
*/
public class Action20230918061401 extends BaseBean implements Action {
/**
* After selecting aciton after the process path node, this method will be executed after the node is submitted.
*/
@Override
public String execute(RequestInfo request) {
try {
String insertsql = "INSERT INTO uf_tohgLog(REQUEST, CONTENT, ZT, ML, DDSJ, TSSJ, FJML, ZWID, FJID) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ? )";
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
//公文标题
String requestname = request.getRequestManager().getRequestname();
String requestId = request.getRequestid();
// 4获取表单名称
String tablename = request.getRequestManager().getBillTableName();
// 5查找表单内容
RecordSet rs = new RecordSet();
rs.execute("select * from " + tablename + " where requestid = " + requestId);
rs.next();
//是否推送合规 0 - 否 1 - 是
int isTohg = Util.getIntValue(rs.getString("tohg"), 1);
if (isTohg == 0){
return Action.SUCCESS;
}
//id表单主键
String mainid = rs.getString("id");
//公文编号
String fwwh = rs.getString("bh");
//发文部门名称
String ngbm = rs.getString("ngbm");
//成文时间
String cwrq = rs.getString("cwrq");
String ngr = rs.getString("ngr");
// String zw = rs.getString("zw"); //word格式
//生成的pdf
String zw = rs.getString("dwd");
String fj = rs.getString("fj");
User user = new User(Integer.parseInt(ngr));
//拼接数据
String subcompanyid = departmentComInfo.getSubcompanyid1(ngbm);
String departmentNames = departmentComInfo.getAllParentDepartmentBlankNames(ngbm, subcompanyid, "-");
departmentNames = "天津银行股份有限公司-"+departmentNames;
String context = "";
String flag = "|";
context = requestname + flag + fwwh + flag +departmentNames + flag + cwrq +flag+ user.getLoginid()+flag+user.getLastname()+flag;
//获取文件命
Map<String, String> fjName = getIdIMIDName(fj);
Map<String, String> zwName = getIdIMIDName(zw);
String fjStr = "";
String zwStr = "";
//附件
ArrayList<String> fileNameList = new ArrayList<>();
Set<Map.Entry<String, String>> entries = fjName.entrySet();
for (Map.Entry<String, String> entry : entries) {
String filename = entry.getValue();
if (fileNameList.contains(filename)){
String tepName= filename.contains(".")? filename.substring(0, filename.indexOf(".")) : "";
if(tepName!=null&&!"".equals(tepName)){
String extNameTemp = filename.contains(".")? filename.substring(filename.lastIndexOf(".") + 1) : "";
filename = tepName + "_"+entry.getKey()+"."+extNameTemp;
}
}else {
fileNameList.add(filename);
}
fjStr = fjStr + "&&"+ filename;
}
if (fjStr.startsWith("&&")){
fjStr = fjStr.substring(2);
}
fileNameList.clear();
//正文
Set<Map.Entry<String, String>> zwEntries = zwName.entrySet();
for (Map.Entry<String, String> entry : zwEntries) {
String filename = entry.getValue();
if (fileNameList.contains(filename)){
String tepName= filename.contains(".")? filename.substring(0, filename.indexOf(".")) : "";
if(tepName!=null&&!"".equals(tepName)){
String extNameTemp = filename.contains(".")? filename.substring(filename.lastIndexOf(".") + 1) : "";
filename = tepName + "_"+entry.getKey()+"."+extNameTemp;
}
}else {
fileNameList.add(filename);
}
zwStr = zwStr + "&&" + filename;
}
if (zwStr.startsWith("&&")){
zwStr = zwStr.substring(2);
}
context = context+zwStr+flag+fjStr+flag+requestId+flag;
Date date = new Date();
String time = new SimpleDateFormat("yyyy-MM-dd hh:mm").format(date);
rs.executeUpdate(insertsql,requestId,context,0,null,time,null,null,zw,fj);
} catch (Exception e) {
writeLog(e.getMessage()+ "||||||异常流程id==="+request.getRequestid());
e.printStackTrace();
//不管是否推送成功,都返回成功,不影响流程流转
return Action.SUCCESS;
}
// boolean error = false;
// if (error) {
// request.getRequestManager().setMessageid("90001");
// request.getRequestManager().setMessagecontent("System Abnormal Termination Process Submission");
// }
return Action.SUCCESS;
}
public static Map<String,String> getIdIMIDName(String ids ){
Map<String,String> idimageIDMap = new HashMap<>();
String sql = "select docid,df.imagefilename filename from docimagefile df left join imagefile imf on df.imagefileid = imf.imagefileid where DOCID in ("+ids+")";
RecordSet recordSet = new RecordSet();
recordSet.execute(sql);
while (recordSet.next()){
String docid = Util.null2String(recordSet.getString("docid"));
String filename = Util.null2String(recordSet.getString("filename"));
idimageIDMap.put(docid,filename);
}
return idimageIDMap;
};
}

@ -0,0 +1,162 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.general.Util,weaver.conn.RecordSet" %>
<%@ page import="weaver.integration.logging.Logger"%>
<%@ page import="weaver.integration.logging.LoggerFactory"%>
<%@ page import="weaver.ofs.bean.OfsSysInfo" %>
<%@ page import="weaver.ofs.service.OfsSysInfoService" %>
<%@ page import="weaver.ofs.manager.utils.OfsTodoDataUtils" %>
<%@ page import="java.util.Map" %>
<%@ page import="weaver.ofs.bean.OfsTodoData" %>
<%@ page import="weaver.ofs.dao.OfsRequestBaseDao" %>
<%@ page import="org.apache.commons.beanutils.BeanUtils" %>
<%@ page import="org.apache.commons.lang3.StringUtils" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="weaver.interfaces.sso.cas.CASLoginUtil" %>
<%@ page import="weaver.hrm.User" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ include file="/systeminfo/init_wev8.jsp" %>
<%
Logger log = LoggerFactory.getLogger();
//补偿 认证 cas ,如果统一认证 开启 自动补偿刷新
CASLoginUtil.WxDingDingLoginSSO(request , response) ;
RecordSet rs = new RecordSet();
String type = request.getParameter("type") ;
String sysId = request.getParameter("sysId") ;
String workflowId = request.getParameter("workflowId") ;
String flowId = request.getParameter("flowId") ;
if ("".equals(sysId) || "".equals(type) || "".equals(workflowId) || "".equals(flowId)){
out.println(" parameter error ");
return;
}
int userId = user.getUID() ;
Map<String, String[]> paramMap =request.getParameterMap() ;
OfsSysInfoService ofsSysInfoService = new OfsSysInfoService() ;
OfsSysInfo ofsSysInfo = ofsSysInfoService.getOneBean(Util.getIntValue(sysId , 0)) ;
if (ofsSysInfo == null || "".equals(Util.null2String(ofsSysInfo.getSysid()))){
log.error("根据标识:"+sysId+"未查询到数据");
out.println("根据标识:"+sysId+"未查询到数据");
return;
}
OfsTodoDataUtils todoDataUtils = new OfsTodoDataUtils() ;
OfsRequestBaseDao ofsRequestBaseDao = new OfsRequestBaseDao() ;
OfsTodoData todoData = null;
String requestId = ofsRequestBaseDao.getRequestid(ofsSysInfo.getSyscode() , Util.getIntValue(workflowId , 0) , flowId , rs.getDBType()) ;
if(!"".equals(Util.null2String(requestId)))
todoData = todoDataUtils.getTodoData(requestId , Util.null2String(userId)) ;
if (todoData == null) {
todoData = this.getTodoData(flowId, workflowId, sysId, user);
if (todoData == null) {
log.error("根据标识:" + ofsSysInfo.getSyscode() + " workflowId:" + workflowId + " flowId: " + flowId + "未查询到数据");
out.println("根据标识:" + ofsSysInfo.getSyscode() + " workflowId:" + workflowId + " flowId: " + flowId + "未查询到数据");
return;
}
}
String toURL = todoDataUtils.getURL("app".equalsIgnoreCase(type)? "1":"0" , ofsSysInfo , todoData , request , paramMap) ;
new BaseBean().writeLog("跳转URL:" + toURL);
new BaseBean().writeLog("跳转userid:" + userId);
new BaseBean().writeLog("跳转parma:" + paramMap);
log.warn("跳转URL:" + toURL);
rs.executeUpdate("update ofs_todo_data set viewtype=1 where requestid=? and userid=? and islasttimes=1" , requestId , userId);
rs.executeUpdate("update ofs_done_data set viewtype=1 where requestid=? and userid=? " , requestId , userId);
rs.executeUpdate("delete from SysPoppupRemindInfoNew where userid = ? and requestid = ?", userId, requestId);
response.sendRedirect(toURL);
%>
<%!
Logger log = LoggerFactory.getLogger();
/**
* 获取 异构系统流程数据
* @return
*/
private OfsTodoData getTodoData(String flowId ,String workflowId , String sysId ,User user ){
RecordSet rs = new RecordSet() ;
List<String> userList = new ArrayList<>();
userList.add(user.getUID() + "");
if (!"".equals(Util.null2String(user.getBelongtoids())))
userList.add(user.getBelongtoids());
//开启 主次账号 ,并且有多个用户
rs.executeQuery("select * from ofs_todo_data where flowid=? and workflowid=? and sysid=? and userid in ( "+String.join("," , userList)+" )",
flowId , workflowId , sysId);
OfsTodoData ofsTodoData = this.putValue2Bean(rs) ;
if (StringUtils.isBlank(ofsTodoData.getFlowid())){
rs.executeQuery("select * from ofs_done_data where flowid=? and workflowid=? and sysid=? and userid in ( "+String.join("," , userList)+" )",
flowId , workflowId , sysId);
OfsTodoData ofsDoneData = this.putValue2Bean(rs);
if (StringUtils.isBlank(ofsDoneData.getFlowid())){
log.error("flowId : "+ flowId +" workflowId : "+ workflowId +" sysId : "+ sysId +" userId:"+user.getUID() + " 没有对应数据");
return null ;
}
log.error("ofsTodoData : "+ JSONObject.toJSONString(ofsDoneData));
return ofsDoneData ;
}
log.error("ofsTodoData : "+ JSONObject.toJSONString(ofsTodoData));
return ofsTodoData ;
}
/**
* 将待办信息从数据库查询出来放入bean中
* @param rs
*/
private OfsTodoData putValue2Bean(RecordSet rs) {
rs.next();
OfsTodoData ofsTodoData = new OfsTodoData();
try{
BeanUtils.setProperty(ofsTodoData,"id", Util.getIntValue(rs.getString("id"), 0)+"");
BeanUtils.setProperty(ofsTodoData,"sysid", Util.getIntValue(rs.getString("sysid"), 0)+"");
BeanUtils.setProperty(ofsTodoData,"syscode", Util.null2String(rs.getString("syscode"), ""));
BeanUtils.setProperty(ofsTodoData,"requestid", Util.null2String(rs.getString("requestid")));
BeanUtils.setProperty(ofsTodoData,"flowid", Util.null2String(rs.getString("flowid")));
// BeanUtils.setProperty(ofsTodoData,"flowguid", Util.null2String(rs.getString("flowguid")));
BeanUtils.setProperty(ofsTodoData,"requestname", Util.null2String(rs.getString("requestname")));
BeanUtils.setProperty(ofsTodoData,"workflowname", Util.null2String(rs.getString("workflowname")));
BeanUtils.setProperty(ofsTodoData,"workflowid", Util.null2String(rs.getString("workflowid")));
BeanUtils.setProperty(ofsTodoData,"nodename", Util.null2String(rs.getString("nodename")));
BeanUtils.setProperty(ofsTodoData,"isremark", Util.null2String(rs.getString("isremark")));
BeanUtils.setProperty(ofsTodoData,"viewtype", Util.null2String(rs.getString("viewtype")));
BeanUtils.setProperty(ofsTodoData,"islasttimes", Util.null2String(rs.getString("islasttimes")));
BeanUtils.setProperty(ofsTodoData,"iscomplete", Util.null2String(rs.getString("iscomplete")));
BeanUtils.setProperty(ofsTodoData,"hrmtransrule", Util.null2String(rs.getString("hrmtransrule")));
BeanUtils.setProperty(ofsTodoData,"pcurl", Util.null2String(rs.getString("pcurl")));
BeanUtils.setProperty(ofsTodoData,"appurl", Util.null2String(rs.getString("appurl")));
BeanUtils.setProperty(ofsTodoData,"creator", Util.null2String(rs.getString("creator")));
BeanUtils.setProperty(ofsTodoData,"creatorid", Util.null2String(rs.getString("creatorid")));
BeanUtils.setProperty(ofsTodoData,"createdate", Util.null2String(rs.getString("createdate")));
BeanUtils.setProperty(ofsTodoData,"createtime", Util.null2String(rs.getString("createtime")));
BeanUtils.setProperty(ofsTodoData,"userid", Util.null2String(rs.getString("userid")));
BeanUtils.setProperty(ofsTodoData,"receiver", Util.null2String(rs.getString("receiver")));
BeanUtils.setProperty(ofsTodoData,"receivedate", Util.null2String(rs.getString("receivedate")));
BeanUtils.setProperty(ofsTodoData,"receivetime", Util.null2String(rs.getString("receivetime")));
BeanUtils.setProperty(ofsTodoData,"modifier", Util.null2String(rs.getString("modifier")));
BeanUtils.setProperty(ofsTodoData,"modifydate", Util.null2String(rs.getString("modifydate")));
BeanUtils.setProperty(ofsTodoData,"modifytime", Util.null2String(rs.getString("modifytime")));
BeanUtils.setProperty(ofsTodoData,"pcurlsrc", Util.null2String(rs.getString("pcurlsrc")));
BeanUtils.setProperty(ofsTodoData,"appurlsrc", Util.null2String(rs.getString("appurlsrc")));
BeanUtils.setProperty(ofsTodoData,"requestlevel", Util.null2String(rs.getString("requestlevel")));
BeanUtils.setProperty(ofsTodoData,"receivets", Util.null2String(rs.getString("receivets")));
BeanUtils.setProperty(ofsTodoData,"pcurlsrc", Util.null2String(rs.getString("pcurlsrc")));
BeanUtils.setProperty(ofsTodoData,"appurlsrc", Util.null2String(rs.getString("appurlsrc")));
return ofsTodoData;
}catch(Exception e){
log.error(e);
return null;
}
}
%>

@ -0,0 +1,27 @@
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.conn.RecordSetTrans" %>
<%@ page import="com.engine.workflow.util.CommonUtil" %>
<%@ page import="weaver.hrm.User" %>
<%@ page import="com.engine.workflow.util.WorkflowDimensionUtils" %>
<%@ page import="com.cloudstore.dev.api.util.Util_TableMap" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="weaver.workflow.workflow.WorkflowComInfo" %>
<%@ page import="weaver.workflow.workflow.WorkflowRequestComInfo" %>
<%@ page import="weaver.workflow.request.WFUrgerManager" %>
<%@ page import="java.util.Calendar" %>
<%@ page import="util.DataTransUtil" %>
<%@ page import="weaver.hrm.HrmUserVarify" %>
<%@ page import="com.api.browser.service.BrowserValueInfoService" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="com.alibaba.fastjson.JSON" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%
out.println("3333333333333333333" );
%>
Loading…
Cancel
Save