no message

master
rengp 12 months ago
parent d416f78d89
commit 1f8103f6bf

@ -98,6 +98,13 @@ public class ReceivingPushArchivesService {
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(requestid, s);
updateRecord(requestid,"esbtxtml",s);

@ -90,6 +90,13 @@ public class SendingPushArchivesService {
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");
@ -482,7 +489,7 @@ public class SendingPushArchivesService {
context.append(bh).append("|");
String requestname = Util.null2String(requesData.get("REQUESTNAME")); // 4.文件题名 -> 流程名称
context.append(requestname).append("|");
String ngbmName = Util.null2String(departmentComInfo.getDepartmentname(requesData.get("ngbm"))); //5 责任者 -> 拟稿部门
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("|");

@ -85,6 +85,13 @@ public class SignReportPushArchivesService {
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, s);
updateRecord(request,"esbtxtml",s);
@ -451,7 +458,7 @@ public class SignReportPushArchivesService {
context.append(bh).append("|");
String requestname = Util.null2String(requesData.get("REQUESTNAME")); // 4.文件题名 -> 流程名称
context.append(requestname).append("|");
String ngbmName = Util.null2String(departmentComInfo.getDepartmentname(requesData.get("ngbm"))); //5 责任者 -> 拟稿部门
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("|");

@ -83,6 +83,13 @@ public class FirstBranchReceivingPushArchivesService implements KeyWord {
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(requestid, s);
updateRecord(requestid,"esbtxtml",s);
@ -637,7 +644,7 @@ public class FirstBranchReceivingPushArchivesService implements KeyWord {
if (StringUtil.isEmpty(record)){
continue;
}
String departmentName = departmentComInfo.getDepartmentName(record);
String departmentName = departmentComInfo.getDepartmentmark(record);
deptName.add(departmentName);
} catch (Exception e) {
e.printStackTrace();

@ -73,9 +73,17 @@ public class FirstBranchSendingPushArchivesService implements KeyWord {
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");

@ -74,6 +74,13 @@ public class FirstBranchSignReportPushArchivesService implements KeyWord {
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, s);
updateRecord(request,"esbtxtml",s);
@ -440,7 +447,7 @@ public class FirstBranchSignReportPushArchivesService implements KeyWord {
context.append(bh).append("|");
String requestname = Util.null2String(requesData.get("REQUESTNAME")); // 4.文件题名 -> 流程名称
context.append(requestname).append("|");
String ngbmName = Util.null2String(departmentComInfo.getDepartmentname(requesData.get("ngbm"))); //5 责任者 -> 拟稿部门
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("|");
@ -515,7 +522,7 @@ public class FirstBranchSignReportPushArchivesService implements KeyWord {
if (StringUtil.isEmpty(record)){
continue;
}
String departmentName = departmentComInfo.getDepartmentName(record);
String departmentName = departmentComInfo.getDepartmentmark(record);
deptName.add(departmentName);
} catch (Exception e) {
e.printStackTrace();

@ -83,6 +83,13 @@ public class SecondBranchReceivingPushArchivesService implements KeyWord {
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(requestid, s);
updateRecord(requestid,"esbtxtml",s);
@ -636,7 +643,7 @@ public class SecondBranchReceivingPushArchivesService implements KeyWord {
if (StringUtil.isEmpty(record)){
continue;
}
String departmentName = departmentComInfo.getDepartmentName(record);
String departmentName = departmentComInfo.getDepartmentmark(record);
deptName.add(departmentName);
} catch (Exception e) {
e.printStackTrace();

@ -76,6 +76,13 @@ public class SecondBranchSendingPushArchivesService implements KeyWord {
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");

@ -0,0 +1,556 @@
package com.engine.custom.archives.service.signReport;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSONObject;
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.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 OrgPersonPushArchivesService {
public static Logger log = LoggerFactory.getLogger("Archives");
private static String filePath;
private static String Url;
private static String templatePath; // 模板文件路径
private static final String zwdir = "正文";
private static final String fjdir = "附件";
private static final String cbddir = "承办单";
private static final String zlcdir = "承办单" + File.separator + "子流程";
private static final String lzxxdir = "流转信息";
private static final String fjFile = "附件";
private static final String fjWord = "附件";
private static final String zwWord = "正文";
private static final String lhgWord = "留痕稿";
private static final String lcfjWord = "流程附件";
private static final String qzyjfjWord = "签字意见附件";
private static final String wjcldWord = "文件处理单";
private static final String wjlzxxWord = "文件流转信息";
private int endTime= 7;
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) {
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();
//签报 type = 2
List<PushArchivesBean> result = ArchivesUtil.getResultList(recordSet, firstSecond, lastSecond, 8);
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, s);
updateRecord(request,"esbtxtml",s);
updateRecord(request,"zt","0");
log.error("textZip:{}", s);
} catch (FtpException e) {
log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage());
e.printStackTrace();
} catch (IOException e) {
log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage());
e.printStackTrace();
} catch (Exception e) {
log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage());
e.printStackTrace();
}
}
}
private String generateFile(int requestid) throws FtpException, IOException {
Map<String, String> requesData = getRequestByid(requestid);
String newRequestid = "togd"+requestid;
log.info("requesData:{}", requesData);
String bhnew = requesData.get("bhnew");
log.info("流程id:{}:文号为空不推送", requestid);
if (StringUtil.isEmpty(bhnew)){
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"));
//可能有多个,获取id最大的一个
qgqhj = Util.null2String(ArchivesUtil.findMaxValue(qgqhj));
//增加签字意见中的附件到附件文件夹中
Map<String, String> signFiles = ArchivesUtil.getSignFiles(requestid,true);
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> zwMap = ArchivesUtil.getFileIdByDocId(zw);
Map<String, String> qgqhjMap = ArchivesUtil.getFileIdByDocId(qgqhj);
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(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 (IOException 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(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 (IOException e) {
e.printStackTrace();
} finally {
if(inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
//正文
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 (IOException 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 (IOException 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, 1);
// 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 + fjFile + i[0] + "_" + wjcldWord + ".pdf" + ".pdf");
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + cbddir + File.separator + wjcldWord + ".pdf" + ".pdf");
}
i[0]++;
} catch (IOException 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,true,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_277 where requestid = ?";
String reqsql = "select REQUESTNAME from WORKFLOW_REQUESTBASE where REQUESTID = ?";
RecordSet rs = new RecordSet();
rs.executeQuery(sql, requestid);
if (rs.next()) {
record.put("bh", Util.null2String(rs.getString("bh")));
record.put("bhnew", Util.null2String(rs.getString("bhnew")));
record.put("ngbm", Util.null2String(rs.getString("ngbm")));
record.put("ngr", Util.null2String(rs.getString("ngr")));
record.put("ngrq", Util.null2String(rs.getString("ngrq")));
record.put("lxfs", Util.null2String(rs.getString("lxfs")));
record.put("bt", Util.null2String(rs.getString("bt")));
record.put("zw", Util.null2String(rs.getString("zw")));
record.put("fj", Util.null2String(rs.getString("fj")));
record.put("hqbm", Util.null2String(rs.getString("hqbm")));
record.put("hqbmzhwy", Util.null2String(rs.getString("hqbmzhwy")));
record.put("hqdqbm", Util.null2String(rs.getString("hqdqbm")));
record.put("ffbm", Util.null2String(rs.getString("ffbm")));
record.put("hqbmzjhqbmzj", Util.null2String(rs.getString("hqbmzj")));
record.put("dwd", Util.null2String(rs.getString("dwd")));
record.put("bmffzj", Util.null2String(rs.getString("bmffzj")));
record.put("dqnf", Util.null2String(rs.getString("dqnf")));
record.put("qgqhj", Util.null2String(rs.getString("qgqhj")));
}
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("ngrq")); //拟稿日期
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("bhnew"));// 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(ngrq).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("ngbm")).split(","))); // 会签部门
records.addAll(Arrays.asList(Util.null2String(requesData.get("hqbm")).split(","))); // 拟稿部门
records.addAll(Arrays.asList(Util.null2String(requesData.get("ffbm")).split(","))); // 部门阅办
records.addAll(Arrays.asList(Util.null2String(requesData.get("hqbmzj")).split(","))); // 抄送
records.addAll(Arrays.asList(Util.null2String(requesData.get("bmffzj")).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 s) {
String sql = "update uf_pushArchivesLog set esbtxtml = ? where request = ?";
RecordSet recordSet = new RecordSet();
recordSet.executeUpdate(sql, s, requestid);
}
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);
}
}

@ -0,0 +1,556 @@
package com.engine.custom.archives.service.signReport;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSONObject;
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.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 PetitionPushArchivesService {
public static Logger log = LoggerFactory.getLogger("Archives");
private static String filePath;
private static String Url;
private static String templatePath; // 模板文件路径
private static final String zwdir = "正文";
private static final String fjdir = "附件";
private static final String cbddir = "承办单";
private static final String zlcdir = "承办单" + File.separator + "子流程";
private static final String lzxxdir = "流转信息";
private static final String fjFile = "附件";
private static final String fjWord = "附件";
private static final String zwWord = "正文";
private static final String lhgWord = "留痕稿";
private static final String lcfjWord = "流程附件";
private static final String qzyjfjWord = "签字意见附件";
private static final String wjcldWord = "文件处理单";
private static final String wjlzxxWord = "文件流转信息";
private int endTime= 7;
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) {
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();
//签报 type = 2
List<PushArchivesBean> result = ArchivesUtil.getResultList(recordSet, firstSecond, lastSecond, 9);
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, s);
updateRecord(request,"esbtxtml",s);
updateRecord(request,"zt","0");
log.error("textZip:{}", s);
} catch (FtpException e) {
log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage());
e.printStackTrace();
} catch (IOException e) {
log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage());
e.printStackTrace();
} catch (Exception e) {
log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage());
e.printStackTrace();
}
}
}
private String generateFile(int requestid) throws FtpException, IOException {
Map<String, String> requesData = getRequestByid(requestid);
String newRequestid = "togd"+requestid;
log.info("requesData:{}", requesData);
String bhnew = requesData.get("bhnew");
log.info("流程id:{}:文号为空不推送", requestid);
if (StringUtil.isEmpty(bhnew)){
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"));
//可能有多个,获取id最大的一个
qgqhj = Util.null2String(ArchivesUtil.findMaxValue(qgqhj));
//增加签字意见中的附件到附件文件夹中
Map<String, String> signFiles = ArchivesUtil.getSignFiles(requestid,true);
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> zwMap = ArchivesUtil.getFileIdByDocId(zw);
Map<String, String> qgqhjMap = ArchivesUtil.getFileIdByDocId(qgqhj);
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(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 (IOException 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(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 (IOException e) {
e.printStackTrace();
} finally {
if(inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
//正文
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 (IOException 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 (IOException 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, 1);
// 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 + fjFile + i[0] + "_" + wjcldWord + ".pdf" + ".pdf");
ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + cbddir + File.separator + wjcldWord + ".pdf" + ".pdf");
}
i[0]++;
} catch (IOException 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,true,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_344 where requestid = ?";
String reqsql = "select REQUESTNAME from WORKFLOW_REQUESTBASE where REQUESTID = ?";
RecordSet rs = new RecordSet();
rs.executeQuery(sql, requestid);
if (rs.next()) {
record.put("bh", Util.null2String(rs.getString("bh")));
record.put("bhnew", Util.null2String(rs.getString("bhnew")));
record.put("ngbm", Util.null2String(rs.getString("ngbm")));
record.put("ngr", Util.null2String(rs.getString("ngr")));
record.put("ngrq", Util.null2String(rs.getString("ngrq")));
record.put("lxfs", Util.null2String(rs.getString("lxfs")));
record.put("bt", Util.null2String(rs.getString("bt")));
record.put("zw", Util.null2String(rs.getString("zw")));
record.put("fj", Util.null2String(rs.getString("fj")));
record.put("hqbm", Util.null2String(rs.getString("hqbm")));
record.put("hqbmzhwy", Util.null2String(rs.getString("hqbmzhwy")));
record.put("hqdqbm", Util.null2String(rs.getString("hqdqbm")));
record.put("ffbm", Util.null2String(rs.getString("ffbm")));
record.put("hqbmzjhqbmzj", Util.null2String(rs.getString("hqbmzj")));
record.put("dwd", Util.null2String(rs.getString("dwd")));
record.put("bmffzj", Util.null2String(rs.getString("bmffzj")));
record.put("dqnf", Util.null2String(rs.getString("dqnf")));
record.put("qgqhj", Util.null2String(rs.getString("qgqhj")));
}
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("ngrq")); //拟稿日期
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("bhnew"));// 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(ngrq).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("ngbm")).split(","))); // 会签部门
records.addAll(Arrays.asList(Util.null2String(requesData.get("hqbm")).split(","))); // 拟稿部门
records.addAll(Arrays.asList(Util.null2String(requesData.get("ffbm")).split(","))); // 部门阅办
records.addAll(Arrays.asList(Util.null2String(requesData.get("hqbmzj")).split(","))); // 抄送
records.addAll(Arrays.asList(Util.null2String(requesData.get("bmffzj")).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 s) {
String sql = "update uf_pushArchivesLog set esbtxtml = ? where request = ?";
RecordSet recordSet = new RecordSet();
recordSet.executeUpdate(sql, s, requestid);
}
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);
}
}

@ -37,7 +37,7 @@ import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalTime;
import java.util.*;
import java.util.concurrent.TimeUnit;
public class ArchivesUtil {
@ -218,6 +218,7 @@ public class ArchivesUtil {
*/
public static void writeToTxt(String path, String title, String content, Boolean append) {
try {
System.out.println(111);
/* 写入Txt文件 */
File mkdirsName = new File(path);
// 相对路径
@ -254,6 +255,7 @@ public class ArchivesUtil {
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(222);
}
@ -1232,7 +1234,15 @@ public class ArchivesUtil {
* @throws IOException
*/
public static String callApi(String BASE_URL, File file) {
OkHttpClient client = new OkHttpClient();
// OkHttpClient client = new OkHttpClient();
//增加设置超时时间
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(150, TimeUnit.SECONDS)
.readTimeout(150, TimeUnit.SECONDS)
.writeTimeout(150, TimeUnit.SECONDS)
.build();
// Debugging: Check if the file exists and can be read
if (file.exists() && file.canRead()) {
log.error("File exists and is readable. File path: " + file.getAbsolutePath());
@ -1241,17 +1251,25 @@ public class ArchivesUtil {
}
RequestBody requestBody = null;
String code = getCodeByFileType(file.getName());
if (StringUtil.isEmpty(code)){
return "";
}
String fileName = null;
String extName = "";
try {
fileName = URLEncoder.encode(file.getName(), StandardCharsets.UTF_8.toString());
extName = fileName.substring(fileName.lastIndexOf("."));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
try {
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("convertType", code)
.addFormDataPart("file", fileName, RequestBody.create(MediaType.parse("application/zip"), file))
.addFormDataPart("file", uuid + extName , RequestBody.create(MediaType.parse("application/zip"), file))
.build();
} catch (Exception e) {
log.error(e.getMessage());
@ -1279,6 +1297,9 @@ public class ArchivesUtil {
*/
public static String getCodeByFileType(String FileName) {
if (!FileName.contains(".")){
return "";
}
String extName = FileName.substring(FileName.lastIndexOf(".") + 1);
String convertType = "";
if (extName.matches("(doc|dot|dtd|docx|docm|dotx|ppt|pptx|ppsx|potx|xlsx|xlsm|wps|dps|et|wpt|xls|xlc|xlt|xlm|xlw|DOC|DOT|DTD|DOCX|DOCM|DOTX|PPT|PPTX|PPSX|POTX|XLSX|XLSM|WPS|DPS|ET|WPT|XLS|XLC|XLT|XLM|XLW)")) {
@ -1525,4 +1546,9 @@ public class ArchivesUtil {
return currentTime.isAfter(sevenAM);
}
public static void main(String[] args) {
String fileName = "11111";
System.out.println( fileName.substring(fileName.lastIndexOf(".")));
}
}

@ -216,6 +216,11 @@ public class ZipUtil {
e.printStackTrace();
}
}
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

@ -1,37 +1,9 @@
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="com.alibaba.fastjson.JSONArray" %>
<%@ page import="java.util.regex.Pattern" %>
<%@ page import="java.util.regex.Matcher" %>
<%@ page import="java.io.*" %>
<%@ page import="weaver.docs.webservices.DocInfo" %>
<%@ page import="weaver.docs.webservices.DocAttachment" %>
<%@ page import="org.apache.axis.encoding.Base64" %>
<%@ page import="weaver.docs.webservices.DocServiceImpl" %>
<%@ page import="weaver.hrm.User" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.*" %>
<%@ page import="org.apache.commons.lang.StringUtils" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="org.apache.http.impl.client.CloseableHttpClient" %>
<%@ page import="org.apache.http.impl.client.HttpClients" %>
<%@ page import="org.apache.http.client.methods.HttpPost" %>
<%@ page import="com.alibaba.fastjson.JSON" %>
<%@ page import="org.apache.http.entity.StringEntity" %>
<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %>
<%@ page import="org.apache.http.HttpStatus" %>
<%@ page import="org.apache.http.HttpEntity" %>
<%@ page import="org.apache.http.util.EntityUtils" %>
<%@ page import="org.apache.http.client.ClientProtocolException" %>
<%@ page import="weaver.hrm.HrmUserVarify" %>
<%@ page import="java.net.URL" %>
<%@ page import="java.net.HttpURLConnection" %>
<%@ page import="org.apache.http.HttpException" %>
<%@ page import="org.apache.http.client.HttpClient" %>
<%@ page import="org.apache.commons.httpclient.methods.PostMethod" %>
<%@ page import="org.apache.commons.httpclient.params.HttpMethodParams" %>
<%!
private boolean isEmpty(String str) {
if ("".equals(str) ||"(null)".equals(str) || str == null) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 KiB

@ -0,0 +1,211 @@
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="com.wbi.util.ParamUtil" %>
<%@ page import="java.util.Map" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="org.slf4j.Logger" %>
<%@ page import="org.slf4j.LoggerFactory" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="weaver.general.StringUtil" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%
Logger log = LoggerFactory.getLogger("CustomBusiness");
Map<String, Object> paramMap = ParamUtil.request2Map(request);
int id = Util.getIntValue(Util.null2String(paramMap.get("id")));
HashMap<String, String> results = new HashMap<>();
int requestId = -1;
int type = -1;
RecordSet rs = new RecordSet();
String sql = "select lcbt , sqdlx ,spwhscpdfwj from uf_CCSPDTZ where id = ?";
rs.executeQuery(sql, id);
log.info("sql:{}", sql);
log.info("id:{} ", id);
if (rs.next()) {
requestId = rs.getInt("lcbt");
type = rs.getInt("sqdlx");
} else {
results.put("code", "0");
results.put("msg", "审批单无数据");
out.print(JSONObject.toJSONString(results));
}
log.info("requestId:{}", requestId);
log.info("type:{}", type);
//请休审批单PDF附件qxspdpdffj中。
String qxspdpdffj = "";
String qxspdpdffjXmdh = "";
//天津银行国内出差审批单附件PDFtjyxgnccspdfjpdf
String tjyxgnccspdfjpdf = "";
String tjyxgnccspdfjpdfXmdh = "";
String errorInfo = "";
int sqdlx = -1 ;
ArrayList<String> fields = new ArrayList<>();
if (6 == type || 7 == type) {
// 总行差旅行程变更审批单 || 分行差旅行程变更审批单
rs.executeQuery("select mainid from uf_CCBGJLB_dt1 where ccbgjllc = ?", requestId);
rs.next();
String mainid = rs.getString("mainid");
log.info("mainid:{}", mainid);
rs.executeQuery("select ccqqlc ,sqdlx from uf_CCBGJLB where id = ?", mainid);
rs.next();
String ccqqlc = rs.getString("ccqqlc");
sqdlx = rs.getInt("sqdlx");
log.info("ccqqlc:{}", ccqqlc);
log.info("sqdlx:{}", sqdlx);
if (0 == sqdlx) {
//请休假审批单-总行部门正职
rs.executeQuery("select sqdlx , spwhscpdfwj ,xmdh from uf_CCSPDTZ where lcbt = ?", ccqqlc);
rs.next();
qxspdpdffj = Util.null2String(rs.getString("spwhscpdfwj"));
String xmdh = Util.null2String(rs.getString("xmdh"));
qxspdpdffjXmdh = xmdh;
if (StringUtil.isEmpty(qxspdpdffj)) {
if (errorInfo.length() > 0) {
errorInfo = errorInfo + "," + xmdh;
} else {
errorInfo = xmdh;
}
}
log.info("qxspdpdffj:{}", qxspdpdffj);
} else if (2 == sqdlx) {
//请休假审批单-分行行长
rs.executeQuery("select sqdlx , spwhscpdfwj,xmdh from uf_CCSPDTZ where lcbt = ?", ccqqlc);
rs.next();
tjyxgnccspdfjpdf = Util.null2String(rs.getString("spwhscpdfwj"));
log.info("tjyxgnccspdfjpdf:{}", tjyxgnccspdfjpdf);
String xmdh = Util.null2String(rs.getString("xmdh"));
tjyxgnccspdfjpdfXmdh = xmdh;
if (StringUtil.isEmpty(tjyxgnccspdfjpdf)) {
if (errorInfo.length() > 0) {
errorInfo = errorInfo + "," + xmdh;
} else {
errorInfo = xmdh;
}
}
rs.executeQuery("select glqxjspd from formtable_main_442 where requestid = ?", ccqqlc);
rs.next();
String glqxjspd = Util.null2String(rs.getString("glqxjspd"));
log.info("glqxjspd:{}", glqxjspd);
rs.executeQuery("select spwhscpdfwj,xmdh from uf_CCSPDTZ where id = ?", glqxjspd);
rs.next();
qxspdpdffj = Util.null2String(rs.getString("spwhscpdfwj"));
String xmdh1 = Util.null2String(rs.getString("xmdh"));
qxspdpdffjXmdh = xmdh1;
if (StringUtil.isEmpty(qxspdpdffj)) {
if (errorInfo.length() > 0) {
errorInfo = errorInfo + "," + xmdh1;
} else {
errorInfo = xmdh1;
}
}
log.info("qxspdpdffj:{}", qxspdpdffj);
}
} 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.next();
String glqxjspd = Util.null2String(rs.getString("glqxjspd"));
log.info("glqxjspd:{}", glqxjspd);
rs.executeQuery("select spwhscpdfwj,xmdh from uf_CCSPDTZ where id = ?", glqxjspd);
rs.next();
qxspdpdffj = Util.null2String(rs.getString("spwhscpdfwj"));
String xmdh = Util.null2String(rs.getString("xmdh"));
qxspdpdffjXmdh = xmdh;
if (StringUtil.isEmpty(qxspdpdffj)) {
if (errorInfo.length() > 0) {
errorInfo = errorInfo + "," + xmdh;
} else {
errorInfo = xmdh;
}
}
tjyxgnccspdfjpdf = "";
} else if (0 == type) {
}
// out.print(tjyxgnccspdfjpdf);
// out.print("<br/>");
// out.print(qxspdpdffj);
HashMap<String, Object> result = new HashMap<>();
HashMap<String, Object> tjyxgnccspdfjpdfspecialobj = new HashMap<>();
ArrayList<HashMap<String, Object>> tjyxgnccspdfjpdfspecialobjList = new ArrayList<>();
tjyxgnccspdfjpdfspecialobj.put("id", tjyxgnccspdfjpdf);
tjyxgnccspdfjpdfspecialobj.put("name", getDocSubject(rs, tjyxgnccspdfjpdf));
tjyxgnccspdfjpdfspecialobjList.add(tjyxgnccspdfjpdfspecialobj);
HashMap<String, Object> tjyxgnccspdfjpdfobj = new HashMap<>();
tjyxgnccspdfjpdfobj.put("value", tjyxgnccspdfjpdf);
tjyxgnccspdfjpdfobj.put("specialobj", tjyxgnccspdfjpdfspecialobjList);
result.put("tjyxgnccspdfjpdf", tjyxgnccspdfjpdfobj);
HashMap<String, Object> qxspdpdffjspecialobj = new HashMap<>();
ArrayList<HashMap<String, Object>> qxspdpdffjspecialobjList = new ArrayList<>();
qxspdpdffjspecialobj.put("id", qxspdpdffj);
qxspdpdffjspecialobj.put("name", getDocSubject(rs, qxspdpdffj));
qxspdpdffjspecialobjList.add(qxspdpdffjspecialobj);
HashMap<String, Object> qxspdpdffjobj = new HashMap<>();
qxspdpdffjobj.put("value", qxspdpdffj);
qxspdpdffjobj.put("specialobj", qxspdpdffjspecialobjList);
result.put("qxspdpdffj", qxspdpdffjobj);
result.put("errorInfo", errorInfo);
result.put("errorCode", errorInfo.length() > 0 ? "1" : "0");
result.put("type", type);
result.put("sqdlx", sqdlx);
result.put("qxspdpdffjXmdh", qxspdpdffjXmdh);
result.put("tjyxgnccspdfjpdfXmdh", tjyxgnccspdfjpdfXmdh);
out.print(JSONObject.toJSONString(result));
%>
<%!
private boolean isEmpty(String str) {
if ("".equals(str) || "(null)".equals(str) || str == null) {
return true;
} else {
return false;
}
}
private int getwfid(int requestId, RecordSet rs) {
if (requestId <= 0) {
return -1;
}
String sql = "select WORKFLOWID from WORKFLOW_REQUESTBASE where REQUESTID = ?";
rs.executeQuery(sql, requestId);
if (rs.next()) {
return rs.getInt(0);
} else {
return -1;
}
}
private String getDocSubject(RecordSet rs, String docid) {
if (StringUtil.isEmpty(docid)) {
return "";
}
String sql = "select DOCSUBJECT from DOCDETAIL where ID = ?";
rs.executeQuery(sql, docid);
if (rs.next()) {
return rs.getString("DOCSUBJECT");
} else {
return "";
}
}
%>

@ -1,90 +0,0 @@
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="com.wbi.util.ParamUtil" %>
<%@ page import="java.util.Map" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%
Map<String, Object> paramMap = ParamUtil.request2Map(request);
int id = Util.getIntValue(Util.null2String(paramMap.get("id")));
HashMap<String, String> results = new HashMap<>();
int requestId = -1;
int type = -1;
RecordSet rs = new RecordSet();
String sql = "select lcbt , sqdlx ,spwhscpdfwj from uf_CCSPDTZ where id = ?";
rs.executeQuery(sql, id);
if (rs.next()) {
requestId = rs.getInt("lcbt");
type = rs.getInt("sqdlx");
} else {
results.put("code", "0");
results.put("msg", "审批单无数据");
out.print(JSONObject.toJSONString(results));
}
//请休审批单PDF附件qxspdpdffj中。
String qxspdpdffj = "";
//天津银行国内出差审批单附件PDFtjyxgnccspdfjpdf
String tjyxgnccspdfjpdf = "";
if (6 == type || 7 == type) {
// 总行差旅行程变更审批单 || 分行差旅行程变更审批单
rs.executeQuery("select mainid from uf_CCBGJLB_dt1 where ccbgjllc = ?",requestId);
rs.next();
String mainid = rs.getString("mainid");
rs.executeQuery("select ccqqlc from uf_CCBGJLB where id = ?",mainid);
rs.next();
String ccqqlc = rs.getString("ccqqlc");
rs.executeQuery("select sqdlx , spwhscpdfwj from uf_CCSPDTZ where lcbt = ?",ccqqlc);
rs.next();
int sqdlx = rs.getInt("sqdlx");
if(0 == sqdlx){
//请休假审批单-总行部门正职
qxspdpdffj = Util.null2String(rs.getString("spwhscpdfwj"));
}else if( 2 == sqdlx){
//请休假审批单-分行行长
tjyxgnccspdfjpdf = Util.null2String(rs.getString("spwhscpdfwj"));
rs.executeQuery("select qxspdpdffj from formtable_main_442 where requestid = ?",ccqqlc);
rs.next();
qxspdpdffj = Util.null2String(rs.getString("qxspdpdffj"));
}
}else if( 8 == type ){
tjyxgnccspdfjpdf = Util.null2String(rs.getString("spwhscpdfwj"));
rs.executeQuery("select qxspdpdffj from formtable_main_442 where requestid = ?",requestId);
rs.next();
qxspdpdffj = Util.null2String(rs.getString("qxspdpdffj"));
}
out.print(tjyxgnccspdfjpdf);
out.print("<br/>");
out.print(qxspdpdffj);
%>
<%!
private boolean isEmpty(String str) {
if ("".equals(str) || "(null)".equals(str) || str == null) {
return true;
} else {
return false;
}
}
private int getwfid(int requestId, RecordSet rs) {
if (requestId <= 0) {
return -1;
}
String sql = "select WORKFLOWID from WORKFLOW_REQUESTBASE where REQUESTID = ?";
rs.executeQuery(sql, requestId);
if (rs.next()) {
return rs.getInt(0);
} else {
return -1;
}
}
%>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,75 @@
<%@ page import="java.io.*, java.util.zip.*" %>
<%@ page import="org.slf4j.Logger" %>
<%@ page import="org.slf4j.LoggerFactory" %>
<%@ page import="com.engine.custom.archives.service.ReceivingPushArchivesService" %>
<%@ page import="com.engine.custom.archives.service.SendingPushArchivesService" %>
<%@ page import="com.engine.custom.archives.service.SignReportPushArchivesService" %>
<%@ page import="com.engine.custom.archives.service.firstBranch.FirstBranchReceivingPushArchivesService" %>
<%@ page import="com.engine.custom.archives.service.firstBranch.FirstBranchSendingPushArchivesService" %>
<%@ page import="com.engine.custom.archives.service.firstBranch.FirstBranchSignReportPushArchivesService" %>
<%@ page import="com.engine.custom.archives.service.secondBranch.SecondBranchReceivingPushArchivesService" %>
<%@ page import="com.engine.custom.archives.service.secondBranch.SecondBranchSendingPushArchivesService" %>
<%@ page import="java.util.Date" %>
<%@ page import="com.engine.custom.archives.util.ArchivesUtil" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.HashMap" %>
<%@page contentType="text/html; charset=UTF-8" %>
<%
String filePath = "/opt/weaver/archivesFile";
String Url = "http://14.1.206.240:18080/fcscloud/composite/upload";
String templatePath = "/opt/weaver/archivesFile/template/";
String endTime = "7";
String reqid = "";
Logger log = LoggerFactory.getLogger("Archives");
ReceivingPushArchivesService receivingservice = new ReceivingPushArchivesService();
SendingPushArchivesService sendingservice = new SendingPushArchivesService();
SignReportPushArchivesService signReportservice =new SignReportPushArchivesService();
FirstBranchReceivingPushArchivesService firstBranchReceivingPushArchivesService =new FirstBranchReceivingPushArchivesService();
FirstBranchSendingPushArchivesService firstBranchSendingPushArchivesService =new FirstBranchSendingPushArchivesService();
FirstBranchSignReportPushArchivesService firstBranchSignReportPushArchivesService =new FirstBranchSignReportPushArchivesService();
SecondBranchReceivingPushArchivesService secondBranchReceivingPushArchivesService =new SecondBranchReceivingPushArchivesService();
SecondBranchSendingPushArchivesService secondBranchSendingPushArchivesService =new SecondBranchSendingPushArchivesService();
int i= 0;
while (i<100) {
new Thread(() -> {
log.info("PushArchivesCorn====Begin========");
Date date = ArchivesUtil.getDate();
String dateStr = new SimpleDateFormat("yyyyMMdd").format(date);
HashMap<String, String> param = new HashMap<>();
param.put("filePath", filePath + File.separator + dateStr);
param.put("Url", Url);
param.put("endTime", endTime);
// param.put("requestid",reqid);
param.put("templatePath", templatePath);
sendingservice.setProp(param);
sendingservice.pushArchives(param);
signReportservice.setProp(param);
signReportservice.pushArchives(param);
receivingservice.setProp(param);
receivingservice.pushArchives(param);
firstBranchReceivingPushArchivesService.setProp(param);
firstBranchReceivingPushArchivesService.pushArchives(param);
firstBranchSendingPushArchivesService.setProp(param);
firstBranchSendingPushArchivesService.pushArchives(param);
firstBranchSignReportPushArchivesService.setProp(param);
firstBranchSignReportPushArchivesService.pushArchives(param);
secondBranchReceivingPushArchivesService.setProp(param);
secondBranchReceivingPushArchivesService.pushArchives(param);
secondBranchSendingPushArchivesService.setProp(param);
secondBranchSendingPushArchivesService.pushArchives(param);
}).start();
i++;
}
%>
<%!
%>

@ -1,22 +1,78 @@
<%@ page import="java.io.*, java.util.zip.*, java.util.Map, java.util.HashMap" %>
<%@ page import="java.io.*, java.util.zip.*" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.StringUtil" %>
<%@ page import="com.weaver.general.BaseBean" %>
<%@ page import="weaver.hrm.company.DepartmentComInfo" %>
<%@ page import="org.apache.poi.xssf.usermodel.XSSFWorkbook" %>
<%@ page import="km.org.apache.poi.ss.util.WorkbookUtil" %>
<%@ page import="org.apache.poi.ss.usermodel.Workbook" %>
<%@ page import="org.apache.poi.ss.usermodel.Sheet" %>
<%@ page import="java.util.*" %>
<%@ page import="org.apache.poi.ss.usermodel.Row" %>
<%@ page import="org.apache.poi.ss.usermodel.Cell" %>
<%@page contentType="text/html; charset=UTF-8" %>
<%
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
out.print(departmentComInfo.getDepartmentName("3588"));
out.print("<br/>");
out.print(departmentComInfo.getDepartmentmark("3588"));
out.print("<br/>");
out.print(departmentComInfo.getDepartmentmark("3454"));
out.print("<br/>");
out.print(departmentComInfo.getDepartmentmark("3454"));
// 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();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Export Excel</title>
</head>
<body>
<h1>Excel file should start downloading automatically...</h1>
</body>
</html>

Loading…
Cancel
Save