1111111111111111111111111111111111

master
任广鹏 8 months ago
parent 4e11b07bc6
commit 09ec3980f0

@ -16,14 +16,21 @@ public class Client {
// 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 = "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 = "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 = "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 = "<?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>"; // String str = "<?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-202401120032</oaTrvlBnsExpnsAcctNo><apprvrNo>10110001</apprvrNo><apprvrName>测试审批人</apprvrName><flowStatus>2</flowStatus><sgntrOpn>驳回测试2</sgntrOpn></request></Service_Body></Service>";
// String str = "00000597<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>1010157000000001757</service_sn><system_id>0258</system_id><requester_id>0157</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20231018135840</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720231018000000001757</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><path>todo</path><method>getCount2</method><args><entry><key>userNum</key><value>10110567</value></entry></args></request></Service_Body></Service>"; // String str = "00000597<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>1010157000000001757</service_sn><system_id>0258</system_id><requester_id>0157</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20231018135840</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720231018000000001757</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><path>todo</path><method>getCount2</method><args><entry><key>userNum</key><value>10110567</value></entry></args></request></Service_Body></Service>";
// String str = "00000596<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>1010157000000001757</service_sn><system_id>0258</system_id><requester_id>0157</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20231018135840</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720231018000000001757</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><path>todo</path><method>getCount</method><args><entry><key>userNum</key><value>10110567</value></entry></args></request></Service_Body></Service>"; // String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>1010157000000001757</service_sn><system_id>0258</system_id><requester_id>0157</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20231018135840</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720231018000000001757</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><path>todo</path><method>getCount2</method><args><entry><key>userNum</key><value>10110567</value></entry></args></request></Service_Body></Service>";
String str = "00000664<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>000000000003</service_sn><system_id>0258</system_id><requester_id>0170</requester_id><branch_id>951101</branch_id><channel_id>0170</channel_id><service_time>20240329082246</service_time><need_request>true</need_request><SvcCd>500120043</SvcCd><SvcScn>01</SvcScn><BnkSrlNo>017020240329000000000003</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><oaTrvlBnsExpnsAcctNo>FHBTSQD-202403250001</oaTrvlBnsExpnsAcctNo><apprvrNo>11010036</apprvrNo><apprvrName>赵圣熙</apprvrName><flowStatus>0</flowStatus><sgntrOpn>驳回测试</sgntrOpn></request></Service_Body></Service>"; // ; String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>1010157010000003984</service_sn><system_id>0258</system_id><requester_id>1202</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20241021150459</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720241021010000003984</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><workflowId>502</workflowId><sqjybm>3497</sqjybm><sqjyr>10110610</sqjyr><lxdh>1</lxdh><jydaml>1</jydaml><lymd>1</lymd><jynr>1</jynr><jyfs>1</jyfs><yjghsj>2024-10-22</yjghsj><sqr></sqr><sqbm></sqbm></request></Service_Body></Service>";
// String str = "00000664<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>000000000003</service_sn><system_id>0258</system_id><requester_id>0170</requester_id><branch_id>951101</branch_id><channel_id>0170</channel_id><service_time>20240329082246</service_time><need_request>true</need_request><SvcCd>500120043</SvcCd><SvcScn>01</SvcScn><BnkSrlNo>017020240329000000000003</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><oaTrvlBnsExpnsAcctNo>FHBTSQD-202403250001</oaTrvlBnsExpnsAcctNo><apprvrNo>11010036</apprvrNo><apprvrName>赵圣熙</apprvrName><flowStatus>0</flowStatus><sgntrOpn>驳回测试</sgntrOpn></request></Service_Body></Service>"; // ;
// System.out.println(XMLUtils.parseXMLToMap(str)); // System.out.println(XMLUtils.parseXMLToMap(str));
// Map<String, String> stringStringMap = XMLUtils.parseXMLToMap(str); // Map<String, String> stringStringMap = XMLUtils.parseXMLToMap(str);
// System.out.println(stringStringMap); // System.out.println(stringStringMap);
System.out.println(str.getBytes(StandardCharsets.UTF_8).length); System.out.println(str.getBytes(StandardCharsets.UTF_8).length);
String length = String.format("%08d", str.length());
str = length + str;
str = new String(str.getBytes(StandardCharsets.UTF_8));
System.out.println(str);
// System.exit(0); // System.exit(0);
// while (true) { // while (true) {
Socket socket = null; Socket socket = null;

@ -0,0 +1,7 @@
package com;
public class Main {
public static void main(String[] args) {
System.out.println(1111);
}
}

@ -1,5 +1,6 @@
package com.customization.hrm.dept; package com.customization.hrm.dept;
import com.alibaba.fastjson.JSONObject;
import com.api.hrm.service.HrmUserIconService; import com.api.hrm.service.HrmUserIconService;
import com.api.hrm.service.impl.HrmUserIconServiceImpl; import com.api.hrm.service.impl.HrmUserIconServiceImpl;
import com.engine.common.util.ServiceUtil; import com.engine.common.util.ServiceUtil;
@ -25,11 +26,12 @@ import weaver.hrm.job.JobTitlesComInfo;
import weaver.hrm.resource.ResourceComInfo; import weaver.hrm.resource.ResourceComInfo;
@CommandDynamicProxy(target = GetOrganizationInfoCmd.class,desc="") @CommandDynamicProxy(target = GetOrganizationInfoCmd.class, desc = "")
public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String, Object>> { public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String, Object>> {
private Logger log = Logger.getLogger(this.getClass()); private Logger log = Logger.getLogger(this.getClass());
@Override @Override
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) { public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
GetOrganizationInfoCmd cmd = (GetOrganizationInfoCmd) targetCommand; GetOrganizationInfoCmd cmd = (GetOrganizationInfoCmd) targetCommand;
@ -37,17 +39,28 @@ public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String
Map<String, Object> result = nextExecute(targetCommand); Map<String, Object> result = nextExecute(targetCommand);
Map<String, Object> params = cmd.getParams(); Map<String, Object> params = cmd.getParams();
Map<String, Object> resultNew = cmd.getParams(); Map<String, Object> resultNew = cmd.getParams();
long startTime=System.currentTimeMillis(); long startTime = System.currentTimeMillis();
//writeLog("进入getOrganizationInfo方法时间===="+startTime); // log.info("进入getOrganizationInfo方法时间===="+startTime);
log.info("params====" + JSONObject.toJSONString(params));
log.info("result====" + JSONObject.toJSONString(result));
String cmdType = Util.null2String(params.get("cmd")); String cmdType = Util.null2String(params.get("cmd"));
String fetch_mine = Util.null2String(params.get("fetch_mine")); String fetch_mine = Util.null2String(params.get("fetch_mine"));
// new BaseBean().writeLog("fetch_mine",fetch_mine); new BaseBean().writeLog("fetch_mine", fetch_mine);
if(cmdType.equals("getOrganizationInfo") && "0".equals(fetch_mine)){ if (cmdType.equals("getOrganizationInfo") && "0".equals(fetch_mine)) {
resultNew = this.extracted(params,result);; resultNew = this.extracted(params, result);
}else {
} else if (cmdType.equals("searchResourceList")) {
// List<Map<String, Object>> userlist = (List<Map<String, Object>>)result.get("userlist");
// if (userlist.size()>0){
// Map<String, Object> user = userlist.get(0);
// String[] strings = {"111111111"};
// user.put("deptlist",strings);
// }
resultNew = result;
} else {
resultNew = result; resultNew = result;
} }
log.info("resultNew====" + JSONObject.toJSONString(resultNew));
return resultNew; return resultNew;
} }
@ -61,7 +74,7 @@ public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String
User user = new User(Integer.parseInt(userid)); User user = new User(Integer.parseInt(userid));
String type = "";//节点类型 1 com2 subcom, 3 dept String type = "";//节点类型 1 com2 subcom, 3 dept
String tmpStr = id; String tmpStr = id;
if(id.length()>0) { if (id.length() > 0) {
if (id.startsWith("-")) { if (id.startsWith("-")) {
tmpStr = id.replace("-", ""); tmpStr = id.replace("-", "");
type = tmpStr.substring(0, 1); type = tmpStr.substring(0, 1);
@ -73,82 +86,81 @@ public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String
if (type.equals("1")) { if (type.equals("1")) {
type = "com"; type = "com";
id="0"; id = "0";
}else{ } else {
type = type.equals("2") ? "com" : "dept"; type = type.equals("2") ? "com" : "dept";
} }
} }
RecordSet recordSet = new RecordSet(); RecordSet recordSet = new RecordSet();
ArrayList<String> idlist = new ArrayList<>(); ArrayList<String> idlist = new ArrayList<>();
Map<String,String> bmIdHrmMap = new HashMap<>(); Map<String, String> bmIdHrmMap = new HashMap<>();
ArrayList<String> branchDeptidList = new ArrayList<>(); ArrayList<String> branchDeptidList = new ArrayList<>();
//查询分部下 //查询分部下
if ("com".equals(type)) { if ("com".equals(type)) {
recordSet.executeQuery("select BM,KJRY,FB from uf_txlbxsbm where fb = ?",id); recordSet.executeQuery("select BM,KJRY,FB from uf_txlbxsbm where fb = ?", id);
while (recordSet.next()){ while (recordSet.next()) {
String bm = Util.null2String(recordSet.getString("BM")); String bm = Util.null2String(recordSet.getString("BM"));
String kjry = Util.null2String(recordSet.getString("KJRY")); String kjry = Util.null2String(recordSet.getString("KJRY"));
// String fb = Util.null2String(recordSet.getString("FB")); // String fb = Util.null2String(recordSet.getString("FB"));
idlist.add(bm); idlist.add(bm);
bmIdHrmMap.put(bm,kjry); bmIdHrmMap.put(bm, kjry);
} }
} }
//查询部门下 //查询部门下
if ("dept".equals(type)) { if ("dept".equals(type)) {
recordSet.executeQuery("select BM,KJRY,FB from uf_txlbxsbm where SJBM = ?",id); recordSet.executeQuery("select BM,KJRY,FB from uf_txlbxsbm where SJBM = ?", id);
while (recordSet.next()){ while (recordSet.next()) {
String bm = Util.null2String(recordSet.getString("BM")); String bm = Util.null2String(recordSet.getString("BM"));
String kjry = Util.null2String(recordSet.getString("KJRY")); String kjry = Util.null2String(recordSet.getString("KJRY"));
// String fb = Util.null2String(recordSet.getString("FB")); // String fb = Util.null2String(recordSet.getString("FB"));
idlist.add(bm); idlist.add(bm);
bmIdHrmMap.put(bm,kjry); bmIdHrmMap.put(bm, kjry);
} }
recordSet.executeQuery("select ZBM ,kjry from uf_branchdept t1 left join uf_branchdept_dt1 d1 on t1.id = d1.mainid " + recordSet.executeQuery("select ZBM ,kjry from uf_branchdept t1 left join uf_branchdept_dt1 d1 on t1.id = d1.mainid " +
" where t1.DEPT = ?",id); " where t1.DEPT = ?", id);
while (recordSet.next()){ while (recordSet.next()) {
String bm = Util.null2String(recordSet.getString("ZBM")); String bm = Util.null2String(recordSet.getString("ZBM"));
String kjry = Util.null2String(recordSet.getString("KJRY")); String kjry = Util.null2String(recordSet.getString("KJRY"));
// String fb = Util.null2String(recordSet.getString("FB")); // String fb = Util.null2String(recordSet.getString("FB"));
idlist.add(bm); idlist.add(bm);
bmIdHrmMap.put(bm,kjry); bmIdHrmMap.put(bm, kjry);
branchDeptidList.add(bm); branchDeptidList.add(bm);
} }
} }
List<Map<String,Object>> departmentList = (List<Map<String, Object>>)(resultNew.get("department")); List<Map<String, Object>> departmentList = (List<Map<String, Object>>) (resultNew.get("department"));
List<Map<String,Object>> departmentListNew = new ArrayList<>(); List<Map<String, Object>> departmentListNew = new ArrayList<>();
//过滤建模表里的部门 //过滤建模表里的部门
for (Map<String, Object> department : departmentList){ for (Map<String, Object> department : departmentList) {
String deptid = department.get("id").toString() ; String deptid = department.get("id").toString();
deptid = deptid.substring(1, deptid.length()); deptid = deptid.substring(1, deptid.length());
if (!idlist.contains(deptid)){ if (!idlist.contains(deptid)) {
departmentListNew.add(department); departmentListNew.add(department);
}else { } else {
String kjry = bmIdHrmMap.get(deptid); String kjry = bmIdHrmMap.get(deptid);
List<String> kjrylist = Arrays.asList(kjry.split(",")); List<String> kjrylist = Arrays.asList(kjry.split(","));
if (kjrylist.contains(userid)){ if (kjrylist.contains(userid)) {
departmentListNew.add(department); departmentListNew.add(department);
} }
} }
} }
resultNew.put("department",departmentListNew); resultNew.put("department", departmentListNew);
//添加明细里部门的人员 //添加明细里部门的人员
List<Map<String,Object>> userlist = (List<Map<String, Object>>)(resultNew.get("userlist")); List<Map<String, Object>> userlist = (List<Map<String, Object>>) (resultNew.get("userlist"));
// baseBean.writeLog("人员子部门====",branchDeptidList); // baseBean.writeLog("人员子部门====",branchDeptidList);
for (String deptid : branchDeptidList) { for (String deptid : branchDeptidList) {
List<Map<String,Object>> resourceList = this.getResourceList(deptid,user,params); List<Map<String, Object>> resourceList = this.getResourceList(deptid, user, params);
// baseBean.writeLog("子部门人员列表====",resourceList); // baseBean.writeLog("子部门人员列表====",resourceList);
userlist.addAll(resourceList); userlist.addAll(resourceList);
} }
// 使用Comparator对List中的Map进行排序 // 使用Comparator对List中的Map进行排序
Collections.sort(userlist, Comparator.comparingDouble(m -> (Double)m.get("showorder"))); Collections.sort(userlist, Comparator.comparingDouble(m -> (Double) m.get("showorder")));
resultNew.put("userlist", userlist);
resultNew.put("userlist",userlist);
return resultNew; return resultNew;
}catch (Exception e){ } catch (Exception e) {
new BaseBean().writeLog(e.getMessage()); new BaseBean().writeLog(e.getMessage());
e.printStackTrace(); e.printStackTrace();
return result; return result;
@ -161,12 +173,12 @@ public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String
* @param departmentId * @param departmentId
* @return * @return
*/ */
private List<Map<String,Object>> getResourceList(String departmentId , User user , Map<String, Object> params){ private List<Map<String, Object>> getResourceList(String departmentId, User user, Map<String, Object> params) {
List<Map<String,Object>> resourceList = new ArrayList<>(); List<Map<String, Object>> resourceList = new ArrayList<>();
Map<String,Object> resourceInfo = null; Map<String, Object> resourceInfo = null;
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
String sql = ""; String sql = "";
try{ try {
DepartmentComInfo departmentComInfo = new DepartmentComInfo(); DepartmentComInfo departmentComInfo = new DepartmentComInfo();
ResourceComInfo resourceComInfo = new ResourceComInfo(); ResourceComInfo resourceComInfo = new ResourceComInfo();
JobTitlesComInfo jobTitlesComInfo = new JobTitlesComInfo(); JobTitlesComInfo jobTitlesComInfo = new JobTitlesComInfo();
@ -175,74 +187,74 @@ public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String
AppDetachComInfo adci = new AppDetachComInfo(user); AppDetachComInfo adci = new AppDetachComInfo(user);
sql = " select hr.id, hr.lastname, hr.sex, hr.managerid, hr.jobtitle, hr.status, hr.dsporder, hr.messagerurl, hr.pinyinlastname, hr.accounttype, hr.belongto " sql = " select hr.id, hr.lastname, hr.sex, hr.managerid, hr.jobtitle, hr.status, hr.dsporder, hr.messagerurl, hr.pinyinlastname, hr.accounttype, hr.belongto "
+ " from hrmresource hr, hrmdepartment t2 " + " from hrmresource hr, hrmdepartment t2 "
+ " where hr.departmentid=t2.id and t2.id=?" ; + " where hr.departmentid=t2.id and t2.id=?";
String sqlwhere =" and hr.status in (0,1,2,3)"; String sqlwhere = " and hr.status in (0,1,2,3)";
if(adci.isUseAppDetach()){ if (adci.isUseAppDetach()) {
String appdetawhere = adci.getScopeSqlByHrmResourceSearch(user.getUID()+"",true,"resource_hr"); String appdetawhere = adci.getScopeSqlByHrmResourceSearch(user.getUID() + "", true, "resource_hr");
String tempstr= (appdetawhere!=null&&!"".equals(appdetawhere)?(" and " + appdetawhere):""); String tempstr = (appdetawhere != null && !"".equals(appdetawhere) ? (" and " + appdetawhere) : "");
sqlwhere+=tempstr; sqlwhere += tempstr;
} }
if(sqlwhere.length()>0)sql+=sqlwhere; if (sqlwhere.length() > 0) sql += sqlwhere;
sql += " order by hr.dsporder "; sql += " order by hr.dsporder ";
rs.executeQuery(sql,departmentId); rs.executeQuery(sql, departmentId);
while (rs.next()) { while (rs.next()) {
String userid = rs.getString("id"); String userid = rs.getString("id");
String lastname = Util.formatMultiLang(rs.getString("lastname"),""+user.getLanguage()); String lastname = Util.formatMultiLang(rs.getString("lastname"), "" + user.getLanguage());
String accounttype = rs.getString("accounttype"); String accounttype = rs.getString("accounttype");
String belongto = "1".equals(accounttype)?Util.null2String(rs.getString("belongto")):""; String belongto = "1".equals(accounttype) ? Util.null2String(rs.getString("belongto")) : "";
String belongto_name = Util.formatMultiLang(resourceComInfo.getLastname(belongto),""+user.getLanguage()); String belongto_name = Util.formatMultiLang(resourceComInfo.getLastname(belongto), "" + user.getLanguage());
String pinyinlastname = Util.null2String(rs.getString("pinyinlastname")); String pinyinlastname = Util.null2String(rs.getString("pinyinlastname"));
String sex = Util.null2String(rs.getString("sex"),"0"); String sex = Util.null2String(rs.getString("sex"), "0");
String managerid = rs.getString("managerid"); String managerid = rs.getString("managerid");
String managername = Util.formatMultiLang(managerid.length() > 0 ? resourceComInfo.getResourcename(managerid) : "",""+user.getLanguage()); String managername = Util.formatMultiLang(managerid.length() > 0 ? resourceComInfo.getResourcename(managerid) : "", "" + user.getLanguage());
String jobtitle = rs.getString("jobtitle"); String jobtitle = rs.getString("jobtitle");
String jobtitlename = Util.formatMultiLang(jobTitlesComInfo.getJobTitlesname(jobtitle),""+user.getLanguage()); String jobtitlename = Util.formatMultiLang(jobTitlesComInfo.getJobTitlesname(jobtitle), "" + user.getLanguage());
String status = rs.getString("status"); String status = rs.getString("status");
String showorder = Util.toDecimalDigits(rs.getString("dsporder"),2); String showorder = Util.toDecimalDigits(rs.getString("dsporder"), 2);
String messagerurl = rs.getString("messagerurl"); String messagerurl = rs.getString("messagerurl");
resourceInfo = new HashMap<>(); resourceInfo = new HashMap<>();
resourceInfo.put("userid",userid); resourceInfo.put("userid", userid);
resourceInfo.put("name",lastname); resourceInfo.put("name", lastname);
if(enable_main_account){ if (enable_main_account) {
resourceInfo.put("main_base_user_id",belongto ); resourceInfo.put("main_base_user_id", belongto);
resourceInfo.put("main_base_user_name",belongto_name); resourceInfo.put("main_base_user_name", belongto_name);
} }
resourceInfo.put("manager_id",managerid); resourceInfo.put("manager_id", managerid);
resourceInfo.put("manager_name",managername); resourceInfo.put("manager_name", managername);
resourceInfo.put("position",jobtitlename); resourceInfo.put("position", jobtitlename);
resourceInfo.put("status",status); resourceInfo.put("status", status);
resourceInfo.put("showorder",showorder); resourceInfo.put("showorder", showorder);
resourceInfo.put("gender",Util.getIntValue(sex)); resourceInfo.put("gender", Util.getIntValue(sex));
resourceInfo.put("base_user_id",userid); resourceInfo.put("base_user_id", userid);
resourceInfo.put("base_user_name",lastname); resourceInfo.put("base_user_name", lastname);
resourceInfo.put("name_simple_pingyin",pinyinlastname); resourceInfo.put("name_simple_pingyin", pinyinlastname);
resourceInfo.put("name_full_pingyin",pinyinlastname); resourceInfo.put("name_full_pingyin", pinyinlastname);
resourceInfo.put("guangliyuanxiashu",pinyinlastname); resourceInfo.put("guangliyuanxiashu", pinyinlastname);
resourceInfo.put("base_name_simple_pingyin",pinyinlastname); resourceInfo.put("base_name_simple_pingyin", pinyinlastname);
resourceInfo.put("base_name_full_pingyin",pinyinlastname); resourceInfo.put("base_name_full_pingyin", pinyinlastname);
Map<String,Object> avatar = new HashMap<>();//头像信息 Map<String, Object> avatar = new HashMap<>();//头像信息
params.put("userId",userid); params.put("userId", userid);
Map<String,Object> userIconInfo = ((HrmUserIconService) ServiceUtil.getService(HrmUserIconServiceImpl.class, user)).getUserIcon(params,user); Map<String, Object> userIconInfo = ((HrmUserIconService) ServiceUtil.getService(HrmUserIconServiceImpl.class, user)).getUserIcon(params, user);
String media_id = userIconInfo.get("messagerurl").toString(); String media_id = userIconInfo.get("messagerurl").toString();
//这种格式得手机端显示不出来,取默认设置图片 //这种格式得手机端显示不出来,取默认设置图片
if(media_id.startsWith("/weaver/weaver.file.FileDownload")){ if (media_id.startsWith("/weaver/weaver.file.FileDownload")) {
media_id = userIconInfo.get("defaultmessagerurl").toString(); media_id = userIconInfo.get("defaultmessagerurl").toString();
}else if(messagerurl.length()>0){ } else if (messagerurl.length() > 0) {
String filePath = GCONST.getRootPath() + media_id; String filePath = GCONST.getRootPath() + media_id;
File file = new File(filePath); File file = new File(filePath);
if(!file.exists()){ if (!file.exists()) {
media_id = userIconInfo.get("defaultmessagerurl").toString(); media_id = userIconInfo.get("defaultmessagerurl").toString();
} }
} }
resourceInfo.put("avatar",avatar); resourceInfo.put("avatar", avatar);
avatar.put("default",""); avatar.put("default", "");
avatar.put("show_name", userIconInfo.get("shortname").toString()); avatar.put("show_name", userIconInfo.get("shortname").toString());
avatar.put("show_color",userIconInfo.get("background").toString()); avatar.put("show_color", userIconInfo.get("background").toString());
avatar.put("media_id",media_id); avatar.put("media_id", media_id);
resourceList.add(resourceInfo); resourceList.add(resourceInfo);
} }
}catch (Exception e){ } catch (Exception e) {
new BaseBean().writeLog(e); new BaseBean().writeLog(e);
} }
// new BaseBean().writeLog("resourceList",resourceList); // new BaseBean().writeLog("resourceList",resourceList);

@ -485,6 +485,7 @@ public class WorkflowToDocCus {
bw.close(); bw.close();
in.close(); in.close();
InputStream inputStream = null; InputStream inputStream = null;
byte[] buffer = null; byte[] buffer = null;
File file = new File(htmlname); File file = new File(htmlname);

@ -290,19 +290,29 @@ public class SendingPushArchivesService {
String imageFileName = filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile; String imageFileName = filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile;
log.info("生成清稿前痕迹路径:{}", imageFileName); log.info("生成清稿前痕迹路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName); imageFileName = ArchivesUtil.codeUtf8(imageFileName);
InputStream pdfinputStream = null;
try { try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
String jsonStr = ArchivesUtil.callApi(Url, file); int pdfimggeid = ArchivesUtil.docConvert2Pdf(imageid);
log.error("永中接口返回:{}", jsonStr); log.info("留痕稿的wps转换后id:{}",pdfimggeid);
JSONObject result = JSONObject.parseObject(jsonStr); if (pdfimggeid>0){
String errorcode = result.getString("errorcode"); imageFileManager.getImageFileInfoById(Util.getIntValue(pdfimggeid));
if ("0".equals(errorcode)) { pdfinputStream = imageFileManager.getInputStream();
JSONObject data = result.getJSONObject("data"); ArchivesUtil.saveInputStreamToFile(pdfinputStream, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf");
String destFileName = data.getString("destFileName"); ArchivesUtil.deletePdfImageFile(pdfimggeid);
String viewUrl = data.getString("viewUrl"); }else {
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf"); String jsonStr = ArchivesUtil.callApi(Url, file);
log.error("永中接口返回:{}", jsonStr);
JSONObject result = JSONObject.parseObject(jsonStr);
String errorcode = result.getString("errorcode");
if ("0".equals(errorcode)) {
JSONObject data = result.getJSONObject("data");
String destFileName = data.getString("destFileName");
String viewUrl = data.getString("viewUrl");
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf");
}
} }
} catch (IOException e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
}finally { }finally {
if(inputStream!=null) { if(inputStream!=null) {
@ -312,6 +322,14 @@ public class SendingPushArchivesService {
e.printStackTrace(); e.printStackTrace();
} }
} }
if(pdfinputStream!=null) {
try {
log.info("pdfinputStream不为空,关闭");
pdfinputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
i[0]++; i[0]++;
}); });

@ -260,19 +260,29 @@ public class SignReportPushArchivesService {
String imageFileName = filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile; String imageFileName = filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile;
log.info("生成清稿前痕迹路径:{}", imageFileName); log.info("生成清稿前痕迹路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName); imageFileName = ArchivesUtil.codeUtf8(imageFileName);
InputStream pdfinputStream = null;
try { try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
String jsonStr = ArchivesUtil.callApi(Url, file); int pdfimggeid = ArchivesUtil.docConvert2Pdf(imageid);
log.error("永中接口返回:{}", jsonStr); log.info("留痕稿的wps转换后id:{}",pdfimggeid);
JSONObject result = JSONObject.parseObject(jsonStr); if (pdfimggeid>0){
String errorcode = result.getString("errorcode"); imageFileManager.getImageFileInfoById(Util.getIntValue(pdfimggeid));
if ("0".equals(errorcode)) { pdfinputStream = imageFileManager.getInputStream();
JSONObject data = result.getJSONObject("data"); ArchivesUtil.saveInputStreamToFile(pdfinputStream, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf");
String destFileName = data.getString("destFileName"); ArchivesUtil.deletePdfImageFile(pdfimggeid);
String viewUrl = data.getString("viewUrl"); }else {
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf"); String jsonStr = ArchivesUtil.callApi(Url, file);
log.error("永中接口返回:{}", jsonStr);
JSONObject result = JSONObject.parseObject(jsonStr);
String errorcode = result.getString("errorcode");
if ("0".equals(errorcode)) {
JSONObject data = result.getJSONObject("data");
String destFileName = data.getString("destFileName");
String viewUrl = data.getString("viewUrl");
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf");
}
} }
} catch (IOException e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} finally { } finally {
if(inputStream!=null) { if(inputStream!=null) {
@ -282,6 +292,14 @@ public class SignReportPushArchivesService {
e.printStackTrace(); e.printStackTrace();
} }
} }
if(pdfinputStream!=null) {
try {
log.info("pdfinputStream不为空,关闭");
pdfinputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
i[0]++; i[0]++;
}); });

@ -277,18 +277,30 @@ public class FirstBranchSendingPushArchivesService implements KeyWord {
String imageFileName = filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile; String imageFileName = filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile;
log.info("生成清稿前痕迹路径:{}", imageFileName); log.info("生成清稿前痕迹路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName); imageFileName = ArchivesUtil.codeUtf8(imageFileName);
InputStream pdfinputStream = null;
try { try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
String jsonStr = ArchivesUtil.callApi(Url, file); int pdfimggeid = ArchivesUtil.docConvert2Pdf(imageid);
log.error("永中接口返回:{}", jsonStr); log.info("留痕稿的wps转换后id:{}",pdfimggeid);
JSONObject result = JSONObject.parseObject(jsonStr); if (pdfimggeid>0){
String errorcode = result.getString("errorcode"); imageFileManager.getImageFileInfoById(Util.getIntValue(pdfimggeid));
if ("0".equals(errorcode)) { pdfinputStream = imageFileManager.getInputStream();
JSONObject data = result.getJSONObject("data"); ArchivesUtil.saveInputStreamToFile(pdfinputStream, filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf");
String destFileName = data.getString("destFileName"); ArchivesUtil.deletePdfImageFile(pdfimggeid);
String viewUrl = data.getString("viewUrl"); }else {
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf"); String jsonStr = ArchivesUtil.callApi(Url, file);
log.error("永中接口返回:{}", jsonStr);
JSONObject result = JSONObject.parseObject(jsonStr);
String errorcode = result.getString("errorcode");
if ("0".equals(errorcode)) {
JSONObject data = result.getJSONObject("data");
String destFileName = data.getString("destFileName");
String viewUrl = data.getString("viewUrl");
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf");
}
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
}finally { }finally {
@ -299,6 +311,14 @@ public class FirstBranchSendingPushArchivesService implements KeyWord {
e.printStackTrace(); e.printStackTrace();
} }
} }
if(pdfinputStream!=null) {
try {
log.info("pdfinputStream不为空,关闭");
pdfinputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
i[0]++; i[0]++;
}); });

@ -249,19 +249,29 @@ public class FirstBranchSignReportPushArchivesService implements KeyWord {
String imageFileName = filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile; String imageFileName = filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile;
log.info("生成清稿前痕迹路径:{}", imageFileName); log.info("生成清稿前痕迹路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName); imageFileName = ArchivesUtil.codeUtf8(imageFileName);
InputStream pdfinputStream = null;
try { try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
String jsonStr = ArchivesUtil.callApi(Url, file); int pdfimggeid = ArchivesUtil.docConvert2Pdf(imageid);
log.error("永中接口返回:{}", jsonStr); log.info("留痕稿的wps转换后id:{}",pdfimggeid);
JSONObject result = JSONObject.parseObject(jsonStr); if (pdfimggeid>0){
String errorcode = result.getString("errorcode"); imageFileManager.getImageFileInfoById(Util.getIntValue(pdfimggeid));
if ("0".equals(errorcode)) { pdfinputStream = imageFileManager.getInputStream();
JSONObject data = result.getJSONObject("data"); ArchivesUtil.saveInputStreamToFile(pdfinputStream, filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf");
String destFileName = data.getString("destFileName"); ArchivesUtil.deletePdfImageFile(pdfimggeid);
String viewUrl = data.getString("viewUrl"); }else {
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf"); String jsonStr = ArchivesUtil.callApi(Url, file);
log.error("永中接口返回:{}", jsonStr);
JSONObject result = JSONObject.parseObject(jsonStr);
String errorcode = result.getString("errorcode");
if ("0".equals(errorcode)) {
JSONObject data = result.getJSONObject("data");
String destFileName = data.getString("destFileName");
String viewUrl = data.getString("viewUrl");
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf");
}
} }
} catch (IOException e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} finally { } finally {
if(inputStream!=null) { if(inputStream!=null) {
@ -271,6 +281,14 @@ public class FirstBranchSignReportPushArchivesService implements KeyWord {
e.printStackTrace(); e.printStackTrace();
} }
} }
if(pdfinputStream!=null) {
try {
log.info("pdfinputStream不为空,关闭");
pdfinputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
i[0]++; i[0]++;
}); });

@ -572,8 +572,12 @@ public class SecondBranchReceivingPushArchivesService implements KeyWord {
String[] yjbmdeptData = ArchivesUtil.getDeptNameAndCode(yjbm); String[] yjbmdeptData = ArchivesUtil.getDeptNameAndCode(yjbm);
String[] subData = getSubCom(fb); String[] subData = getSubCom(fb);
context.append(yjbmdeptData[0]).append("|"); //10 行编号 -> 拟稿部门 context.append(yjbmdeptData[0]).append("|"); //10 行编号 -> 拟稿部门
if ("营业部".equals(yjbmdeptData[1])||"营业室".equals(yjbmdeptData[1])){
context.append(yjbmdeptData[1]).append("|"); //11 行名称 context.append(subData[1]+yjbmdeptData[1]).append("|"); //11 行名称
}else {
context.append(yjbmdeptData[1]).append("|"); //11 行名称
}
// context.append(yjbmdeptData[1]).append("|"); //11 行名称
context.append("").append("|"); // 12 保管期限编号 context.append("").append("|"); // 12 保管期限编号
context.append("").append("|"); // 13 保管期限及编号 context.append("").append("|"); // 13 保管期限及编号
context.append("").append("|"); // 14 是否开放 context.append("").append("|"); // 14 是否开放

@ -276,18 +276,29 @@ public class SecondBranchSendingPushArchivesService implements KeyWord {
String imageFileName = filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile; String imageFileName = filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile;
log.info("生成清稿前痕迹路径:{}", imageFileName); log.info("生成清稿前痕迹路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName); imageFileName = ArchivesUtil.codeUtf8(imageFileName);
InputStream pdfinputStream = null;
try { try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
String jsonStr = ArchivesUtil.callApi(Url, file); int pdfimggeid = ArchivesUtil.docConvert2Pdf(imageid);
log.error("永中接口返回:{}", jsonStr); log.info("留痕稿的wps转换后id:{}",pdfimggeid);
JSONObject result = JSONObject.parseObject(jsonStr); if (pdfimggeid>0){
String errorcode = result.getString("errorcode"); imageFileManager.getImageFileInfoById(Util.getIntValue(pdfimggeid));
if ("0".equals(errorcode)) { pdfinputStream = imageFileManager.getInputStream();
JSONObject data = result.getJSONObject("data"); ArchivesUtil.saveInputStreamToFile(pdfinputStream, filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf");
String destFileName = data.getString("destFileName"); ArchivesUtil.deletePdfImageFile(pdfimggeid);
String viewUrl = data.getString("viewUrl"); }else {
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf"); String jsonStr = ArchivesUtil.callApi(Url, file);
log.error("永中接口返回:{}", jsonStr);
JSONObject result = JSONObject.parseObject(jsonStr);
String errorcode = result.getString("errorcode");
if ("0".equals(errorcode)) {
JSONObject data = result.getJSONObject("data");
String destFileName = data.getString("destFileName");
String viewUrl = data.getString("viewUrl");
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf");
}
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
}finally { }finally {
@ -298,6 +309,14 @@ public class SecondBranchSendingPushArchivesService implements KeyWord {
e.printStackTrace(); e.printStackTrace();
} }
} }
if(pdfinputStream!=null) {
try {
log.info("pdfinputStream不为空,关闭");
pdfinputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
i[0]++; i[0]++;
}); });
@ -491,10 +510,14 @@ public class SecondBranchSendingPushArchivesService implements KeyWord {
String[] deptData = ArchivesUtil.getDeptNameAndCode(ngbm); String[] deptData = ArchivesUtil.getDeptNameAndCode(ngbm);
String[] yjbmdeptData = ArchivesUtil.getDeptNameAndCode(yjbm); String[] yjbmdeptData = ArchivesUtil.getDeptNameAndCode(yjbm);
String[] subData = ArchivesUtil.getSubCom(ngbm); String[] subData = ArchivesUtil.getSubCom(yjbm);
context.append(yjbmdeptData[0]).append("|"); //10 行编号 -> 拟稿部门
context.append(yjbmdeptData[1]).append("|"); //11 行名称 context.append(yjbmdeptData[0]).append("|"); //10 行编号 -> 拟稿部门
if ("营业部".equals(yjbmdeptData[1])||"营业室".equals(yjbmdeptData[1])){
context.append(subData[1]+yjbmdeptData[1]).append("|"); //11 行名称
}else {
context.append(yjbmdeptData[1]).append("|"); //11 行名称
}
context.append("").append("|"); // 12 保管期限编号 context.append("").append("|"); // 12 保管期限编号
context.append("").append("|"); // 13 保管期限及编号 context.append("").append("|"); // 13 保管期限及编号
context.append("").append("|"); // 14 是否开放 context.append("").append("|"); // 14 是否开放

@ -260,18 +260,30 @@ public class OrgPersonPushArchivesService {
String imageFileName = filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile; String imageFileName = filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile;
log.info("生成清稿前痕迹路径:{}", imageFileName); log.info("生成清稿前痕迹路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName); imageFileName = ArchivesUtil.codeUtf8(imageFileName);
InputStream pdfinputStream = null;
try { try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
String jsonStr = ArchivesUtil.callApi(Url, file); int pdfimggeid = ArchivesUtil.docConvert2Pdf(imageid);
log.error("永中接口返回:{}", jsonStr); log.info("留痕稿的wps转换后id:{}",pdfimggeid);
JSONObject result = JSONObject.parseObject(jsonStr); if (pdfimggeid>0){
String errorcode = result.getString("errorcode"); imageFileManager.getImageFileInfoById(Util.getIntValue(pdfimggeid));
if ("0".equals(errorcode)) { pdfinputStream = imageFileManager.getInputStream();
JSONObject data = result.getJSONObject("data"); ArchivesUtil.saveInputStreamToFile(pdfinputStream, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf");
String destFileName = data.getString("destFileName"); ArchivesUtil.deletePdfImageFile(pdfimggeid);
String viewUrl = data.getString("viewUrl"); }else {
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf"); String jsonStr = ArchivesUtil.callApi(Url, file);
log.error("永中接口返回:{}", jsonStr);
JSONObject result = JSONObject.parseObject(jsonStr);
String errorcode = result.getString("errorcode");
if ("0".equals(errorcode)) {
JSONObject data = result.getJSONObject("data");
String destFileName = data.getString("destFileName");
String viewUrl = data.getString("viewUrl");
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf");
}
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} finally { } finally {
@ -282,6 +294,14 @@ public class OrgPersonPushArchivesService {
e.printStackTrace(); e.printStackTrace();
} }
} }
if(pdfinputStream!=null) {
try {
log.info("pdfinputStream不为空,关闭");
pdfinputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
i[0]++; i[0]++;
}); });

@ -260,17 +260,28 @@ public class PetitionPushArchivesService {
String imageFileName = filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile; String imageFileName = filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile;
log.info("生成清稿前痕迹路径:{}", imageFileName); log.info("生成清稿前痕迹路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName); imageFileName = ArchivesUtil.codeUtf8(imageFileName);
InputStream pdfinputStream = null;
try { try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
String jsonStr = ArchivesUtil.callApi(Url, file); int pdfimggeid = ArchivesUtil.docConvert2Pdf(imageid);
log.error("永中接口返回:{}", jsonStr); log.info("留痕稿的wps转换后id:{}",pdfimggeid);
JSONObject result = JSONObject.parseObject(jsonStr); if (pdfimggeid>0){
String errorcode = result.getString("errorcode"); imageFileManager.getImageFileInfoById(Util.getIntValue(pdfimggeid));
if ("0".equals(errorcode)) { pdfinputStream = imageFileManager.getInputStream();
JSONObject data = result.getJSONObject("data"); ArchivesUtil.saveInputStreamToFile(pdfinputStream, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf");
String destFileName = data.getString("destFileName"); ArchivesUtil.deletePdfImageFile(pdfimggeid);
String viewUrl = data.getString("viewUrl"); }else {
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf"); String jsonStr = ArchivesUtil.callApi(Url, file);
log.error("永中接口返回:{}", jsonStr);
JSONObject result = JSONObject.parseObject(jsonStr);
String errorcode = result.getString("errorcode");
if ("0".equals(errorcode)) {
JSONObject data = result.getJSONObject("data");
String destFileName = data.getString("destFileName");
String viewUrl = data.getString("viewUrl");
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + zwdir + File.separator + newFile + ".pdf");
}
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
@ -282,6 +293,14 @@ public class PetitionPushArchivesService {
e.printStackTrace(); e.printStackTrace();
} }
} }
if(pdfinputStream!=null) {
try {
log.info("pdfinputStream不为空,关闭");
pdfinputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
i[0]++; i[0]++;
}); });

@ -20,6 +20,7 @@ import org.slf4j.LoggerFactory;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.crm.Maint.CustomerInfoComInfo; import weaver.crm.Maint.CustomerInfoComInfo;
import weaver.docs.docs.DocRecycleManager; import weaver.docs.docs.DocRecycleManager;
import weaver.file.util.FileDeleteUtil;
import weaver.general.StringUtil; import weaver.general.StringUtil;
import weaver.general.TimeUtil; import weaver.general.TimeUtil;
import weaver.general.Util; import weaver.general.Util;
@ -29,6 +30,10 @@ import weaver.soa.workflow.request.RequestInfo;
import weaver.soa.workflow.request.RequestService; import weaver.soa.workflow.request.RequestService;
import weaver.workflow.monitor.Monitor; import weaver.workflow.monitor.Monitor;
import weaver.workflow.workflow.WorkflowConfigComInfo; import weaver.workflow.workflow.WorkflowConfigComInfo;
import weaver.wps.doccenter.convert.BaseConvert;
import weaver.wps.doccenter.utils.Config;
import weaver.wps.doccenter.utils.FileInfoUtil;
import weaver.wps.doccenter.utils.Tools;
import java.io.*; import java.io.*;
import java.lang.reflect.Field; import java.lang.reflect.Field;
@ -108,7 +113,7 @@ public class ArchivesUtil {
rs.executeQuery(SQL, endTime, type); rs.executeQuery(SQL, endTime, type);
// Field[] fields = PushArchivesBean.class.getDeclaredFields(); // Field[] fields = PushArchivesBean.class.getDeclaredFields();
log.info("getResultListSQL:{}?{}?{}",SQL,endTime,type); log.info("getResultListSQL:{}?{}?{}", SQL, endTime, type);
LinkedList<PushArchivesBean> result = new LinkedList<>(); LinkedList<PushArchivesBean> result = new LinkedList<>();
while (rs.next()) { while (rs.next()) {
PushArchivesBean pushArchivesBean = new PushArchivesBean(); PushArchivesBean pushArchivesBean = new PushArchivesBean();
@ -137,9 +142,9 @@ public class ArchivesUtil {
//recordSet.executeQuery(sql); //recordSet.executeQuery(sql);
String sql = "select * from uf_ArchivesSet where mainwfid = ? "; String sql = "select * from uf_ArchivesSet where mainwfid = ? ";
recordSet.executeQuery(sql,workflowid); recordSet.executeQuery(sql, workflowid);
String exclusenodeid= ""; String exclusenodeid = "";
if (recordSet.next()){ if (recordSet.next()) {
exclusenodeid = recordSet.getString("exclusenodeid"); exclusenodeid = recordSet.getString("exclusenodeid");
} }
return Arrays.asList(exclusenodeid.split(",")); return Arrays.asList(exclusenodeid.split(","));
@ -288,7 +293,7 @@ public class ArchivesUtil {
* @param requestName * @param requestName
* @return * @return
*/ */
public static String getSignLog(int requestid, String dirName, String requestName, String TemplatePath, String filePath, boolean isSubReq ,String workflowid) { public static String getSignLog(int requestid, String dirName, String requestName, String TemplatePath, String filePath, boolean isSubReq, String workflowid) {
List<String> subRequestIds = getSubRequestIds(requestid, isSubReq); List<String> subRequestIds = getSubRequestIds(requestid, isSubReq);
ArrayList<Map<String, Object>> lists = new ArrayList<>(); ArrayList<Map<String, Object>> lists = new ArrayList<>();
List<String> autoInitNodeIds = getAutoInitNodeIds(workflowid); List<String> autoInitNodeIds = getAutoInitNodeIds(workflowid);
@ -398,7 +403,7 @@ public class ArchivesUtil {
// 加载模板并填充数据 // 加载模板并填充数据
log.error("模板路径:{}", TemplatePath); log.error("模板路径:{}", TemplatePath);
// 导出Word文档 // 导出Word文档
String outputPath = filePath + File.separator + "togd" +requestid + File.separator + dirName + File.separator + "文件流转信息" + ".docx"; // 输出文件路径 String outputPath = filePath + File.separator + "togd" + requestid + File.separator + dirName + File.separator + "文件流转信息" + ".docx"; // 输出文件路径
log.error("生成文件路径:{}", TemplatePath); log.error("生成文件路径:{}", TemplatePath);
return generate(TemplatePath, TemplateName, dataMap, outputPath); return generate(TemplatePath, TemplateName, dataMap, outputPath);
@ -1059,10 +1064,10 @@ public class ArchivesUtil {
* *
* *
* @param requestid id * @param requestid id
* @param max * @param max
* @return * @return
*/ */
public static Map<String, String> getSubRequest(String requestid,int max) { public static Map<String, String> getSubRequest(String requestid, int max) {
HashMap<String, String> records = new HashMap<>(); HashMap<String, String> records = new HashMap<>();
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
String ids = requestid; String ids = requestid;
@ -1261,7 +1266,7 @@ public class ArchivesUtil {
extName = fileName.substring(fileName.lastIndexOf(".")); extName = fileName.substring(fileName.lastIndexOf("."));
} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {
e.printStackTrace(); e.printStackTrace();
} catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
try { try {
@ -1269,7 +1274,7 @@ public class ArchivesUtil {
requestBody = new MultipartBody.Builder() requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM) .setType(MultipartBody.FORM)
.addFormDataPart("convertType", code) .addFormDataPart("convertType", code)
.addFormDataPart("file", uuid + extName , RequestBody.create(MediaType.parse("application/zip"), file)) .addFormDataPart("file", uuid + extName, RequestBody.create(MediaType.parse("application/zip"), file))
.build(); .build();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage()); log.error(e.getMessage());
@ -1297,7 +1302,7 @@ public class ArchivesUtil {
*/ */
public static String getCodeByFileType(String FileName) { public static String getCodeByFileType(String FileName) {
if (!FileName.contains(".")){ if (!FileName.contains(".")) {
return ""; return "";
} }
String extName = FileName.substring(FileName.lastIndexOf(".") + 1); String extName = FileName.substring(FileName.lastIndexOf(".") + 1);
@ -1396,7 +1401,7 @@ public class ArchivesUtil {
if (loginid.length() > 8) { if (loginid.length() > 8) {
loginid = loginid.substring(0, 8); loginid = loginid.substring(0, 8);
} }
if ("fenfa".equals(loginid)){ if ("fenfa".equals(loginid)) {
continue; continue;
} }
set.add(loginid); set.add(loginid);
@ -1412,7 +1417,7 @@ public class ArchivesUtil {
String sql = "select * from WORKFLOW_REQUESTLOG where REQUESTID in ( " + String sql = "select * from WORKFLOW_REQUESTLOG where REQUESTID in ( " +
String.join(",", subRequest) + " )" + String.join(",", subRequest) + " )" +
"and logtype != '1' and (annexdocids is not null or annexdocids <> '' ) "; "and logtype != '1' and (annexdocids is not null or annexdocids <> '' ) ";
log.error("getSignFilessql:{}",sql); log.error("getSignFilessql:{}", sql);
recordSet.executeQuery(sql); recordSet.executeQuery(sql);
while (recordSet.next()) { while (recordSet.next()) {
String annexdocids = Util.null2String(recordSet.getString("annexdocids")); String annexdocids = Util.null2String(recordSet.getString("annexdocids"));
@ -1435,7 +1440,7 @@ public class ArchivesUtil {
*/ */
public static List<String> generaSubRequestFormPdf(String requestid) { public static List<String> generaSubRequestFormPdf(String requestid) {
log.error("generaSubRequestFormPdf,requestid:{}", requestid); log.error("generaSubRequestFormPdf,requestid:{}", requestid);
Map<String, String> subRequest = ArchivesUtil.getSubRequest(requestid,5); Map<String, String> subRequest = ArchivesUtil.getSubRequest(requestid, 5);
for (String s : subRequest.keySet()) { for (String s : subRequest.keySet()) {
requestid = subRequest.get(s); requestid = subRequest.get(s);
break; break;
@ -1491,8 +1496,8 @@ public class ArchivesUtil {
} }
} }
return max; return max;
}catch (NumberFormatException e){ } catch (NumberFormatException e) {
log.error("ConversionException:"+commaSeparatedValues); log.error("ConversionException:" + commaSeparatedValues);
return 0; return 0;
} }
@ -1500,38 +1505,36 @@ public class ArchivesUtil {
} }
public static String[] getSubCom(String ngbm) { public static String[] getSubCom(String ngbm) {
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
rs.executeQuery("select sub.id subid , SUBCOMPANYNAME from HRMDEPARTMENT dept left join HRMSUBCOMPANY sub " + rs.executeQuery("select sub.id subid , SUBCOMPANYNAME from HRMDEPARTMENT dept left join HRMSUBCOMPANY sub " +
" on dept.SUBCOMPANYID1 = sub.ID " + " on dept.SUBCOMPANYID1 = sub.ID " +
" where dept.id = ? ",ngbm); " where dept.id = ? ", ngbm);
rs.next(); rs.next();
String subcompanyname = rs.getString("SUBCOMPANYNAME"); String subcompanyname = rs.getString("SUBCOMPANYNAME");
String subid = rs.getString("subid"); String subid = rs.getString("subid");
if ("总行".equals(subcompanyname)){ if ("总行".equals(subcompanyname)) {
subcompanyname = "总行机关"; subcompanyname = "总行机关";
} }
rs.executeQuery("select DAPYBH from HRMSUBCOMPANYDEFINED where SUBCOMID = ?",subid); rs.executeQuery("select DAPYBH from HRMSUBCOMPANYDEFINED where SUBCOMID = ?", subid);
rs.next(); rs.next();
String DAPYBH = rs.getString("DAPYBH"); String DAPYBH = rs.getString("DAPYBH");
return new String[]{DAPYBH,subcompanyname}; return new String[]{DAPYBH, subcompanyname};
} }
public static void deleteDirectory(String directoryPath) {
public static void deleteDirectory( String directoryPath ){
// 创建File对象 // 创建File对象
File directory = new File(directoryPath); File directory = new File(directoryPath);
try { try {
// 使用FileUtils.deleteDirectory删除目录及其子目录和文件 // 使用FileUtils.deleteDirectory删除目录及其子目录和文件
FileUtils.deleteDirectory(directory); FileUtils.deleteDirectory(directory);
log.info("目录删除成功:{}",directory); log.info("目录删除成功:{}", directory);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
log.error("目录删除失败:{}",directory); log.error("目录删除失败:{}", directory);
log.error("失败原因:{}",e.getMessage()); log.error("失败原因:{}", e.getMessage());
} }
} }
@ -1548,7 +1551,153 @@ public class ArchivesUtil {
public static void main(String[] args) { public static void main(String[] args) {
String fileName = "11111"; String fileName = "11111";
System.out.println( fileName.substring(fileName.lastIndexOf("."))); System.out.println(fileName.substring(fileName.lastIndexOf(".")));
}
//word转pdf
public static int docConvert2Pdf(String imagefileid) {
HashMap<String, String> param = new HashMap<>();
param.put("imagefileid", imagefileid);
param.put("targetFileFormat", "PDF");
int imageid = convertDocType(param);
return imageid;
}
;
public static Map<String, String> convert(Map<String, String> params) throws Exception {
Map<String, String> result = new HashMap<String, String>();
net.sf.json.JSONObject requestParams = new net.sf.json.JSONObject();
User user = new User(1);
String ecfileid = params.get("imagefileid");
// 判断模块。目前应该只有知识管理的
String fromMould = Tools.null2String(params.get("fromMould"));
fromMould = Tools.getFromMould(fromMould);
String targetFileFormat = Tools.null2String(params.get("targetFileFormat"));
String apiUrl = "";// Config.getCpsV1OfficeConvert();
if (6 == Config.getProductVersion()) {
apiUrl = Config.getV6CpsV1OfficeConvert();
} else if (5 == Config.getProductVersion()) {
apiUrl = Config.getCpsV1OfficeConvert();
}
FileInfoUtil fileInfoUtil = new FileInfoUtil();
Map<String, String> fileInfo = fileInfoUtil.getFileInfo(ecfileid, user, fromMould);
String filename = fileInfo.get("filename");
filename = Tools.getFileNameWithLowerCaseSuffix(filename);
requestParams = new net.sf.json.JSONObject();
requestParams.put("doc_filename", getTempFileName(filename));
requestParams.put("doc_url", fileInfo.get("download"));
requestParams.put("target_file_format", targetFileFormat);
//判断下转换格式为PDF且配置文件中未开启时添加参数
// "to_pdf" = {
// "show_ins_and_del" = 1
// }
// if ("PDF".equals(targetFileFormat) && Config.isProperty("show_ins_and_del", 1, 1)){
JSONObject to_pdf = new JSONObject();
// to_pdf.put("show_ins_and_del",1);
to_pdf.put("print", true);
to_pdf.put("revisions_mode", 2);
requestParams.put("to_pdf", to_pdf);
// }
// 判断如果是excel则优化下转换结果
String ext = filename.contains(".") ? filename.substring(filename.lastIndexOf(".") + 1) : "";
boolean isExcelFile = ("doc".equals(ext) || "docx".equals(ext) || "wps".equals(ext) || "xls".equals(ext) || "xlsx".equals(ext));
isExcelFile = isExcelFile || ("," + Config.getPropertyValue("doccenter_fit_excel_exts") + ",").contains("," + ext + ",");
if (isExcelFile && Config.isProperty("doccenter_fit_excel", 1, 1)) {
JSONObject et_page_zoom = new JSONObject();
// 表示是否保持当前客户端的缩放比true表示保持当前缩放比打印false表示以100%的缩放比打印当fit_pagetall或fit_pagewide中有一个为1或都为1时该参数不生效
et_page_zoom.put("keep_pagezoom", "true".equals(Config.getPropString("doccenter_keep_pagezoom", "true")));
// 表示是否适配所有行0表示正常分页打印1表示不分页所有行在一页上
et_page_zoom.put("fit_pagewide", Config.getPropIntValue("doccenter_fit_pagewide", 0));
// 表示是否适配所有列0表示正常分页打印1表示不分页所有列在一页上当fit_pagetall与fit_pagewide都为1时表示将所有内容打印到一页上
et_page_zoom.put("fit_pagetall", Config.getPropIntValue("doccenter_fit_pagetall", 1));
requestParams.put("et_page_zoom", et_page_zoom);
}
// 结果文件的文件名
String targetFilename = params.containsKey("targetFilename") ? params.get("targetFilename") : "";
if (Tools.isEmptyOrNull(targetFilename) && !Tools.isEmptyOrNull(filename)) {
String nameOnly = filename.contains(".") ? filename.substring(0, filename.lastIndexOf(".")) : filename;
targetFilename = nameOnly + "." + targetFileFormat.toLowerCase();
}
BaseConvert baseConvert = new BaseConvert(user);
if (!params.containsKey("comefrom")) {
params.put("comefrom", "DocTypeConvert");
}
result = baseConvert.convert(apiUrl, requestParams, targetFilename, params);
// 处理其他的事务
return result;
} }
public static String getTempFileName(String filename) {
if (Tools.isEmptyOrNull(filename) || !filename.contains(".")) {
return filename;
}
int idx = filename.lastIndexOf(".");
return "1" + filename.substring(idx).toLowerCase();
}
public static int convertDocType(Map<String, String> params) {
Map<String, String> result = new HashMap<String, String>();
try {
result = convert(params);
if ("0".equals(result.get("status"))) {
return Util.getIntValue(result.get("imagefileid"));
}
} catch (Exception e) {
log.error(e.getMessage());
}
return -1;
}
public static void deletePdfImageFile(int imageFileId) {
if (imageFileId <= 0) {
return;
}
try {
RecordSet rs = new RecordSet();
String sql = "select p.pdfimagefileid,i.filerealpath from pdf_imagefile p,imagefile i where p.pdfimagefileid = i.imagefileid and p.imagefileid = " + imageFileId;
rs.executeSql(sql);
if (rs.next()) {
String pdfimagefileid = rs.getString("pdfimagefileid");
String filerealpath = rs.getString("filerealpath");
File file = new File(filerealpath);
new FileDeleteUtil().deleteFile(file);
rs.executeSql("delete from pdf_imagefile where imagefileid=" + imageFileId);
rs.executeSql("delete from imagefile where imagefileid=" + pdfimagefileid);
}else {
String imgsql = "select * from IMAGEFILE where IMAGEFILEID = "+imageFileId;
rs.executeSql(imgsql);
if (rs.next()){
String filerealpath = rs.getString("filerealpath");
File file = new File(filerealpath);
new FileDeleteUtil().deleteFile(file);
rs.executeSql("delete from imagefile where imagefileid=" + imageFileId);
}
}
rs.executeUpdate("delete from convert_imagefile where imagefileid=?", imageFileId);
} catch (Exception ex) {
}
}
} }

File diff suppressed because it is too large Load Diff

@ -116,7 +116,6 @@ public class TJBKWorkFlowServiceImpl implements TJBKWorkFlowService {
String content = Util.null2String( rs.getString("content")); String content = Util.null2String( rs.getString("content"));
if (!StringUtils.isEmpty(content)){ if (!StringUtils.isEmpty(content)){
contextStr = contextStr.append(content).append(","); contextStr = contextStr.append(content).append(",");
} }
} }

@ -172,7 +172,6 @@ public class CWGLSocketExecute extends BaseBean implements SocketExecute {
String sql = "select jbrxm from " + tableName + " where djbh = ?"; String sql = "select jbrxm from " + tableName + " where djbh = ?";
recordSet.executeQuery(sql, oaTrvlBnsExpnsAcctNo); recordSet.executeQuery(sql, oaTrvlBnsExpnsAcctNo);
if (recordSet.next()) { if (recordSet.next()) {
return Util.null2String(recordSet.getString("jbrxm")); return Util.null2String(recordSet.getString("jbrxm"));
} else { } else {
throw new Exception("编号对应单据不存在"); throw new Exception("编号对应单据不存在");

File diff suppressed because one or more lines are too long

@ -309,6 +309,14 @@ public class XcCmd extends AbstractCommonCommand<Map<String, Object>> {
String requestId = handler.WorkflowCreateByRequestMap(ccr,workflowId,title,IsNextFlow,map); String requestId = handler.WorkflowCreateByRequestMap(ccr,workflowId,title,IsNextFlow,map);
writeLog("requestid="+requestId); writeLog("requestid="+requestId);
if(Util.getIntValue(requestId)>1) { if(Util.getIntValue(requestId)>1) {
//添加下公文待办分类逻辑
try {
updateLeftTreeInfo(requestId,workflowId);
}catch (Exception e){
writeLog("更新公文待办异常:"+e.getMessage());
}
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
rs.execute("select id from " + tablename +" where requestid="+requestId); rs.execute("select id from " + tablename +" where requestid="+requestId);
rs.next(); rs.next();
@ -533,7 +541,7 @@ public class XcCmd extends AbstractCommonCommand<Map<String, Object>> {
try { try {
updateLeftTreeInfo(requestId,workflowId); updateLeftTreeInfo(requestId,workflowId);
}catch (Exception e){ }catch (Exception e){
writeLog("更新公文待办异常:"+e.getMessage());
} }
@ -845,6 +853,15 @@ public class XcCmd extends AbstractCommonCommand<Map<String, Object>> {
writeLog("requestid="+requestId); writeLog("requestid="+requestId);
if(Util.getIntValue(requestId)>1) { if(Util.getIntValue(requestId)>1) {
//添加下公文待办分类逻辑
try {
updateLeftTreeInfo(requestId,workflowId);
}catch (Exception e){
writeLog("更新公文待办异常:"+e.getMessage());
}
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
rs.execute("select id from " + tablename +" where requestid="+requestId); rs.execute("select id from " + tablename +" where requestid="+requestId);
rs.next(); rs.next();

@ -92,7 +92,7 @@ public class XMLUtils {
return ""; return "";
} }
private static void addServiceHeader(Document doc, Element rootElement, Map<String, String> headerParam) { public static void addServiceHeader(Document doc, Element rootElement, Map<String, String> headerParam) {
// 创建Service_Body节点 // 创建Service_Body节点
Element serviceHeaderElement = doc.createElement("Service_Header"); Element serviceHeaderElement = doc.createElement("Service_Header");

@ -2,6 +2,7 @@ package com.engine.web.tjbk;
import com.engine.tjbankSocket.SocketExecute; import com.engine.tjbankSocket.SocketExecute;
import com.engine.tjbankSocket.impl.CWGLSocketExecute; import com.engine.tjbankSocket.impl.CWGLSocketExecute;
import com.engine.tjbankSocket.impl.CreateArchicesReqSocketExecute;
import com.engine.tjbankSocket.impl.GetToCountSocketExecute; import com.engine.tjbankSocket.impl.GetToCountSocketExecute;
import com.engine.util.XMLUtils; import com.engine.util.XMLUtils;
import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringEscapeUtils;
@ -205,6 +206,9 @@ class ProcessSocketData implements Runnable {
logger.error("GetToCountSocketExecute-Start"); logger.error("GetToCountSocketExecute-Start");
socketExecute = new CWGLSocketExecute(); socketExecute = new CWGLSocketExecute();
logger.error("CWGLSocketExecute-end"); logger.error("CWGLSocketExecute-end");
}else if ("1202".equals(requester_id)){
socketExecute = new CreateArchicesReqSocketExecute();
paramMap.put("xmlString",XMLparam);
} }
String execute = socketExecute.execute(paramMap); String execute = socketExecute.execute(paramMap);
logger.error("socketExecute:return"+execute); logger.error("socketExecute:return"+execute);

@ -0,0 +1,45 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="com.api.mobilemode.web.mobile.BaseMobileAction"%>
<%@ page import="java.lang.reflect.Constructor"%>
<%@ page import="weaver.general.Util"%>
<%@ page import="net.sf.json.JSONObject"%>
<%@ page import="com.weaver.formmodel.mobile.utils.MobileCommonUtil"%>
<%@ page import="com.weaver.formmodel.exception.MobileModeException"%>
<%@ page import="weaver.general.Base64" %>
<%
response.addHeader("Access-Control-Allow-Origin", "*");
String invoker = Util.null2String(request.getParameter("invoker")).trim();
if(invoker.equals("")){
return;
}
if(!invoker.contains("com.api.mobilemode")){
invoker = new String(Base64.decode(invoker.getBytes()));
}
try {
// if ("19135".equals(Util.null2String(request.getParameter("fieldid")).trim())){
// request.setAttribute("");
// }
Class clazz = Class.forName(invoker);
if(BaseMobileAction.class.isAssignableFrom(clazz)){
Constructor ctor = clazz.getConstructor(new Class[] {HttpServletRequest.class, HttpServletResponse.class});
BaseMobileAction actionObj = (BaseMobileAction)ctor.newInstance(new Object[] {request, response});
actionObj.execute_proxy();
}else{//规避使用此jsp去反射调用其他的系统类
throw new MobileModeException("Illegal Access");
}
} catch (Exception ex) {
MobileCommonUtil.log(this.getClass(), ex);
JSONObject result = new JSONObject();
if (ex.getCause() != null && ex.getCause() instanceof MobileModeException) {
result.put("code", ((MobileModeException) ex.getCause()).getCode());
}
result.put("status", "0");
result.put("errMsg", MobileCommonUtil.getExceptionMsgForClientDisplay(ex));
result.put("errMsg", ex.getMessage());
out.print(result);
}
%>

@ -8,6 +8,7 @@
<%@ page import="com.alibaba.fastjson.JSONObject" %> <%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="com.icbc.api.internal.apache.http.impl.cookie.S" %> <%@ page import="com.icbc.api.internal.apache.http.impl.cookie.S" %>
<%@ page import="weaver.general.BaseBean" %> <%@ page import="weaver.general.BaseBean" %>
<%@ page import="weaver.general.StringUtil" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
@ -81,8 +82,24 @@
map.put("Type", "飞机"); map.put("Type", "飞机");
map.put("PassengerName", Util.null2String(recordSet.getString("PassengerName"))); map.put("PassengerName", Util.null2String(recordSet.getString("PassengerName")));
map.put("DepartureCityName", Util.null2String(recordSet.getString("DCityName"))); map.put("DepartureCityName", Util.null2String(recordSet.getString("DCityName")));
map.put("DepartureDateTime", Util.null2String(recordSet.getString("TakeOffTime2"))); map.put("DepartureDateTime", Util.null2String(recordSet.getString("TakeOffTime")) + " " +Util.null2String(recordSet.getString("TakeOffTime2")));
map.put("ArrivalDateTime", Util.null2String(recordSet.getString("ArrivalTime2"))); map.put("ArrivalDateTime", Util.null2String(recordSet.getString("ArrivalTime"))+" "+Util.null2String(recordSet.getString("ArrivalTime2")));
//判断退改签到达时间是否为空,不为空替换起飞时间到达时间
//改签后起飞日期(RebookTakeOffTime) 改签后起飞时间(RebookTakeOffTime2)
String RebookTakeOffTime = Util.null2String(recordSet.getString("RebookTakeOffTime"));
String RebookTakeOffTime2 = Util.null2String(recordSet.getString("RebookTakeOffTime2"));
if (!StringUtil.isEmpty(RebookTakeOffTime) && !StringUtil.isEmpty(RebookTakeOffTime2)){
map.put("DepartureDateTime", RebookTakeOffTime+ " " +RebookTakeOffTime2);
}
//改签后到达日期(RebookArrivalTime) 改签后到达时间(RebookArrivalTime2)
String RebookArrivalTime = Util.null2String(recordSet.getString("RebookArrivalTime"));
String RebookArrivalTime2 = Util.null2String(recordSet.getString("RebookArrivalTime2"));
if (!StringUtil.isEmpty(RebookArrivalTime) && !StringUtil.isEmpty(RebookArrivalTime2)){
map.put("ArrivalDateTime", RebookArrivalTime+ " " +RebookArrivalTime2);
}
map.put("DepartureStationName", Util.null2String(recordSet.getString("DPortName"))); map.put("DepartureStationName", Util.null2String(recordSet.getString("DPortName")));
map.put("ArrivalStationName", Util.null2String(recordSet.getString("APortName"))); map.put("ArrivalStationName", Util.null2String(recordSet.getString("APortName")));
sourceidsList.add(map); sourceidsList.add(map);
@ -94,8 +111,8 @@
map.put("OrderId", Util.null2String(recordSet.getString("OrderId"))); map.put("OrderId", Util.null2String(recordSet.getString("OrderId")));
map.put("DetailType", getTypeName(Util.null2String(recordSet.getString("DetailType")))); map.put("DetailType", getTypeName(Util.null2String(recordSet.getString("DetailType"))));
map.put("Type", "酒店"); map.put("Type", "酒店");
map.put("PassengerName", Util.null2String(recordSet.getString("CityName"))); map.put("PassengerName", Util.null2String(recordSet.getString("ClientName")));
map.put("DepartureCityName", Util.null2String(recordSet.getString("DepartureCityName"))); map.put("DepartureCityName", Util.null2String(recordSet.getString("CityName")));
map.put("DepartureDateTime", Util.null2String(recordSet.getString("StartTime"))); map.put("DepartureDateTime", Util.null2String(recordSet.getString("StartTime")));
map.put("ArrivalDateTime", Util.null2String(recordSet.getString("EndTime"))); map.put("ArrivalDateTime", Util.null2String(recordSet.getString("EndTime")));
map.put("DepartureStationName", Util.null2String(recordSet.getString("HotelName"))); map.put("DepartureStationName", Util.null2String(recordSet.getString("HotelName")));

@ -320,7 +320,7 @@ public class Action20231015024217 implements Action {
} }
public String getimgid(String docid, RecordSet rs){ 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 = ?"; String sql = "select max(df.imagefileid) imgid from docimagefile df left join imagefile imf on df.imagefileid = imf.imagefileid where DOCID = ?";
writeLog("getimgidsql"+sql+"===="+docid); writeLog("getimgidsql"+sql+"===="+docid);
rs.executeQuery(sql,docid); rs.executeQuery(sql,docid);
if (rs.next()){ if (rs.next()){

@ -0,0 +1,56 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
/**
* Online custom action interface
*/
public class Action20241024024705 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) {
/*
* Process custom interface code example
*
* 1:Log
* writeLog("in my online edited action");
*
* 2Exception
* boolean error=true;
* if(error) {
* request.getRequestManager().setMessageid("90001");
* request.getRequestManager().setMessagecontent("System Abnormal Termination Process Submission");
* }
*
* 3Get requestid
* String requestId = request.getRequestid();
*
* 4Get form tableName
* String tablename = request.getRequestManager().getBillTableName();
*
* 5Find form content
* RecordSet rs = new RecordSet();
* rs.execute("select * from "+tablename+" where requestid = "+requestId);
* rs.next();
* String mainid = rs.getString("id"); //idForm primary key
* String formData = rs.getString("formData"); //formDataField name for form design
*
*
*/
String requestId = request.getRequestid();
String tablename = request.getRequestManager().getBillTableName();
RecordSet rs = new RecordSet();
rs.execute("select * from "+tablename+" where requestid = "+requestId);
rs.next();
String mainid = rs.getString("id");
String rcid = rs.getString("rcid");
String rcjsr = rs.getString("rcjsr");
rs.executeUpdate("delete from workplan where id = ? and resourceid= ? ",rcid,rcjsr);
return Action.SUCCESS;
}
}

@ -0,0 +1,79 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
/**
* Online custom action interface
*/
public class Action20241024032034 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) {
/*
* Process custom interface code example
*
* 1:Log
* writeLog("in my online edited action");
*
* 2Exception
* boolean error=true;
* if(error) {
* request.getRequestManager().setMessageid("90001");
* request.getRequestManager().setMessagecontent("System Abnormal Termination Process Submission");
* }
*
* 3Get requestid
* String requestId = request.getRequestid();
*
* 4Get form tableName
* String tablename = request.getRequestManager().getBillTableName();
*
* 5Find form content
* RecordSet rs = new RecordSet();
* rs.execute("select * from "+tablename+" where requestid = "+requestId);
* rs.next();
* String mainid = rs.getString("id"); //idForm primary key
* //formDataField name for form design
*
*
*/
String requestId = request.getRequestid();
String tablename = request.getRequestManager().getBillTableName();
RecordSet rs = new RecordSet();
rs.execute("select * from "+tablename+" where requestid = "+requestId);
rs.next();
String mainid = rs.getString("id");
String bghrcbt = rs.getString("bghrcbt");
String bghrcnr = rs.getString("bghrcnr");
String bghksrq = rs.getString("bghksrq");
String bghkssj = rs.getString("bghkssj");
String bghjsrq = rs.getString("bghjsrq");
String bghjssj = rs.getString("bghjssj");
String rcid = rs.getString("rcid");
String rcjsr = rs.getString("rcjsr");
rs.executeUpdate("UPDATE workplan SET " +
" NAME = ? , DESCRIPTION = ? ,BEGINDATE = ?,BEGINTIME = ?,ENDDATE = ? ,ENDTIME = ? ,REQUESTID = ? " +
" where id= ? and resourceid = ? ",
bghrcbt,bghrcnr,bghksrq,bghkssj,bghjsrq,bghjssj,requestId,rcid,rcjsr);
return Action.SUCCESS;
}
}
/***
* UPDATE workplan SET where id='{?rcid}' and resourceid='{?rcjsr}'
*
*
* NAME bghrcbt
* DESCRIPTION bghrcnr
* BEGINDATE bghksrq
* BEGINTIME bghkssj
* ENDDATE bghjsrq
* ENDTIME bghjssj
* REQUESTID requestid
*
*/

@ -0,0 +1,39 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Online custom action interface
*/
public class Action20241031042033 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 requestid = request.getRequestid();
String currentTime = generateTimestamp();
String insertSql = "insert into uf_pushArchivesLog (request,ddsj,type) values (?,?,?)";
RecordSet rs = new RecordSet();
rs.executeUpdate(insertSql,requestid,currentTime,0);
} catch (Exception e) {
writeLog(e.getMessage());
e.printStackTrace();
}
return Action.SUCCESS;
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
}

@ -0,0 +1,39 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Online custom action interface
*/
public class Action20241031042849 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 requestid = request.getRequestid();
String currentTime = generateTimestamp();
String insertSql = "insert into uf_pushArchivesLog (request,ddsj,type) values (?,?,?)";
RecordSet rs = new RecordSet();
rs.executeUpdate(insertSql,requestid,currentTime,1);
} catch (Exception e) {
writeLog(e.getMessage());
e.printStackTrace();
}
return Action.SUCCESS;
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
}

@ -0,0 +1,39 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Online custom action interface
*/
public class Action20241031043325 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 requestid = request.getRequestid();
String currentTime = generateTimestamp();
String insertSql = "insert into uf_pushArchivesLog (request,ddsj,type) values (?,?,?)";
RecordSet rs = new RecordSet();
rs.executeUpdate(insertSql,requestid,currentTime,2);
} catch (Exception e) {
writeLog(e.getMessage());
e.printStackTrace();
}
return Action.SUCCESS;
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
}

@ -0,0 +1,39 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Online custom action interface
*/
public class Action20241031043621 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 requestid = request.getRequestid();
String currentTime = generateTimestamp();
String insertSql = "insert into uf_pushArchivesLog (request,ddsj,type) values (?,?,?)";
RecordSet rs = new RecordSet();
rs.executeUpdate(insertSql,requestid,currentTime,3);
} catch (Exception e) {
writeLog(e.getMessage());
e.printStackTrace();
}
return Action.SUCCESS;
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
}

@ -0,0 +1,39 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Online custom action interface
*/
public class Action20241031044938 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 requestid = request.getRequestid();
String currentTime = generateTimestamp();
String insertSql = "insert into uf_pushArchivesLog (request,ddsj,type) values (?,?,?)";
RecordSet rs = new RecordSet();
rs.executeUpdate(insertSql,requestid,currentTime,4);
} catch (Exception e) {
writeLog(e.getMessage());
e.printStackTrace();
}
return Action.SUCCESS;
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
}

@ -0,0 +1,39 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Online custom action interface
*/
public class Action20241031045419 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 requestid = request.getRequestid();
String currentTime = generateTimestamp();
String insertSql = "insert into uf_pushArchivesLog (request,ddsj,type) values (?,?,?)";
RecordSet rs = new RecordSet();
rs.executeUpdate(insertSql,requestid,currentTime,5);
} catch (Exception e) {
writeLog(e.getMessage());
e.printStackTrace();
}
return Action.SUCCESS;
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
}

@ -0,0 +1,39 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Online custom action interface
*/
public class Action20241031045558 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 requestid = request.getRequestid();
String currentTime = generateTimestamp();
String insertSql = "insert into uf_pushArchivesLog (request,ddsj,type) values (?,?,?)";
RecordSet rs = new RecordSet();
rs.executeUpdate(insertSql,requestid,currentTime,6);
} catch (Exception e) {
writeLog(e.getMessage());
e.printStackTrace();
}
return Action.SUCCESS;
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
}

@ -0,0 +1,39 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Online custom action interface
*/
public class Action20241031045834 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 requestid = request.getRequestid();
String currentTime = generateTimestamp();
String insertSql = "insert into uf_pushArchivesLog (request,ddsj,type) values (?,?,?)";
RecordSet rs = new RecordSet();
rs.executeUpdate(insertSql,requestid,currentTime,7);
} catch (Exception e) {
writeLog(e.getMessage());
e.printStackTrace();
}
return Action.SUCCESS;
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
}

@ -0,0 +1,39 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Online custom action interface
*/
public class Action20241031050024 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 requestid = request.getRequestid();
String currentTime = generateTimestamp();
String insertSql = "insert into uf_pushArchivesLog (request,ddsj,type) values (?,?,?)";
RecordSet rs = new RecordSet();
rs.executeUpdate(insertSql,requestid,currentTime,8);
} catch (Exception e) {
writeLog(e.getMessage());
e.printStackTrace();
}
return Action.SUCCESS;
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
}

@ -0,0 +1,39 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Online custom action interface
*/
public class Action20241031050135 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 requestid = request.getRequestid();
String currentTime = generateTimestamp();
String insertSql = "insert into uf_pushArchivesLog (request,ddsj,type) values (?,?,?)";
RecordSet rs = new RecordSet();
rs.executeUpdate(insertSql,requestid,currentTime,9);
} catch (Exception e) {
writeLog(e.getMessage());
e.printStackTrace();
}
return Action.SUCCESS;
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
}

@ -0,0 +1,186 @@
package weaver.wps.doccenter.convert;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import weaver.file.Prop;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.wps.doccenter.utils.Config;
import weaver.wps.doccenter.utils.FileInfoUtil;
import weaver.wps.doccenter.utils.Tools;
import weaver.wps.logging.Logger;
import weaver.wps.logging.LoggerFactory;
import java.util.HashMap;
import java.util.Map;
public class OfficeWrapheader {
private Logger log = LoggerFactory.getLogger(OfficeWrapheader.class);
private User user;
// 书签内容类型,文本
public final static String BOOKMARK_TYPE_TEXT = "TEXT";
// 书签内容类型, 文档
public final static String BOOKMARK_TYPE_DOCUMENT = "DOCUMENT";
// 书签内容类型,图片
public final static String BOOKMARK_TYPE_IMAGE = "IMAGE";
// 书签,正文
public final static String BOOKMARK_CONTENT = "Content";
public OfficeWrapheader(){
}
/**
*
* @param user
*/
public OfficeWrapheader(User user){
this.user = user;
}
public User getUser() {
return user;
}
public OfficeWrapheader setUser(User user) {
this.user = user;
return this;
}
public Logger getLog() {
return log;
}
public OfficeWrapheader setLog(Logger log) {
this.log = log;
return this;
}
public Map<String, String> convert(Map<String, String> params, JSONArray sampleList) throws Exception {
Map<String, String> result = new HashMap<String, String>();
JSONObject requestParams = new JSONObject();
String ecfileid = params.get("imagefileid");
// 判断模块。目前应该只有知识管理的
String fromMould = Tools.null2String(params.get("fromMould"));
fromMould = Tools.getFromMould(fromMould);
String targetFileFormat = Tools.null2String(params.get("targetFileFormat"));
String apiUrl = ""; // Config.getCpsV1OfficeWrapheader();
if(6 == Config.getProductVersion()) {
apiUrl = Config.getV6CpsV1OfficeWrapheader();
} else if(5 == Config.getProductVersion()) {
apiUrl = Config.getCpsV1OfficeWrapheader();
}
FileInfoUtil fileInfoUtil = new FileInfoUtil();
Map<String,String> fileInfo = fileInfoUtil.getFileInfo(ecfileid, user, fromMould);
String filename = fileInfo.get("filename");
requestParams = new JSONObject();
requestParams.put("template_filename", Tools.getFileNameWithLowerCaseSuffix(filename));
requestParams.put("template_url", fileInfo.get("download"));
// String flatten_source_style = Prop.getPropValue("doc_wps_custom", "flatten_source_style");
// requestParams.put("flatten_source_style", "1".equals(flatten_source_style));
requestParams.put("sample_list", sampleList);
//套红页边距问题修改
requestParams.put("use_template_section_property",true);
// 结果文件的文件名
String targetFilename = params.containsKey("targetFilename") ? params.get("targetFilename"): "";
targetFilename = Tools.isEmptyOrNull(targetFilename) ? filename : params.get("targetFilename");
BaseConvert baseConvert = new BaseConvert(user);
if(!params.containsKey("comefrom")) params.put("comefrom", "OfficeWrapheader");
result = baseConvert.convert(apiUrl, requestParams, targetFilename, params);
// 处理其他的事务
return result;
}
public Map<String, String> replaceBookmark(Map<String, String> params, Map<String,String> bookmarkMap) throws Exception {
int newimagefileid = -1;
if(Config.isLogInfo()) {
log.info("paramsMap:" + params.toString());
log.info("bookmarkMap:" + bookmarkMap.toString());
}
//1,获取参数
//模板类型
String mouldType = params.get("mouldType");
//模板Id
int mouldId = Util.getIntValue(params.get("mouldId"));
//模板后缀名
// String doctype = (String)params.get("doctype");
//正文imageFileId
String imagefileId = params.get("imagefileId");
int imagefileIdInt = Util.getIntValue(imagefileId);
//正文后缀名
// String zwDocType = (String)params.get("zwDocType");
//生成的替换书签后的文档名称
String fileName = params.get("fileName");
Map<String, String> convertParams = new HashMap<String, String>();
convertParams.put("imagefileid", mouldId+"");
convertParams.put("fromMould", params.get("mouldType"));
convertParams.put("targetFilename", fileName);
JSONArray sampleList = new JSONArray();
JSONObject markItem = new JSONObject();
//普通书签
for(Map.Entry<String,String> entry : bookmarkMap.entrySet()){
markItem = new JSONObject();
markItem.put("bookmark",entry.getKey());
markItem.put("text",entry.getValue());
markItem.put("type", BOOKMARK_TYPE_TEXT);
sampleList.add(markItem);
}
//如果为显示模板才替换正文书签
if("showMould".equals(mouldType)){
//正文
markItem = new JSONObject();
markItem.put("bookmark", BOOKMARK_CONTENT);
markItem.put("type", BOOKMARK_TYPE_DOCUMENT);
// 获取正文文件数据
FileInfoUtil fileInfoUtil = new FileInfoUtil();
Map<String,String> fileInfo = fileInfoUtil.getFileInfo(imagefileId, user, "ecology");
markItem.put("sample_url", fileInfo.get("download"));
markItem.put("sample_filename", getTempFileName(Tools.getFileNameWithLowerCaseSuffix(fileName)));
sampleList.add(markItem);
}
Map<String, String> result = convert(convertParams, sampleList);
// 如果是显示模板,执行一次清稿
if("showMould".equals(mouldType)){
String newImagefileid = result.get("imagefileid");
Map<String, String> clearDocParam = new HashMap<String, String>();
clearDocParam.put("imagefileId", newImagefileid);
clearDocParam.put("fileName", Tools.getFileNameWithLowerCaseSuffix(fileName));
clearDocParam.put("fromMould", "ecology");
OfficeOperate officeOperate = new OfficeOperate(user);
Map<String, String> clearDocResult = officeOperate.clearDoc(clearDocParam);
if("0".equals(clearDocResult.get("status"))){
return clearDocResult;
}
}
return result;
}
public static String getTempFileName(String filename) {
if(Tools.isEmptyOrNull(filename) || !filename.contains(".")){
return filename;
}
int idx = filename.lastIndexOf(".");
return"1" + filename.substring(idx).toLowerCase();
}
}

File diff suppressed because it is too large Load Diff

@ -13,54 +13,6 @@
<%@page contentType="text/html; charset=UTF-8" %> <%@page contentType="text/html; charset=UTF-8" %>
<% <%
// Sample data
List<List<String>> data = new ArrayList<>();
// data.add(Arrays.asList("Header1", "Header2", "Header311"));
// data.add(Arrays.asList("Row1Col1", "Row1Col2", "Row1Col3"));
// data.add(Arrays.asList("Row2Col1", "Row2Col2", "Row2Col3","任广鹏"));
RecordSet rs1 = new RecordSet();
RecordSet rs2 = new RecordSet();
rs1.executeQuery("SELECT requestid ,requestname " +
" FROM workflow_requestbase " +
" WHERE workflowid IN (SELECT id FROM workflow_base WHERE ACTIVEVERSIONID = 471");
// Create a workbook and a sheet
Workbook workbook = new XSSFWorkbook();
String safeSheetName = WorkbookUtil.createSafeSheetName("Sheet1");
Sheet sheet = workbook.createSheet(safeSheetName);
// Populate the sheet with data
for (int i = 0; i < data.size(); i++) {
Row row = sheet.createRow(i);
List<String> rowData = data.get(i);
for (int j = 0; j < rowData.size(); j++) {
Cell cell = row.createCell(j);
cell.setCellValue(rowData.get(j));
}
}
int i = 0;
while (rs1.next()){
Row row = sheet.createRow(i);
String requestid = rs1.getString("requestid");
String requestname = rs1.getString("requestname");
rs2.executeQuery("");
}
// Set the response headers
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=\"export.xlsx\"");
// Write the workbook to the response output stream
try (OutputStream outt = response.getOutputStream()) {
workbook.write(outt);
} catch (Exception e) {
e.printStackTrace();
} finally {
workbook.close();
}
%> %>

@ -79,6 +79,8 @@
//调换下表单字段 //调换下表单字段
String contextStr = replaceVariablesByRs(context, rs); String contextStr = replaceVariablesByRs(context, rs);
String titleStr = replaceVariablesByRs(title, rs); String titleStr = replaceVariablesByRs(title, rs);
String linkUrlStr = replaceVariablesByRs(linkUrl, rs);
String linkMobileUrlStr = replaceVariablesByRs(linkMobileUrl, rs);
// 判断下接收人是否为表单字段 // 判断下接收人是否为表单字段
if (userid.startsWith("field_")){ if (userid.startsWith("field_")){
userid= Util.null2String(rs.getString(userid.split("_")[1])); userid= Util.null2String(rs.getString(userid.split("_")[1]));
@ -91,7 +93,9 @@
log.info("contextStr:{}",contextStr); log.info("contextStr:{}",contextStr);
log.info("linkUrl:{}",linkUrl); log.info("linkUrl:{}",linkUrl);
log.info("linkMobileUrl:{}",linkMobileUrl); log.info("linkMobileUrl:{}",linkMobileUrl);
sendMsg(userid+"",codeid,titleStr,contextStr,linkUrl,linkMobileUrl); log.info("linkUrlStr:{}",linkUrlStr);
log.info("linkMobileUrlStr:{}",linkMobileUrlStr);
sendMsg(userid+"",codeid,titleStr,contextStr,linkUrlStr,linkMobileUrlStr);
// } // }
}else { }else {
log.info("userid:{}",userid); log.info("userid:{}",userid);

@ -78,6 +78,8 @@
//调换下表单字段 //调换下表单字段
String contextStr = replaceVariablesByRs(context, rs); String contextStr = replaceVariablesByRs(context, rs);
String titleStr = replaceVariablesByRs(title, rs); String titleStr = replaceVariablesByRs(title, rs);
String linkUrlStr = replaceVariablesByRs(linkUrl, rs);
String linkMobileUrlStr = replaceVariablesByRs(linkMobileUrl, rs);
// 判断下接收人是否为表单字段 // 判断下接收人是否为表单字段
String sender = ""; String sender = "";
if (userid.startsWith("field_")){ if (userid.startsWith("field_")){
@ -93,7 +95,9 @@
log.info("contextStr:{}",contextStr); log.info("contextStr:{}",contextStr);
log.info("linkUrl:{}",linkUrl); log.info("linkUrl:{}",linkUrl);
log.info("linkMobileUrl:{}",linkMobileUrl); log.info("linkMobileUrl:{}",linkMobileUrl);
sendMsg(sender+"",codeid,titleStr,contextStr,linkUrl,linkMobileUrl); log.info("linkUrlStr:{}",linkUrlStr);
log.info("linkMobileUrlStr:{}",linkMobileUrlStr);
sendMsg(sender+"",codeid,titleStr,contextStr,linkUrlStr,linkMobileUrlStr);
successNum++; successNum++;
// } // }
} }

@ -0,0 +1,15 @@
<%@ page import="com.engine.tjyh.xc.util.WorkflowCreateHandler" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@page contentType="text/html; charset=UTF-8" %>
<%
%>
<%!
%>

@ -0,0 +1,50 @@
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.hrm.resource.ResourceComInfo" %>
<%@ page import="weaver.workflow.workflow.WorkflowVersion" %>
<%@ page import="weaver.general.BaseBean" %>
<%@page contentType="text/html; charset=UTF-8" %>
<%
HashMap<String, Object> result = new HashMap<>();
String requestid = request.getParameter("requestid");
//需要提醒的子流程流程id
String workflowids = request.getParameter("workflowids");
WorkflowVersion workflowVersion = new WorkflowVersion();
String allVersionwfids = workflowVersion.getAllVersionStringByWFIDs4List(workflowids);
RecordSet rs = new RecordSet();
ResourceComInfo resourceComInfo = new ResourceComInfo();
ArrayList<JSONObject> records = new ArrayList<>();
try {
rs.executeQuery("select * from workflow_requestbase " +
" where mainRequestId = ? " +
" and workflowid in ( " + allVersionwfids + " ) and CURRENTNODETYPE != 3", requestid);
while (rs.next()) {
JSONObject record = new JSONObject();
record.put("requestid", rs.getString("requestid"));
record.put("requestName", rs.getString("requestName"));
String creater = rs.getString("creater");
record.put("creater", creater );
record.put("createrName", resourceComInfo.getLastname(creater));
records.add(record);
}
} catch (Exception e) {
}
result.put("status", true);
result.put("data", records);
new BaseBean().writeLog("result:--"+result);
out.print(JSONObject.toJSONString(result));
%>
<%!
%>

@ -166,7 +166,7 @@
// out.print(rs.getMsg()); // out.print(rs.getMsg());
//表单字段处理结束,开始处理流程标题 //表单字段处理结束,开始处理流程标题
if(!StringUtil.isEmpty(newRequestName)){ if(!StringUtil.isEmpty(newRequestName)){
updateRequestNameAllReq(newRequestName,requestid,wfid_subrequestidMap,maxid) updateRequestNameAllReq(newRequestName,requestid,wfid_subrequestidMap,maxid);
} }
%> %>

@ -0,0 +1,464 @@
<%@ page import="com.wbi.util.ParamUtil" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.workflow.workflow.WorkflowComInfo" %>
<%@ page import="weaver.workflow.workflow.WorkflowBillComInfo" %>
<%@ page import="weaver.conn.BatchRecordSet" %>
<%@ page import="weaver.general.StringUtil" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="org.slf4j.LoggerFactory" %>
<%@ page import="org.slf4j.Logger" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.hrm.HrmUserVarify" %>
<%@page contentType="text/html; charset=UTF-8" %>
<%
Logger log = LoggerFactory.getLogger("CustomBusiness");
Map<String, Object> param = ParamUtil.request2Map(request);
String requestid = Util.null2String(param.get("requestid"));
String workflowid = Util.null2String(param.get("workflowid"));
Object formid = param.get("formid");
Object nodeid = param.get("nodeid");
log.info("requestparam:{}", param);
HashMap<String, String> newFieldInfo = new HashMap<>();
HashMap<String, String> oldFieldInfo = new HashMap<>();
int userid = HrmUserVarify.getUser(request, response).getUID();
String clientIp = getClientIp(request);
String newRequestName = "";
//判断下是否需要修改流程标题
if (!StringUtil.isEmpty(Util.null2String(param.get("field_requestName")))){
newRequestName = Util.null2String(param.get("field_requestName"));
}
//将字段信息封装进fieldInfo
param.forEach((k, v) -> {
if (k.startsWith("field_")) {
String fieldName = k.split("_")[1];
if (!"requestName".equals(fieldName)){
newFieldInfo.put(fieldName, Util.null2String(v));
}
}
});
HashMap<Object, Object> map = new HashMap<>();
map.put("requestid", requestid);
map.put("workflowid", workflowid);
map.put("formid", formid);
map.put("nodeid", nodeid);
//获取表单名称
WorkflowComInfo wf = new WorkflowComInfo();
WorkflowBillComInfo wcInfo = new WorkflowBillComInfo();
String formId = wf.getFormId(workflowid);
String tablename = wcInfo.getTablename(formId);
// 查询数据,记录原始数据;
RecordSet rs = new RecordSet();
rs.executeQuery("select * from " + tablename + " where requestid = ? ", requestid);
log.info("查询数据sql:select * from " + tablename + " where requestid = {} ", requestid);
if (rs.next()) {
for (String fieldName : newFieldInfo.keySet()) {
String oldValue = rs.getString(fieldName);
oldFieldInfo.put(fieldName, oldValue);
}
}
//更新主流程表单数据 -- start
ArrayList<String> updateParam = new ArrayList<>();
ArrayList<String> updateField = new ArrayList<>();
for (String fieldName : newFieldInfo.keySet()) {
updateField.add(fieldName + " = ? ");
updateParam.add(newFieldInfo.get(fieldName));
}
updateParam.add(requestid);
String updateFormSql = String.format(" UPDATE %s SET %s WHERE requestid = ? ", tablename, String.join(",", updateField));
log.info("updateFormSql:{}", updateFormSql);
log.info("updateParam.toArray():{}", updateParam.toArray());
rs.executeUpdate(updateFormSql, updateParam.toArray());
log.info("updateFormSql.getExceptionMsg:{}", rs.getExceptionMsg());
//记录日志
String maxid = insertMainReqLog(requestid, oldFieldInfo, updateFormSql, updateParam ,userid,clientIp);
//更新主流程表单数据 -- end
// 开始处理子流程数据 -- start
//查询出当前流程的所有子流程
//获取当前流程的子流程
//封装一个map,key为流程id,value为请求id的List
HashMap<String, List<String>> wfid_subrequestidMap = new HashMap<>();
HashMap<String, List<String>> subrequestid_wfidMap = new HashMap<>();
// rs.executeQuery("select * from WORKFLOW_REQUESTBASE where MAINREQUESTID = ?", requestid);
// while (rs.next()) {
// String subworkflowid = rs.getString("WORKFLOWID");
// if (wfid_subrequestidMap.get(subworkflowid) == null) {
// ArrayList<String> subrequestids = new ArrayList<>();
// subrequestids.add(rs.getString("REQUESTID"));
// wfid_subrequestidMap.put(subworkflowid, subrequestids);
// } else {
// wfid_subrequestidMap.get(subworkflowid).add(rs.getString("REQUESTID"));
// }
// }
getAllSubReqs(requestid,workflowid,wfid_subrequestidMap);
log.info("wfid_subrequestidMap:{}", wfid_subrequestidMap);
String sep = Util.getSeparator() + "";
BatchRecordSet batchRecordSet = new BatchRecordSet();
ArrayList<String> updateSetfield = null;
for (String wfkey : wfid_subrequestidMap.keySet()) {
String[] key = wfkey.split("_");
// String mainwfid = sp[0];
String subwfid = key[key.length-1];
String subformId = wf.getFormId(subwfid);
String subTablename = wcInfo.getTablename(subformId);
updateField = new ArrayList<>();
updateSetfield = new ArrayList<>();
String updateParamStr = "";
// 查询当前流程和子流程的字段对应关系
Map<String, String> fieldSetInfo = getFieldSetInfo(wfkey,newFieldInfo);
log.info("fieldSetInfo:{}", fieldSetInfo);
for (String fieldName : newFieldInfo.keySet()) {
if (fieldSetInfo.get(fieldName) != null) {
String subfieldName = fieldSetInfo.get(fieldName);
updateField.add(subfieldName + " = ?");
updateSetfield.add(subfieldName);
if (StringUtil.isEmpty(updateParamStr)) {
updateParamStr = newFieldInfo.get(fieldName);
} else {
updateParamStr += sep + newFieldInfo.get(fieldName);
}
}
}
if (updateSetfield.size() == 0 ){
continue;
}
String updateSubReqFormSql = String.format(" UPDATE %s SET %s WHERE requestid = ? ", subTablename, String.join(",", updateField));
log.info("updateSubReqFormSql:{}", updateSubReqFormSql);
//开始处理子流程
String updateSetfieldStr = String.join(",", updateSetfield);
ArrayList<String> updateParamList = new ArrayList<>();
List<String> subrequestids = wfid_subrequestidMap.get(wfkey);
log.info("subrequestids:{}",subrequestids);
HashMap<String, String> reqid_oldValueMap = new HashMap<>();
for (String subrequestid : subrequestids) {
// 查询下原始数据
String oldValueStr = "";
rs.executeQuery("select " + updateSetfieldStr + "from "+subTablename+" where requestid = ? ", subrequestid);
rs.next();
for (String field : updateSetfield) {
if (StringUtil.isEmpty(oldValueStr)) {
oldValueStr = field + "=" + rs.getString(field);
} else {
oldValueStr += "," + field + "=" + rs.getString(field);
}
}
reqid_oldValueMap.put(subrequestid,oldValueStr);
//更新字段参数
String paramStr = updateParamStr + sep + subrequestid;
log.info("paramStr:{}", paramStr);
updateParamList.add(paramStr);
}
batchRecordSet.executeSqlBatchNew(updateSubReqFormSql, updateParamList);
insertsubReqLog(maxid,reqid_oldValueMap,updateSubReqFormSql,updateParamList,batchRecordSet);
}
// out.print(rs.getMsg());
//表单字段处理结束,开始处理流程标题
if(!StringUtil.isEmpty(newRequestName)){
updateRequestNameAllReq(newRequestName,requestid,wfid_subrequestidMap,maxid);
}
%>
<%!
//更新涉及到的流程的流程标题
private void updateRequestNameAllReq(String newRequestName, String requestid, HashMap<String, List<String>> wfid_subrequestidMap, String maxid) {
RecordSet rs = new RecordSet();
//用于记录插入日志表的字符串参数list
ArrayList<String> logParamStrs = new ArrayList<>();
//主要更新workflow_requestBase的字段
//REQUESTNAME ,REQUESTNAMENEW,REQUESTNAMEHTMLNEW
// 先更新主流程
//更新主流程RequestName
updateRequestNameByRequestId(newRequestName,requestid,maxid,rs,logParamStrs);
//开始更新子流程
for (List<String> value : wfid_subrequestidMap.values()) {
for (String subreqid : value) {
updateRequestNameByRequestId(newRequestName,subreqid,maxid,rs,logParamStrs);
}
}
String sql = "insert into uf_updateFormLog_dt1 (mainid,lcid,xgqdz,xgsql,sqlcs) values (?,?,?,?,?) ";
BatchRecordSet batchRecordSet = new BatchRecordSet();
boolean b = batchRecordSet.executeSqlBatchNew(sql, logParamStrs);
log.info("updateRequestNameAllReq.executeSqlBatchNew.result:{}",b);
}
private void updateRequestNameByRequestId(String newRequestName, String requestid,String maxid, RecordSet rs, ArrayList<String> logParamStrs) {
log.info("updateRequestNameByRequestId:requestid:{}",requestid);
rs.executeQuery("select REQUESTNAME ,REQUESTNAMENEW,REQUESTNAMEHTMLNEW from workflow_requestBase where requestid = ?" , requestid);
rs.next();
String requestname = Util.null2String(rs.getString("REQUESTNAME"));
String requestnamenew = Util.null2String(rs.getString("REQUESTNAMENEW"));
String requestnamehtmlnew = Util.null2String(rs.getString("REQUESTNAMEHTMLNEW"));
// 通过字符串替换获取新的标题
String update_requestnamenew = requestnamenew.replaceAll(requestname, newRequestName);
String update_requestnamehtmlnew = requestnamehtmlnew.replaceAll(requestname, newRequestName);
String updateSql = "update workflow_requestBase set REQUESTNAME = ? ,REQUESTNAMENEW = ? ,REQUESTNAMEHTMLNEW = ? where requestid = ?";
rs.executeUpdate(updateSql,newRequestName,update_requestnamenew,update_requestnamehtmlnew,requestid);
//拼接日志表的参数
String sep = Util.getSeparator() + "";
//
String param = maxid
+ sep + requestid
+ sep + "requestname:"+requestname + ",requestnamenew:"+requestnamenew+",requestnamehtmlnew"+requestnamehtmlnew
+ sep + updateSql
+ sep + newRequestName +"|"+ update_requestnamenew +"|"+ update_requestnamehtmlnew+"|"+requestid;
logParamStrs.add(param);
}
private void insertsubReqLog(String maxid, HashMap<String, String> reqid_oldValueMap, String updateFormSql, ArrayList<String> updateParam, BatchRecordSet batchRecordSet) {
log.info("insertsubReqLog:maxid:{}",maxid);
// RecordSet rs = new RecordSet();
String sql = "insert into uf_updateFormLog_dt1 (mainid,lcid,xgqdz,xgsql,sqlcs) values (?,?,?,?,?) ";
String sep = Util.getSeparator() + "";
ArrayList<String> insertParam = new ArrayList<>();
for (String paramStr : updateParam) {
String reqid = paramStr.substring(paramStr.lastIndexOf(sep) + 1);
String oldValue = reqid_oldValueMap.get(reqid);
String noSepParamStr = paramStr.replaceAll(sep,"|");
String insertParamStr = maxid + sep + reqid + sep + oldValue + sep + updateFormSql + sep + noSepParamStr;
insertParam.add(insertParamStr);
// rs.executeUpdate(sql,maxid,reqid,oldValue,updateFormSql,paramStr);
}
log.info("insertsubReqLog:insertParam.size:{}",insertParam.size());
boolean b = batchRecordSet.executeSqlBatchNew(sql, insertParam);
log.info("batchRecordSet.executeSqlBatchNew.result:{}",b);
}
private String insertMainReqLog(String requestid, HashMap<String, String> oldFieldInfo, String updateFormSql, ArrayList<String> updateParam, int userid, String clientIp) {
String maxid = "";
try {
RecordSet rs = new RecordSet();
rs.executeUpdate("insert into uf_updateFormLog (lcid , xgqdz ,xgsql,sqlcs,ip,czr) values (?,?,?,?,?,?)",requestid,oldFieldInfo.toString(),updateFormSql,String.join("|",updateParam),clientIp,userid);
rs.executeQuery("select max(id) id from uf_updateFormLog ");
rs.next();
maxid = Util.null2String(rs.getString("id"));
}catch (Exception e){
log.info("insertMainReqLog:error:{}",e.getMessage());
}
return maxid;
}
static Logger log = LoggerFactory.getLogger("CustomBusiness");
WorkflowComInfo wf = new WorkflowComInfo();
WorkflowBillComInfo wcInfo = new WorkflowBillComInfo();
private Map<String, String> getFieldSetInfo(String wfkey, HashMap<String, String> newFieldInfo) {
RecordSet rs = new RecordSet();
log.info("getFieldSetInfo:wfkey:{}",wfkey);
String[] key = wfkey.split("_");
log.info("getFieldSetInfo:key:{}",wfkey);
HashMap<String, String> fieldSetInfo = new HashMap<>();
for (int i = key.length - 1; i >= 1 ; i--) {
String mainwfid = key[i-1];;
String subwfid = key[i];
log.info("mainwfid:{}",mainwfid);
log.info("subwfid:{}",subwfid);
String activeVersionID = "";
rs.executeQuery("select ACTIVEVERSIONID from WORKFLOW_BASE where id = ? ", subwfid);
if (rs.next()) {
activeVersionID = rs.getString("ACTIVEVERSIONID");
}
log.info("activeVersionID:{}", activeVersionID);
rs.executeQuery("select * from WORKFLOW_BASE where ACTIVEVERSIONID = ? ", activeVersionID);
ArrayList<String> subwfids = new ArrayList<>();
while (rs.next()) {
subwfids.add(rs.getString("id"));
}
log.info("subwfids:{}", subwfids);
String setid = "";
rs.executeQuery("select * from workflow_subwfset where MAINWORKFLOWID = ? and SUBWORKFLOWID in ( " + String.join(",", subwfids) + " )", mainwfid);
if (rs.next()) {
setid = rs.getString("id");
}
log.info("setid:{}", setid);
rs.executeQuery("select b.FIELDNAME mainwfField,c.FIELDNAME subwfField, " +
" b.fieldhtmltype mainfieldhtmltype, " +
" c.fieldhtmltype subfieldhtmltype " +
" from workflow_subwfsetdetail a left join WORKFLOW_BILLFIELD b " +
" on a.MAINWORKFLOWFIELDID = b.ID " +
" left join WORKFLOW_BILLFIELD c " +
" on a.SUBWORKFLOWFIELDID = c.ID " +
" where SUBWFSETID = ? ", setid);
HashMap<String, String> tempfieldSetInfo = new HashMap<>();
while (rs.next()) {
//todo
//这里通过fieldhtmltype字段类型判断是否需要更新,如果字段类型不同就忽略,
//后期需优化,着急上线,先用这个方法简单判断下
String mainfieldhtmltype = Util.null2String(rs.getString("mainfieldhtmltype"));
String subfieldhtmltype = Util.null2String(rs.getString("subfieldhtmltype"));
if (mainfieldhtmltype.equals(subfieldhtmltype)) {
tempfieldSetInfo.put(rs.getString("mainwfField"), rs.getString("subwfField"));
}
}
if (fieldSetInfo.size() == 0){
fieldSetInfo = tempfieldSetInfo;
}else{
HashMap<String, String> map = new HashMap<>();
for (String mainwffield : tempfieldSetInfo.keySet()) {
String subwffield = tempfieldSetInfo.get(mainwffield);
map.put(mainwffield,fieldSetInfo.get(subwffield));
}
fieldSetInfo = map;
}
log.info("getFieldSetInfo:fieldSetInfo:{}",fieldSetInfo);
}
return fieldSetInfo;
}
/****
* 使用递归查询获取当前流程的所有子流程
* @return key 主流程wfid_子流程wfid value 子流程requestid的list
*/
// private static Map<String, List<String>> getAllSubReqs(String requestids, String mainwfId, Map<String, List<String>> wfid_subrequestidMap) {
//
// RecordSet rs = new RecordSet();
// rs.executeQuery("select * from WORKFLOW_REQUESTBASE where MAINREQUESTID in ( "+requestids+" )");
// int size = wfid_subrequestidMap.size();
// while (rs.next()) {
// String subworkflowid = rs.getString("WORKFLOWID");
// String wfIdKey = mainwfId + "_" + subworkflowid;
// if (wfid_subrequestidMap.get(wfIdKey) == null) {
// ArrayList<String> subrequestids = new ArrayList<>();
// subrequestids.add(rs.getString("REQUESTID"));
// wfid_subrequestidMap.put(wfIdKey, subrequestids);
// } else {
// wfid_subrequestidMap.get(wfIdKey).add(rs.getString("REQUESTID"));
// }
// }
// if (size != wfid_subrequestidMap.size()) {
// for (String wfkey : wfid_subrequestidMap.keySet()) {
// List<String> subrequestids = wfid_subrequestidMap.get(wfid_subrequestidMap);
// String join = String.join(",", subrequestids);
// getAllSubReqs(join,wfkey.split(",")[1],wfid_subrequestidMap);
// }
// }
// return wfid_subrequestidMap;
// }
// public static Map<String, List<String>> getAllSubReqs(String requestids, String mainwfId, Map<String, List<String>> wfid_subrequestidMap) {
// // 初始化一个队列来处理请求ID和相应的层级key
// Queue<Map.Entry<String, String>> requestQueue = new LinkedList<>();
// // 初始化一个集合来追踪已经处理过的工作流路径
// Set<String> processedKeys = new HashSet<>();
//
// // 将初始请求ID和mainwfId放入队列
// requestQueue.add(new AbstractMap.SimpleEntry<>(requestids, mainwfId));
//
// // 开始处理队列中的请求ID
// while (!requestQueue.isEmpty()) {
// Map.Entry<String, String> entry = requestQueue.poll();
// String currentRequestIds = entry.getKey();
// String currentKey = entry.getValue();
//
// processRequests(currentRequestIds, currentKey, wfid_subrequestidMap, processedKeys, requestQueue);
// }
//
// return wfid_subrequestidMap;
// }
//
// private static void processRequests(String requestids, String currentKey, Map<String, List<String>> wfid_subrequestidMap, Set<String> processedKeys, Queue<Map.Entry<String, String>> requestQueue) {
// RecordSet rs = new RecordSet();
// rs.executeQuery("select * from WORKFLOW_REQUESTBASE where MAINREQUESTID in (" + requestids + ")");
//
// // 处理查询结果集并更新映射表
// while (rs.next()) {
// String subworkflowid = rs.getString("WORKFLOWID");
// String newKey = currentKey + "_" + subworkflowid;
// String requestId = rs.getString("REQUESTID");
//
// // 如果该工作流路径还没有被处理过,处理并加入映射表
// if (!processedKeys.contains(newKey)) {
// processedKeys.add(newKey);
// wfid_subrequestidMap.computeIfAbsent(newKey, k -> new ArrayList<>()).add(requestId);
//
// // 将新的子请求ID和新生成的key放入队列中以便后续处理
// requestQueue.add(new AbstractMap.SimpleEntry<>(requestId, newKey));
// } else {
// // 如果已经处理过则只更新映射表中的请求ID列表
// wfid_subrequestidMap.get(newKey).add(requestId);
// }
// }
// }
public static Map<String, List<String>> getAllSubReqs(String requestids, String mainwfId, Map<String, List<String>> wfid_subrequestidMap) {
// 初始化一个集合来追踪已经处理过的工作流路径
Set<String> processedKeys = new HashSet<>();
// 开始递归处理主请求
processRequests(requestids, mainwfId, wfid_subrequestidMap, processedKeys);
return wfid_subrequestidMap;
}
private static void processRequests(String requestids, String currentKey, Map<String, List<String>> wfid_subrequestidMap, Set<String> processedKeys) {
RecordSet rs = new RecordSet();
rs.executeQuery("select * from WORKFLOW_REQUESTBASE where MAINREQUESTID in (" + requestids + ")");
// 处理查询结果集并更新映射表
while (rs.next()) {
String subworkflowid = rs.getString("WORKFLOWID");
String newKey = currentKey + "_" + subworkflowid;
String requestId = rs.getString("REQUESTID");
// 如果该工作流路径还没有被处理过,处理并加入映射表
if (!processedKeys.contains(newKey)) {
processedKeys.add(newKey);
wfid_subrequestidMap.computeIfAbsent(newKey, k -> new ArrayList<>()).add(requestId);
// 递归处理子请求构建下一层的key
processRequests(requestId, newKey, wfid_subrequestidMap, processedKeys);
} else {
// 如果已经处理过则只更新映射表中的请求ID列表
wfid_subrequestidMap.get(newKey).add(requestId);
}
}
}
public static String getClientIp(HttpServletRequest request) {
String ip = request.getHeader("X-Forwarded-For");
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
%>

@ -0,0 +1,3 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="ln" class="ln.LN" scope="page" />
<%out.println("Cid:"+ln.getCid());%>

@ -0,0 +1,15 @@
拟稿人拟稿 插入了内容[测试_11210170]
起草 插入了内容[测试-杨芳_10110033]
团队负责人审核 插入了内容[测试岳喆_10111182]
修改了文本[测试岳喆_10111182]
部门负责人 插入了内容[测试_10110050]
插入了内容[测试_11210170]
部门主要负责人 修改了文本[测试_11210170]
插入了内容[测试_10110047]
其他部门-退拟稿人 修改了文本[测试_10110047]
插入了内容[测试_11210170]
办公室核稿 修改了文本[测试_10110047]
办公室处理

@ -1,7 +1,5 @@
<%@ page import="org.slf4j.Logger" %> <%@ page import="org.slf4j.Logger" %>
<%@ page import="org.slf4j.LoggerFactory" %> <%@ page import="org.slf4j.LoggerFactory" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%@ page import="net.sf.json.JSONObject" %> <%@ page import="net.sf.json.JSONObject" %>
<%@ page import="weaver.wps.doccenter.utils.Tools" %> <%@ page import="weaver.wps.doccenter.utils.Tools" %>
<%@ page import="weaver.wps.doccenter.utils.Config" %> <%@ page import="weaver.wps.doccenter.utils.Config" %>
@ -9,115 +7,71 @@
<%@ page import="weaver.wps.doccenter.convert.BaseConvert" %> <%@ page import="weaver.wps.doccenter.convert.BaseConvert" %>
<%@ page import="weaver.general.Util" %> <%@ page import="weaver.general.Util" %>
<%@ page import="weaver.hrm.User" %> <%@ page import="weaver.hrm.User" %>
<%@page contentType="text/html; charset=UTF-8" %> <%@ page import="com.engine.custom.archives.util.ArchivesUtil" %>
<%@ page import="java.text.SimpleDateFormat" %>
<% <%@ page import="weaver.conn.RecordSet" %>
<%@ page import="com.engine.custom.archives.entity.PushArchivesBean" %>
HashMap<String, String> param = new HashMap<>();
param.put("imagefileid","37304");
param.put("targetFileFormat","PDF");
int i = convertDocType(param);
out.print(i);
%>
<%!
static Logger log = LoggerFactory.getLogger("CustomBusiness");
public Map<String, String> convert(Map<String, String> params) throws Exception {
Map<String, String> result = new HashMap<String, String>();
JSONObject requestParams = new JSONObject();
User user = new User(1);
String ecfileid = params.get("imagefileid");
// 判断模块。目前应该只有知识管理的
String fromMould = Tools.null2String(params.get("fromMould"));
fromMould = Tools.getFromMould(fromMould);
String targetFileFormat = Tools.null2String(params.get("targetFileFormat"));
String apiUrl = "";// Config.getCpsV1OfficeConvert();
if(6 == Config.getProductVersion()) {
apiUrl = Config.getV6CpsV1OfficeConvert();
} else if(5 == Config.getProductVersion()) {
apiUrl = Config.getCpsV1OfficeConvert();
}
FileInfoUtil fileInfoUtil = new FileInfoUtil(); <%@ page import="weaver.general.StringUtil" %>
Map<String,String> fileInfo = fileInfoUtil.getFileInfo(ecfileid, user, fromMould); <%@ page import="java.util.*" %>
<%@ page import="weaver.file.ImageFileManager" %>
<%@ page import="java.io.*" %>
String filename = fileInfo.get("filename"); <%@ page import="com.engine.common.util.ParamUtil" %>
filename = Tools.getFileNameWithLowerCaseSuffix(filename); <%@page contentType="text/html; charset=UTF-8" %>
requestParams = new JSONObject();
requestParams.put("doc_filename", getTempFileName(filename));
requestParams.put("doc_url", fileInfo.get("download"));
requestParams.put("target_file_format", targetFileFormat);
//判断下转换格式为PDF且配置文件中未开启时添加参数
// "to_pdf" = {
// "show_ins_and_del" = 1
// }
// if ("PDF".equals(targetFileFormat) && Config.isProperty("show_ins_and_del", 1, 1)){
JSONObject to_pdf = new JSONObject();
to_pdf.put("show_ins_and_del",1);
requestParams.put("to_pdf", to_pdf);
// }
<%
Map<String, Object> param = ParamUtil.request2Map(request);
String requestid = Util.null2String(param.get("requestid"));
if (!StringUtil.isEmpty(requestid)) {
RecordSet rs = new RecordSet();
rs.executeQuery("select * from formtable_main_11 where requestid = ? ",requestid);
rs.next();
String qgqhj = rs.getString("qgqhj");
Map<String, String> qgqhjMap = ArchivesUtil.getFileIdByDocId(qgqhj);
//清稿前痕迹
final int[] arr = new int[1];
qgqhjMap.forEach((docid, imageid) -> {
ImageFileManager imageFileManager = new ImageFileManager();
imageFileManager.getImageFileInfoById(Util.getIntValue(imageid));
InputStream inputStream = imageFileManager.getInputStream();
String imageFileName = imageFileManager.getImageFileName();
InputStream pdfinputStream = null;
try {
int pdfimggeid = 0;
pdfimggeid = ArchivesUtil.docConvert2Pdf(imageid);
arr[0] = pdfimggeid;
if (pdfimggeid>0){
imageFileManager.getImageFileInfoById(Util.getIntValue(pdfimggeid));
pdfinputStream = imageFileManager.getInputStream();
ArchivesUtil.saveInputStreamToFile(pdfinputStream, "/opt/oadata/archivesFile/"+imageFileName+".pdf");
ArchivesUtil.deletePdfImageFile(pdfimggeid);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(pdfinputStream!=null) {
try {
pdfinputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 判断如果是excel则优化下转换结果 });
String ext = filename.contains(".") ? filename.substring(filename.lastIndexOf(".")+1) : ""; out.print(arr[0]);
boolean isExcelFile = ("doc".equals(ext) || "docx".equals(ext) || "wps".equals(ext)|| "xls".equals(ext)|| "xlsx".equals(ext)); }
isExcelFile = isExcelFile || ("," + Config.getPropertyValue("doccenter_fit_excel_exts") + ",").contains("," + ext + ",");
if( isExcelFile && Config.isProperty("doccenter_fit_excel", 1, 1)) {
JSONObject et_page_zoom = new JSONObject();
// 表示是否保持当前客户端的缩放比true表示保持当前缩放比打印false表示以100%的缩放比打印当fit_pagetall或fit_pagewide中有一个为1或都为1时该参数不生效
et_page_zoom.put("keep_pagezoom", "true".equals(Config.getPropString("doccenter_keep_pagezoom", "true")));
// 表示是否适配所有行0表示正常分页打印1表示不分页所有行在一页上
et_page_zoom.put("fit_pagewide", Config.getPropIntValue("doccenter_fit_pagewide", 0));
// 表示是否适配所有列0表示正常分页打印1表示不分页所有列在一页上当fit_pagetall与fit_pagewide都为1时表示将所有内容打印到一页上
et_page_zoom.put("fit_pagetall", Config.getPropIntValue("doccenter_fit_pagetall", 1));
requestParams.put("et_page_zoom", et_page_zoom);
}
// 结果文件的文件名 %>
String targetFilename = params.containsKey("targetFilename") ? params.get("targetFilename"): "";
if(Tools.isEmptyOrNull(targetFilename) && !Tools.isEmptyOrNull(filename)) {
String nameOnly = filename.contains(".") ? filename.substring(0, filename.lastIndexOf(".")) : filename;
targetFilename = nameOnly + "." + targetFileFormat.toLowerCase();
}
BaseConvert baseConvert = new BaseConvert(user);
if(!params.containsKey("comefrom")) {
params.put("comefrom", "DocTypeConvert");
}
result = baseConvert.convert(apiUrl, requestParams, targetFilename, params);
// 处理其他的事务
return result;
}
public static String getTempFileName(String filename) { <%!
if(Tools.isEmptyOrNull(filename) || !filename.contains(".")){
return filename;
}
int idx = filename.lastIndexOf(".");
return"1" + filename.substring(idx).toLowerCase();
}
public int convertDocType(Map<String, String> params){
Map<String, String> result = new HashMap<String, String>();
try {
result = convert(params);
if("0".equals(result.get("status"))){
return Util.getIntValue(result.get("imagefileid"));
}
} catch (Exception e) {
log.error(e.getMessage());
}
return -1;
}
%> %>
Loading…
Cancel
Save