no message

master
rengp 12 months ago
parent 1f8103f6bf
commit 9bf30c89ee

@ -8,6 +8,8 @@ import com.engine.custom.archives.service.firstBranch.FirstBranchSendingPushArch
import com.engine.custom.archives.service.firstBranch.FirstBranchSignReportPushArchivesService;
import com.engine.custom.archives.service.secondBranch.SecondBranchReceivingPushArchivesService;
import com.engine.custom.archives.service.secondBranch.SecondBranchSendingPushArchivesService;
import com.engine.custom.archives.service.signReport.OrgPersonPushArchivesService;
import com.engine.custom.archives.service.signReport.PetitionPushArchivesService;
import com.engine.custom.archives.util.ArchivesUtil;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
@ -44,6 +46,8 @@ public class PushArchivesCorn extends BaseCronJob {
FirstBranchSignReportPushArchivesService firstBranchSignReportPushArchivesService =new FirstBranchSignReportPushArchivesService();
SecondBranchReceivingPushArchivesService secondBranchReceivingPushArchivesService =new SecondBranchReceivingPushArchivesService();
SecondBranchSendingPushArchivesService secondBranchSendingPushArchivesService =new SecondBranchSendingPushArchivesService();
OrgPersonPushArchivesService orgPersonPushArchivesService = new OrgPersonPushArchivesService();
PetitionPushArchivesService petitionPushArchivesService = new PetitionPushArchivesService();
@Override
public void execute() {
@ -72,5 +76,9 @@ public class PushArchivesCorn extends BaseCronJob {
secondBranchReceivingPushArchivesService.pushArchives(param);
secondBranchSendingPushArchivesService.setProp(param);
secondBranchSendingPushArchivesService.pushArchives(param);
orgPersonPushArchivesService.setProp(param);
orgPersonPushArchivesService.pushArchives(param);
petitionPushArchivesService.setProp(param);
petitionPushArchivesService.pushArchives(param);
}
}

@ -252,7 +252,7 @@ public class FirstBranchSendingPushArchivesService implements KeyWord {
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();
}finally {
if(inputStream!=null) {
@ -289,7 +289,7 @@ public class FirstBranchSendingPushArchivesService implements KeyWord {
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();
}finally {
if(inputStream!=null) {
@ -367,7 +367,7 @@ public class FirstBranchSendingPushArchivesService implements KeyWord {
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + CBDDIR + File.separator + WJCLDWORD + ".pdf" + ".pdf");
}
i[0]++;
} catch (IOException e) {
} catch (Exception e) {
e.printStackTrace();
}finally {
if(inputStream!=null) {

@ -1251,9 +1251,9 @@ public class ArchivesUtil {
}
RequestBody requestBody = null;
String code = getCodeByFileType(file.getName());
if (StringUtil.isEmpty(code)){
return "";
}
// if (StringUtil.isEmpty(code)){
// return "";
// }
String fileName = null;
String extName = "";
try {

@ -0,0 +1,124 @@
<%@ page import="com.engine.custom.sl.entity.EsbRequestHeader" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Date" %>
<%@ page import="com.engine.custom.sl.entity.TravelToEsbBean" %>
<%@ page import="java.nio.charset.StandardCharsets" %>
<%@ page import="com.engine.util.SocketClientUtil" %>
<%@ page import="com.engine.util.XMLUtils" %>
<%@ page import="java.util.Map" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="com.engine.common.util.ParamUtil" %>
<%@ page import="java.net.Socket" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ page import="weaver.general.StringUtil" %>
<%@ page import="java.io.*" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="weaver.hrm.HrmUserVarify" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%
// Map<String, Object> param = ParamUtil.request2Map(request);
// String workCode = param.get("workCode").toString();
String workCode = HrmUserVarify.getUser(request, response).getLoginid();
String timeStr = generateTimestamp();
EsbRequestHeader esbRequestHeader = new EsbRequestHeader();
esbRequestHeader.setService_sn(timeStr+workCode);
esbRequestHeader.setSystem_id("0275");
esbRequestHeader.setRequester_id("0258");
esbRequestHeader.setBranch_id("ITMS0002");
esbRequestHeader.setChannel_id("17");
esbRequestHeader.setService_time(timeStr);
esbRequestHeader.setNeed_request("");
esbRequestHeader.setSvcCd("500130004");
esbRequestHeader.setSvcScn("17");
String bnkSrlNo = esbRequestHeader.getRequester_id() + timeStr + workCode;
esbRequestHeader.setBnkSrlNo(bnkSrlNo);
esbRequestHeader.setFileFlg("0");
String Service_Body = "<Service_Body><request><path>todo</path><method>getCount</method><args><entry><key>userNum</key><value>"+workCode+"</value></entry></args></request></Service_Body>" ;
String Service_Header = TravelToEsbBean.convertObjectToXml(esbRequestHeader,"Service_Header");
String serviceXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service>";
// out.print("UTF_8_serviceXML==="+ serviceXML);
serviceXML = serviceXML + Service_Header + Service_Body;
serviceXML = serviceXML + "</Service>";
// out.print("UTF_8_serviceXML==="+ serviceXML);
String length = String.format("%08d", serviceXML.length());
serviceXML = length + serviceXML;
serviceXML = new String(serviceXML.getBytes(StandardCharsets.UTF_8));
String send = "";
try {
send = send(serviceXML);
// out.print("返回=="+send);
}catch (Exception e){
// out.print("异常=="+ e.getMessage());
}
// SocketClientUtil scketClient = new SocketClientUtil("14.1.76.116",10149);
// String substring = send.substring(0, 8);
// String substring1 = send.substring(8);
// out.print(substring);
Map<String, String> map = XMLUtils.parseXMLToMap(send);
JSONObject jsonObject = new JSONObject();
jsonObject.put("count", Util.getIntValue(map.get("count")));
out.print(jsonObject.toJSONString());
%>
<%!
public String send(String request) throws Exception {
// bs.writeLog("Client Start...");
BaseBean bs = new BaseBean();
Socket socket = null;
try {
//创建一个流套接字并将其连接到指定主机上的指定端口号
socket = new Socket("14.1.71.90",10149);
// String str = "00000612<?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>";
// System.out.println(str);
//读取服务器端数据
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
//向服务器端发送数据
// PrintStream out = new PrintStream(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8));
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8),true);
out.println(request);
char[] datalen=new char[8];//报文前八位为报文体总长度
input.read(datalen,0,8);
String lendata=new String (datalen);
int length=Integer.parseInt(lendata);
new BaseBean().writeLog("报文长度"+length);
char[] data=new char[length];
int datalength = input.read(data,0,length);
String requestData = new String(data);
new BaseBean().writeLog("requestData",requestData);
// String ret = input.readLine();
System.out.println("服务器端返回过来的是: " + requestData);
bs.writeLog("服务器端返回过来的是: " + requestData);
// 如接收到 "OK" 则断开连接
if (!StringUtil.isEmpty(requestData)) {
bs.writeLog("客户端将关闭连接");
System.out.println("客户端将关闭连接: " + requestData);
Thread.sleep(500);
}
out.close();
input.close();
return requestData;
} catch (Exception e) {
bs.writeLog("客户端异常:" + e.getMessage());
throw e;
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
socket = null;
bs.writeLog("客户端 finally 异常:" + e.getMessage());
}
}
}
// return "-1";
}
public static String generateTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date currentDate = new Date();
return dateFormat.format(currentDate);
}
%>

@ -1,6 +1,7 @@
package weaver.filter;
import com.weaver.file.Prop;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.StringUtil;
import weaver.general.Util;
@ -23,8 +24,20 @@ public class LoginEMFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {
String isopen = Prop.getPropValue("emloginFilter", "isopen");
if ("1".equals(isopen)){
// String isopen = Prop.getPropValue("emloginFilter", "isopen");
Boolean isopen = false;
RecordSet rs = new RecordSet();
rs.executeQuery("select count(id) cnt from uf_emloginFilter where isOpen = 0");
try {
if (rs.next()){
int cnt = Util.getIntValue(rs.getString("cnt"));
isopen = cnt > 0 ;
}
}catch (Exception e){
}
if (isopen){
try {
HttpServletRequest request = (HttpServletRequest) servletRequest;
StringBuffer url = request.getRequestURL();

@ -173,6 +173,8 @@ public class Action20231015024217 extends BaseBean implements Action {
String fj = "";
String spdfj = "";
String spwhscpdfwj = "";
String qxspdpdffj = "";
String tjyxgnccspdfjpdf = "";
//表单数据
if (rs.next()) {
mainid = rs.getString("id");
@ -199,6 +201,8 @@ public class Action20231015024217 extends BaseBean implements Action {
fj = Util.null2String(rs.getString("fj"));
spdfj = Util.null2String(rs.getString("spdfj"));
spwhscpdfwj = Util.null2String(rs.getString("clspdpdffj"));
qxspdpdffj = Util.null2String(rs.getString("qxspdpdffj"));
tjyxgnccspdfjpdf = Util.null2String(rs.getString("tjyxgnccspdfjpdf"));
// String formData = rs.getString("formData");
}
// 封装文件数组
@ -218,6 +222,12 @@ public class Action20231015024217 extends BaseBean implements Action {
if (!StringUtil.isEmpty(spwhscpdfwj)){
fjids.add(spwhscpdfwj);
}
if (!StringUtil.isEmpty(qxspdpdffj)){
fjids.add(qxspdpdffj);
}
if (!StringUtil.isEmpty(tjyxgnccspdfjpdf)){
fjids.add(tjyxgnccspdfjpdf);
}
ArrayList<acsryItem> acsryArray = new ArrayList<>();
for (String fjid : fjids) {
acsryItem acsryItem = new acsryItem();

@ -0,0 +1,601 @@
package weaver.interfaces.workflow.action.javacode;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSONObject;
import com.api.integration.BaseBean;
import com.dcfs.fts.common.error.FtpException;
import com.engine.custom.archives.entity.PushArchivesBean;
import com.engine.custom.archives.util.ArchivesUtil;
import com.engine.custom.hg.util.HgUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import weaver.conn.RecordSet;
import weaver.file.ImageFileManager;
import weaver.general.StringUtil;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.hrm.company.DepartmentComInfo;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;
import weaver.soa.workflow.request.RequestService;
import java.io.*;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
public class Action20240716025747 extends BaseBean implements Action {
public static Logger log = LoggerFactory.getLogger("Archives");
private static String filePath = "/opt/oadata/archivesFile";
private static String Url = "http://14.1.213.5:18080/fcscloud/composite/upload";
public String templatePath = "/opt/weaver/archivesFile/template/"; // 模板文件路径
private int endTime= 21;
public static final String ZWDIR = "正文";
public static final String FJDIR = "附件";
public static final String CBDDIR = "承办单";
public static final String ZLCDIR = "承办单" + File.separator + "子流程";
public static final String LZXXDIR = "流转信息";
public static final String FJFILE = "附件";
public static final String FJWORD = "附件";
public static final String ZWWORD = "正文";
public static final String LHGWORD = "留痕稿";
public static final String LCFJWORD = "流程附件";
public static final String QZYJFJWORD = "签字意见附件";
public static final String WJCLDWORD = "文件处理单";
public static final String WJLZXXWORD = "文件流转信息";
public static final String XBBMFJWORD = "协办部门附件";
public void setProp(Map<String, String> param) {
filePath = Util.null2String(param.get("filePath"));
Url = Util.null2String(param.get("Url"));
templatePath = Util.null2String(param.get("templatePath"));
endTime = Util.getIntValue(param.get("endTime"),7);
}
public void pushArchives(Map<String, String> param) {
log.info("PushArchivesCorn====Begin========{}", param);
Date date = ArchivesUtil.getDate();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
String format = dateFormat.format(date);
SimpleDateFormat yyyyMMddHHmmss = new SimpleDateFormat("yyyy-MM-dd HH:mm");
// 获取当前时间的第一秒
String firstSecond = yyyyMMddHHmmss.format(ArchivesUtil.getFirstSecondOfDate(date));
// 获取当前时间的最后一秒
String lastSecond = yyyyMMddHHmmss.format(ArchivesUtil.getLastSecondOfDate(date));
RecordSet recordSet = new RecordSet();
List<PushArchivesBean> result = ArchivesUtil.getResultList(recordSet, firstSecond, lastSecond, 3);
log.error("推送分行发文的数量:{}", result.size());
File file = ArchivesUtil.crFile(filePath + "/togd_" + new SimpleDateFormat("yyyyMMdd000000").format(date));
log.error("textfile:{}", file.getAbsolutePath());
for (PushArchivesBean pushArchivesBean : result) {
if (ArchivesUtil.isAfterSevenAM(endTime)){
log.info("超过执行时间:{}点暂停计划任务",endTime);
break;
}
// int id = pushArchivesBean.getId();
int request = pushArchivesBean.getRequest();
log.error("推送的requestId:{}", request);
try {
String context = generateFile(request);
if ("-1".equals(context)){
continue;
}
ArchivesUtil.writeToTxt(file.getPath(), file.getName(), context, true);
File txtzip = new File(filePath + File.separator + "togd_" + new SimpleDateFormat("yyyyMMdd000000").format(date) + ".zip");
log.error("textZipFile:{}", txtzip.getAbsolutePath());
OutputStream outputStream = new FileOutputStream(txtzip);
File writename = new File(file.getPath() + "/" + file.getName() + ".txt");
com.engine.custom.hg.util.ZipUtil.filesToZip(writename, outputStream, writename.getName());
log.error("writename:{}", writename.getName());
if(outputStream != null){
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
String s = HgUtils.putFile(txtzip.getAbsolutePath(), txtzip.getName());
updateRecord(request,"esbtxtml",s);
updateRecord(request,"zt","0");
log.error("textZip:{}", s);
} catch (FtpException e) {
e.printStackTrace();
log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage());
} catch (IOException e) {
e.printStackTrace();
log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage());
} catch (Exception e){
e.printStackTrace();
log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage());
}
}
}
private String generateFile(int requestid) throws FtpException, IOException {
Map<String, String> requesData = getRequestByid(requestid);
String newRequestid = "togd"+requestid;
log.info("requesData:{}", requesData);
String bh = requesData.get("bh");
if (StringUtil.isEmpty(bh)){
return "-1";
}
String fj = Util.null2String(requesData.get("fj"));
String dwd = Util.null2String(requesData.get("dwd"));
String zw = Util.null2String(requesData.get("zw"));
String qgqhj = Util.null2String(requesData.get("qgqhj"));
String thhlh = Util.null2String(requesData.get("thhlh"));
//增加签字意见中的附件到附件文件夹中
Map<String, String> signFiles = ArchivesUtil.getSignFiles(requestid,false);
List<String> docids = new ArrayList<>();
// docids.addAll(Arrays.asList(fj.split(",")));
// docids.addAll(Arrays.asList(zwkbj.split(",")));
Map<String, String> fjMap = ArchivesUtil.getFileIdByDocId(fj);
Map<String, String> dwdMap = ArchivesUtil.getFileIdByDocId(dwd);
Map<String, String> zwMap = ArchivesUtil.getFileIdByDocId(zw);
Map<String, String> qgqhjMap = ArchivesUtil.getFileIdByDocId(qgqhj);
Map<String, String> thhlhMap = ArchivesUtil.getFileIdByDocId(thhlh);
List<String> zwFileName = new ArrayList<>();
List<String> fjFileName = new ArrayList<>();
final int[] i = {1};
//附件
fjMap.forEach((docid, imageid) -> {
ImageFileManager imageFileManager = new ImageFileManager();
imageFileManager.getImageFileInfoById(Util.getIntValue(imageid));
InputStream inputStream = imageFileManager.getInputStream();
//中文路径/中文文件名
String imageFileName = filePath + File.separator + newRequestid + File.separator + FJDIR + File.separator + LCFJWORD + "-" +imageFileManager.getImageFileName();
fjFileName.add(LCFJWORD + "-" +imageFileManager.getImageFileName());
log.info("生成附件路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName);
try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
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 + FJDIR + File.separator + LCFJWORD + "-" + imageFileManager.getImageFileName() + ".pdf");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
//签字意见附件
signFiles.forEach((docid, imageid) -> {
ImageFileManager imageFileManager = new ImageFileManager();
imageFileManager.getImageFileInfoById(Util.getIntValue(imageid));
InputStream inputStream = imageFileManager.getInputStream();
//中文路径/中文文件名
String imageFileName = filePath + File.separator + newRequestid + File.separator + FJDIR + File.separator + QZYJFJWORD+ "-" +imageFileManager.getImageFileName();
fjFileName.add(QZYJFJWORD+ "-" +imageFileManager.getImageFileName());
log.info("生成签字意见附件路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName);
try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
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 + FJDIR + File.separator + QZYJFJWORD+ "-" + imageFileManager.getImageFileName() + ".pdf");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
//多文档
// dwdMap.forEach((docid, imageid) -> {
// ImageFileManager imageFileManager = new ImageFileManager();
// imageFileManager.getImageFileInfoById(Util.getIntValue(imageid));
// InputStream inputStream = imageFileManager.getInputStream();
// zwFileName.add(imageFileManager.getImageFileName());
// //中文路径/中文文件名
// String imageFileName = filePath + File.separator + requestid + File.separator + zwdir + File.separator + fjWord + i[0] + "_" + zwWord + "_" + imageFileManager.getImageFileName();
// log.info("生成多文档路径:{}", imageFileName);
// imageFileName = ArchivesUtil.codeUtf8(imageFileName);
// try {
// File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
// 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 + requestid + File.separator + zwdir + File.separator + fjWord + i[0] + "_" + zwWord + "_" + imageFileManager.getImageFileName() + ".pdf");
// }
// } catch (IOException e) {
// e.printStackTrace();
// }
// i[0]++;
// });
//正文
zwMap.forEach((docid, imageid) -> {
ImageFileManager imageFileManager = new ImageFileManager();
imageFileManager.getImageFileInfoById(Util.getIntValue(imageid));
InputStream inputStream = imageFileManager.getInputStream();
String newFile = FJWORD + i[0] + "_" + ZWWORD + "-" + (imageFileManager.getImageFileName().replaceAll("/","-"));
//中文路径/中文文件名
String imageFileName = filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile;
zwFileName.add(newFile);
log.info("生成正文路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName);
try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
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) {
e.printStackTrace();
}finally {
if(inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
i[0]++;
});
//清稿前痕迹
qgqhjMap.forEach((docid, imageid) -> {
ImageFileManager imageFileManager = new ImageFileManager();
imageFileManager.getImageFileInfoById(Util.getIntValue(imageid));
InputStream inputStream = imageFileManager.getInputStream();
String newFile = FJWORD + i[0] + "_" + LHGWORD + "-" + (imageFileManager.getImageFileName().replaceAll("/","-"));
zwFileName.add(newFile);
//中文路径/中文文件名
String imageFileName = filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile;
log.info("生成清稿前痕迹路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName);
try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
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) {
e.printStackTrace();
}finally {
if(inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
i[0]++;
});
//套红后留痕
// thhlhMap.forEach((docid, imageid) -> {
// ImageFileManager imageFileManager = new ImageFileManager();
// imageFileManager.getImageFileInfoById(Util.getIntValue(imageid));
// InputStream inputStream = imageFileManager.getInputStream();
// zwFileName.add(imageFileManager.getImageFileName());
// //中文路径/中文文件名
// String imageFileName = filePath + File.separator + requestid + File.separator + zwdir + File.separator + fjWord + i[0] + "_" + lhgWord + "_" + imageFileManager.getImageFileName();
// log.info("生成套红后留痕路径:{}", imageFileName);
// imageFileName = ArchivesUtil.codeUtf8(imageFileName);
// try {
// File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
// 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 + requestid + File.separator + zwdir + File.separator + fjWord + i[0] + "_" + lhgWord + "_" + imageFileManager.getImageFileName() + ".pdf");
// }
// } catch (IOException e) {
// e.printStackTrace();
// }
// i[0]++;
// });
//开始承办单 先获取主流程的承办单
List<String> requestDocid = ArchivesUtil.generaRequestFormPdf(requestid, 0);
// 1.去掉生成子流程承办单
// List<String> subRequestDocid = generaSubRequestFormPdf(requestid);
Map<String, String> reqDocMap = ArchivesUtil.getFileIdByDocId(String.join(",", requestDocid));
// 2.去掉生成子流程承办单
// Map<String, String> subReqDocMap = getFileIdByDocId(String.join(",", subRequestDocid));
log.error("reqDocMap:{}", JSONObject.toJSONString(reqDocMap));
//log.error("subReqDocMap:{}", JSONObject.toJSONString(subReqDocMap));
docids.addAll(requestDocid);
// 3.去掉生成子流程承办单
// docids.addAll(subRequestDocid);
i[0] = 1;
//主流程承办单
reqDocMap.forEach((docid, imageid) -> {
ImageFileManager imageFileManager = new ImageFileManager();
imageFileManager.getImageFileInfoById(Util.getIntValue(imageid));
InputStream inputStream = imageFileManager.getInputStream();
//中文路径/中文文件名
// String imageFileName = filePath + File.separator + requestid + File.separator + cbddir + File.separator + fjFile + i[0] + "_" + imageFileManager.getImageFileName();
// String imageFileName = filePath + File.separator + newRequestid + File.separator + cbddir + File.separator + fjFile + i[0] + "_" + wjcldWord+".pdf";
String imageFileName = filePath + File.separator + newRequestid + File.separator + CBDDIR + File.separator + WJCLDWORD+".pdf";
log.info("主流程承办单路径:{}", imageFileName);
imageFileName = ArchivesUtil.codeUtf8(imageFileName);
try {
File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName);
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 + CBDDIR + File.separator + WJCLDWORD + ".pdf" + ".pdf");
}
i[0]++;
} catch (Exception e) {
e.printStackTrace();
}finally {
if(inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
//正文
log.error(JSONObject.toJSONString(requestDocid));
for (String docid : docids) {
log.error("删除了" + docid);
ArchivesUtil.deleteDocByid(docid);
}
//--------------------------------------------------------------------
RequestService requestService = new RequestService();
RequestInfo requestInfo = requestService.getRequest(Util.getIntValue(requestid), 100);
String workflowid = requestInfo.getWorkflowid();
String logFile = ArchivesUtil.getSignLog(requestid, CBDDIR + File.separator + LZXXDIR, requestInfo.getCreatorid() + requestInfo.getDescription(), templatePath, filePath,false,workflowid);
String s = ArchivesUtil.callApi(Url, new File(logFile));
log.error(s);
JSONObject result = JSONObject.parseObject(s);
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, logFile + ".pdf");
}
String zipName = filePath + File.separator + newRequestid + ".zip";
ZipUtil.zip(filePath + File.separator + newRequestid, zipName);
log.error("zipName:{}", zipName);
String ftpFilePath = HgUtils.putFile(zipName, newRequestid + ".zip");
log.error("ftpFilePath:{}", ftpFilePath);
updateRecord(requestid,"esbwjml",ftpFilePath);
ArchivesUtil.deleteDirectory(filePath + File.separator + newRequestid);
// String ftpFilePathNew = HgUtils.putFile(zipName, "test" + File.separator + requestid + ".zip");
// log.error("ftpFilePathNew:{}", ftpFilePathNew);
String context = getContext(requestid, requesData, newRequestid + ".zip", zwFileName, fjFileName);
// insertRecord(requestid, context, ftpFilePath);
updateRecord(requestid,"content",context);
log.error("context:{}", context);
return context;
}
/***
*
* @param requestid
* @return
*/
public Map<String, String> getRequestByid(int requestid) {
HashMap<String, String> record = new HashMap<>();
String sql = "select * from formtable_main_49 where requestid = ?";
String reqsql = "select REQUESTNAME from WORKFLOW_REQUESTBASE where REQUESTID = ?";
RecordSet rs = new RecordSet();
rs.executeQuery(sql, requestid);
if (rs.next()) {
record.put("fj", Util.null2String(rs.getString("fj")));
record.put("dwd", Util.null2String(rs.getString("dwd")));
record.put("zw", Util.null2String(rs.getString("zw")));
record.put("ngrq", Util.null2String(rs.getString("ngrq")));
record.put("jghwt", Util.null2String(rs.getString("jghwt")));
record.put("bh", Util.null2String(rs.getString("bh")));
record.put("ngbm", Util.null2String(rs.getString("ngbm")));
record.put("bgqx", Util.null2String(rs.getString("bgqx")));
record.put("cwrq", Util.null2String(rs.getString("cwrq")));
record.put("ys", Util.null2String(rs.getString("ys")));
record.put("wz", Util.null2String(rs.getString("wz")));
record.put("ngbm", Util.null2String(rs.getString("ngbm")));
record.put("lb", Util.null2String(rs.getString("lb")));
record.put("bz", Util.null2String(rs.getString("bz")));
record.put("yywh", Util.null2String(rs.getString("yywh")));
record.put("wjlx", Util.null2String(rs.getString("wjlx")));
record.put("fwlx", Util.null2String(rs.getString("fwlx")));
record.put("f", Util.null2String(rs.getString("f")));
record.put("ngr", Util.null2String(rs.getString("ngr")));
record.put("qgqhj", Util.null2String(rs.getString("qgqhj")));
record.put("thhlh", Util.null2String(rs.getString("thhlh")));
}
rs.executeQuery(reqsql, requestid);
if (rs.next()) {
record.put("REQUESTNAME", Util.null2String(rs.getString("REQUESTNAME")));
}
return record;
}
private String getContext(int requestid, Map<String, String> requesData, String zipName, List<String> zwFileName, List<String> fjFileName) {
StringBuilder context = new StringBuilder();
try {
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
String ngrq = Util.null2String(requesData.get("cwrq")); //拟稿日期
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(ngrq, formatter);
int year = date.getYear();
context.append(year).append("|"); //1.年度 -> 拟稿日期
String jghwt = Util.null2String(requesData.get("jghwt"));//2.机构或问题 -> 机构或问题
context.append(jghwt).append("|");
String bh = Util.null2String(requesData.get("bh"));// 3.文号 -> 编号
context.append(bh).append("|");
String requestname = Util.null2String(requesData.get("REQUESTNAME")); // 4.文件题名 -> 流程名称
context.append(requestname).append("|");
String ngbmName = Util.null2String(departmentComInfo.getDepartmentmark(requesData.get("ngbm"))); //5 责任者 -> 拟稿部门
context.append(ngbmName).append("|");
String bgqx = Util.null2String(requesData.get("bgqx")); //6 保管期限 -> 保管期限
context.append(bgqx).append("|");
String cwrq = Util.null2String(requesData.get("cwrq")); //7 日期 -> 成文日期
context.append(cwrq).append("|");
String ys = Util.null2String(requesData.get("ys")); //8 页数 -> 页数
context.append(ys).append("|");
String wz = Util.null2String(requesData.get("wz")); //9 文种 -> 文种
context.append(wz).append("|");
String ngbm = Util.null2String(requesData.get("ngbm"));
String[] deptData = ArchivesUtil.getDeptNameAndCode(ngbm);
String[] subData = ArchivesUtil.getSubCom(ngbm);
context.append(subData[0]).append("|"); //10 行编号 -> 拟稿部门
context.append(subData[1]).append("|"); //11 行名称
context.append("").append("|"); // 12 保管期限编号
context.append("").append("|"); // 13 保管期限及编号
context.append("").append("|"); // 14 是否开放
context.append("").append("|"); // 15 互见号
String lb = Util.null2String(requesData.get("lb"));
context.append(lb).append("|"); //16 类别 -> 类别
//TODO
String xgbm = Util.null2String(getAssociatedDepts(requesData));
context.append(xgbm).append("|"); //17 相关部门 -> 流经部门
// String lwh = Util.null2String(requesData.get("lwh"));
context.append("").append("|");// 18 收文号 -> 空
String fs = "";
context.append(fs).append("|"); // 19 份数 -> 份数
String bz = Util.null2String(requesData.get("bz"));
context.append("").append("|"); // 20 备注 -> 备注
String yywh = Util.null2String(requesData.get("yywh"));
context.append("").append("|"); // 21 引用文号 -> 引用文号
String wjlx = Util.null2String(requesData.get("wjlx"));
context.append("").append("|"); // 22 文件类型 -> 空
String fwlx = Util.null2String(requesData.get("fwlx"));
context.append("分行发文").append("|"); // 23 发文类型 -> 空
String f = Util.null2String(requesData.get("f"));
context.append(f).append("|"); // 24 发 -> 空
String ngr = Util.null2String(requesData.get("ngr"));
context.append(new User(Util.getIntValue(ngr)).getLoginid()).append("|"); // 25 拟稿人 -> 拟稿人
context.append(ngbmName).append("|"); // 26 拟稿部门 -> 拟稿部门名称
context.append("发文").append("|"); // 27 公文类型 -> "收文"
//TODO
context.append(ArchivesUtil.getAssociatedPersons(requestid,false)).append("|"); // 28 相关人员 -> 参与人员
context.append("智慧OA").append("|"); // 29 数据来源 -> 数据来源
context.append(year).append("|"); // 30 形成年度 -> 年份
context.append(String.join("&&", zwFileName)).append("|"); // 31 正文名称
context.append(String.join("&&", fjFileName)).append("|"); // 32 附件名称
context.append("togd"+requestid).append("|"); // 33 主键
context.append("").append("|"); // 34 关联主键
context.append("").append("|"); // 35 被关联主键
context.append(zipName);// 36 压缩包名称
} catch (Exception e) {
e.printStackTrace();
log.error("getContextError:{}", e.getMessage());
}
return context.toString();
}
private String getAssociatedDepts(Map<String, String> requesData) {
HashSet<String> records = new HashSet<>();
records.addAll(Arrays.asList(Util.null2String(requesData.get("hqbm")).split(","))); // 会签部门
records.addAll(Arrays.asList(Util.null2String(requesData.get("ngbm")).split(","))); // 拟稿部门
records.addAll(Arrays.asList(Util.null2String(requesData.get("bmyb")).split(","))); // 部门阅办
records.addAll(Arrays.asList(Util.null2String(requesData.get("cs")).split(","))); // 抄送
records.addAll(Arrays.asList(Util.null2String(requesData.get("nbfs")).split(","))); // 本行发送
records.addAll(Arrays.asList(Util.null2String(requesData.get("zs")).split(","))); // 主送
records.addAll(Arrays.asList(Util.null2String(requesData.get("dqbm")).split(","))); // 当前部门
records.addAll(Arrays.asList(Util.null2String(requesData.get("cb")).split(","))); // 抄报
records.addAll(Arrays.asList(Util.null2String(requesData.get("bmhqzj")).split(","))); // 部门会签(追加)
records.addAll(Arrays.asList(Util.null2String(requesData.get("bmybzj")).split(","))); // 部门阅办(追加)
ArrayList<String> deptName = new ArrayList<>();
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
for (String record : records) {
try {
if (StringUtil.isEmpty(record)){
continue;
}
String departmentName = departmentComInfo.getDepartmentmark(record);
deptName.add(departmentName);
} catch (Exception e) {
e.printStackTrace();
}
}
return String.join("&&", deptName);
}
private void updateRecord(int requestid, String field , String fieldvalue) {
String sql = "update uf_pushArchivesLog set "+field+" = ? where request = ?";
RecordSet recordSet = new RecordSet();
recordSet.executeUpdate(sql, fieldvalue, requestid);
}
@Override
public String execute(RequestInfo request) {
new Thread(new Runnable() {
@Override
public void run() {
pushArchives(null);
}
}).start();
return Action.SUCCESS;
}
}

@ -0,0 +1,51 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.BatchRecordSet;
import weaver.conn.RecordSet;
import weaver.general.StringUtil;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.util.ArrayList;
/**
* Online custom action interface
*/
public class Action20240719092616 extends BaseBean implements Action {
@Override
public String execute(RequestInfo request) {
String requestId = request.getRequestid();
String tablename = request.getRequestManager().getBillTableName();
RecordSet rs = new RecordSet();
rs.execute("select * from " + tablename + " where requestid = " + requestId);
rs.next();
String hrmids = rs.getString("hrmids");
String formid = rs.getString("formid");
String sep = Util.getSeparator() + "";
ArrayList<Integer> hrms = new ArrayList<>();
ArrayList<String> insertParams = new ArrayList<>();
String[] split = hrmids.split(",");
for (String s : split) {
if (!StringUtil.isEmpty(s)){
hrms.add(Util.getIntValue(s));
}
}
for (Integer hrm : hrms) {
User user = new User(hrm);
int userSubCompany1 = user.getUserSubCompany1();
int userDepartment = user.getUserDepartment();
String paramString = hrm+sep+userSubCompany1+sep+userDepartment+sep+formid;
writeLog("paramString:"+paramString);
insertParams.add(paramString);
}
String insertsql = "insert into uf_yddbmd (ryid ,fb,bm,FORMMODEID) VALUES (?,?,?,?)";
BatchRecordSet brs = new BatchRecordSet();
brs.executeSqlBatchNew(insertsql,insertParams);
return Action.SUCCESS;
}
}

@ -0,0 +1,40 @@
package weaver.interfaces.workflow.action.javacode;
import weaver.conn.BatchRecordSet;
import weaver.conn.RecordSet;
import weaver.general.StringUtil;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import java.util.ArrayList;
/**
* Online custom action interface
*/
public class Action20240719092807 extends BaseBean implements Action{
@Override
public String execute(RequestInfo request) {
String requestId = request.getRequestid();
String tablename = request.getRequestManager().getBillTableName();
RecordSet rs = new RecordSet();
rs.execute("select * from " + tablename + " where requestid = " + requestId);
rs.next();
String hrmids = rs.getString("hrmids");
ArrayList<String> hrms = new ArrayList<>();
// ArrayList<String> deleteParams = new ArrayList<>();
String[] split = hrmids.split(",");
for (String s : split) {
if (!StringUtil.isEmpty(s)){
hrms.add(s);
}
}
// deleteParams.addAll(hrms);
String deletesql = "delete uf_yddbmd where ryid = ?";
BatchRecordSet brs = new BatchRecordSet();
brs.executeSqlBatchNew(deletesql,hrms);
return Action.SUCCESS;
}
}

@ -90,7 +90,7 @@
errorInfo = xmdh;
}
}
rs.executeQuery("select glqxjspd from formtable_main_442 where requestid = ?", ccqqlc);
rs.executeQuery("select glqxjspd from formtable_main_409 where requestid = ?", ccqqlc);
rs.next();
String glqxjspd = Util.null2String(rs.getString("glqxjspd"));
log.info("glqxjspd:{}", glqxjspd);
@ -114,7 +114,7 @@
} else if (8 == type) {
tjyxgnccspdfjpdf = Util.null2String(rs.getString("spwhscpdfwj"));
log.info("tjyxgnccspdfjpdf:{}", tjyxgnccspdfjpdf);
rs.executeQuery("select glqxjspd from formtable_main_442 where requestid = ?", requestId);
rs.executeQuery("select glqxjspd from formtable_main_409 where requestid = ?", requestId);
rs.next();
String glqxjspd = Util.null2String(rs.getString("glqxjspd"));
log.info("glqxjspd:{}", glqxjspd);

Loading…
Cancel
Save