导出附件和excel
commit
7e05898e53
@ -0,0 +1,7 @@
|
||||
package com.api.demo.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
@Path("/ebusecdev/workflowexcel")
|
||||
public class WorkflowExcelController extends com.engine.demo.controller.WorkflowExcelController {
|
||||
}
|
@ -0,0 +1,151 @@
|
||||
package com.engine.demo.cmd;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.engine.common.biz.AbstractCommonCommand;
|
||||
import com.engine.common.entity.BizLogContext;
|
||||
import com.engine.core.interceptor.CommandContext;
|
||||
import com.engine.demo.entity.invoice.Invoice;
|
||||
import com.engine.demo.entity.travelBorrow.TravelBorrow;
|
||||
import com.engine.demo.entity.travelBorrow.TravelBorrowDt1;
|
||||
import com.engine.demo.entity.travelBorrow.TravelBorrowDt2;
|
||||
import com.engine.demo.entity.travelBorrow.TravelBorrowDt3;
|
||||
import com.engine.demo.entity.travelReimbur.*;
|
||||
import com.engine.demo.util.ExportFjUtil;
|
||||
import net.sf.json.JSONArray;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.file.ImageFileManager;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.io.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
public class ExportFjZipCmd extends AbstractCommonCommand<Map<String, Object>> {
|
||||
|
||||
BaseBean bb = new BaseBean();
|
||||
|
||||
public ExportFjZipCmd(Map<String, Object> params, User user) {
|
||||
this.user = user;
|
||||
this.params = params;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BizLogContext getLogContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(CommandContext commandContext) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
RecordSet rs = new RecordSet();
|
||||
BaseBean bb = new BaseBean();
|
||||
bb.writeLog("========开始下载=========");
|
||||
|
||||
String dataId = Util.null2String(params.get("dataId"));
|
||||
bb.writeLog("dataId:" + dataId);
|
||||
String type = Util.null2String(params.get("type"));
|
||||
bb.writeLog("type:" + type);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
String format = sdf.format(new Date());
|
||||
|
||||
//文件生成路径
|
||||
String BASE_DIR = "/opt/weaver/ecology/filesystem/ebusecexport";
|
||||
bb.writeLog("BASE_DIR:" + BASE_DIR);
|
||||
//文件生成名称
|
||||
String outPath = "";
|
||||
ExportFjUtil util = new ExportFjUtil();
|
||||
//从建模中获取需要导出的附件
|
||||
List<Map<String, String>> outFiles = new ArrayList<>();
|
||||
Map<String, String> lcbhAndWjids = new HashMap<>();
|
||||
|
||||
if ("TravelBorrow".equals(type)) {
|
||||
String timeName = "差旅借款导出" + format;
|
||||
util.exportExcel(type, dataId, BASE_DIR + File.separator + timeName, File.separator + timeName);
|
||||
outPath = BASE_DIR + File.separator + timeName;
|
||||
lcbhAndWjids.put(outPath, BASE_DIR + File.separator + timeName + "_" + File.separator + timeName);
|
||||
outFiles.add(lcbhAndWjids);
|
||||
}
|
||||
|
||||
if ("Invoice".equals(type)) {//发票
|
||||
String acqFjSql = " SELECT fpdm, fjid FROM uf_LC_fpxx where id in (" + dataId + ") GROUP BY fpdm, fjid";
|
||||
rs.executeQuery(acqFjSql);
|
||||
while (rs.next()) {
|
||||
String fpdm = Util.null2String(rs.getString("fpdm"));
|
||||
String fjid = Util.null2String(rs.getString("fjid"));
|
||||
if (StringUtils.isNotBlank(fpdm) && StringUtils.isNotBlank(fjid)) {
|
||||
String timeName = "发票信息导出" + format;
|
||||
String BASE_DIR_NAME = BASE_DIR + File.separator + timeName;
|
||||
bb.writeLog("BASE_DIR_NAME:" + BASE_DIR_NAME);
|
||||
outPath = util.zipDoc(fjid, BASE_DIR_NAME, fpdm + "_" + fjid, "uf_LC_fpxx", "wjcclj", "fjid");
|
||||
bb.writeLog("outPath:" + outPath);
|
||||
lcbhAndWjids.put(outPath, BASE_DIR_NAME + "_" + File.separator + timeName);
|
||||
outFiles.add(lcbhAndWjids);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ("TravelReimbur".equals(type)) {//差旅报销
|
||||
String acqFjSql = " SELECT b.djbh, string_agg(a.wjid, ',') AS wjids FROM uf_OA_clbxd_dt7 a " +
|
||||
" left join uf_OA_clbxd b " +
|
||||
" on b.id = a.mainid where a.mainid in (" + dataId + ") GROUP BY b.djbh";
|
||||
|
||||
rs.executeQuery(acqFjSql);
|
||||
while (rs.next()) {
|
||||
String lcbh = Util.null2String(rs.getString("djbh"));
|
||||
String wjid = Util.null2String(rs.getString("wjids"));
|
||||
if (StringUtils.isNotBlank(lcbh) && StringUtils.isNotBlank(wjid)) {
|
||||
String timeName = "差旅报销导出" + format;
|
||||
String BASE_DIR_NAME = BASE_DIR + File.separator + timeName;
|
||||
bb.writeLog("BASE_DIR_NAME:" + BASE_DIR_NAME);
|
||||
outPath = util.zipDoc(wjid, BASE_DIR_NAME, lcbh + "_" + wjid, "uf_OA_clbxd_dt7", "wjcclj", "wjid");
|
||||
bb.writeLog("outPath:" + outPath);
|
||||
lcbhAndWjids.put(outPath, BASE_DIR_NAME + "_" + File.separator + timeName);
|
||||
outFiles.add(lcbhAndWjids);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!outFiles.isEmpty()) {
|
||||
bb.writeLog("outFiles:" + outFiles);
|
||||
try {
|
||||
|
||||
for (Map<String, String> outFile : outFiles) {
|
||||
for (String key : outFile.keySet()) {
|
||||
String value = outFile.get(key);
|
||||
String[] split = value.split("_");
|
||||
|
||||
//先将excel放到文件夹中
|
||||
util.exportExcel(type, dataId, split[0], split[1]);
|
||||
|
||||
util.zipFolder(split[0], BASE_DIR + File.separator + format);
|
||||
}
|
||||
}
|
||||
|
||||
result.put("code", 200);
|
||||
result.put("data", "/filesystem/ebusecexport/" + format);
|
||||
} catch (Exception e) {
|
||||
bb.writeLog("Response Exception: " + e);
|
||||
result.put("code", "500");
|
||||
result.put("msg", "请求失败,请联系管理员");
|
||||
return result;
|
||||
}
|
||||
|
||||
} else {
|
||||
result.put("code", "500");
|
||||
result.put("msg", "请求失败,请联系管理员");
|
||||
return result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,423 @@
|
||||
package com.engine.demo.cmd;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.engine.common.biz.AbstractCommonCommand;
|
||||
import com.engine.common.entity.BizLogContext;
|
||||
import com.engine.core.interceptor.CommandContext;
|
||||
import com.engine.demo.entity.FillData;
|
||||
import com.engine.demo.entity.invoice.Invoice;
|
||||
import com.engine.demo.entity.travelBorrow.TravelBorrow;
|
||||
import com.engine.demo.entity.travelBorrow.TravelBorrowDt1;
|
||||
import com.engine.demo.entity.travelBorrow.TravelBorrowDt2;
|
||||
import com.engine.demo.entity.travelBorrow.TravelBorrowDt3;
|
||||
import com.engine.demo.entity.travelReimbur.*;
|
||||
import com.engine.workflow.biz.RobotNode.RobotNodeBiz;
|
||||
import com.engine.workflow.biz.RobotNode.RobotNodeServiceBiz;
|
||||
import com.engine.workflow.biz.requestList.RequestListBiz;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.crm.Maint.CustomerInfoComInfo;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.general.GCONST;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Type;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
public class WorkflowExcelDataCmd extends AbstractCommonCommand<Map<String, Object>> {
|
||||
|
||||
BaseBean bb = new BaseBean();
|
||||
|
||||
public WorkflowExcelDataCmd(Map<String, Object> params, User user) {
|
||||
this.user = user;
|
||||
this.params = params;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BizLogContext getLogContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(CommandContext commandContext) {
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
Map<String, List<List<?>> > exportDatas = new HashMap<>();
|
||||
|
||||
String type = Util.null2String(params.get("type"));
|
||||
String dataIds = Util.null2String(params.get("dataIds"));
|
||||
|
||||
if (StringUtils.isBlank(type)) {
|
||||
result.put("code","500");
|
||||
result.put("msg","先选择要导出类型");
|
||||
return result;
|
||||
}
|
||||
if (StringUtils.isBlank(dataIds)) {
|
||||
result.put("code","500");
|
||||
result.put("msg","先选择要导出数据");
|
||||
return result;
|
||||
}
|
||||
|
||||
//封装数据
|
||||
try {
|
||||
|
||||
RecordSet rs = new RecordSet();
|
||||
String tableName = "";
|
||||
if ("TravelBorrow".equals(type)) {//差旅借款
|
||||
tableName = "uf_LC_cljkd";
|
||||
// tableName = "formtable_main_24";
|
||||
String acqDataSql = "select a.*, b.*, c. * ,d.* from " + tableName + " a " +
|
||||
" left join " + tableName + "_dt1 b" +
|
||||
" on b.mainid = a.id " +
|
||||
" left join " + tableName + "_dt2 c" +
|
||||
" on c.mainid = a.id " +
|
||||
" left join " + tableName + "_dt3 d" +
|
||||
" on d.mainid = a.id " +
|
||||
"where a.id in (" + dataIds + ")";
|
||||
bb.writeLog("TravelBorrow acqDataSql: " + acqDataSql);
|
||||
List<List<?>> datasList = new ArrayList<>();
|
||||
rs.executeQuery(acqDataSql);
|
||||
List dataList = new ArrayList<>();
|
||||
List data1List = new ArrayList<>();
|
||||
List data2List = new ArrayList<>();
|
||||
List data3List = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
|
||||
//主表
|
||||
TravelBorrow travelBorrow = new TravelBorrow();
|
||||
travelBorrow.setDjmc(Util.null2String(rs.getString("djmc")));
|
||||
travelBorrow.setDjbh(Util.null2String(rs.getString("djbh")));
|
||||
travelBorrow.setJkdwbh(Util.null2String(rs.getString("jkdwbh")));
|
||||
travelBorrow.setBmbh(Util.null2String(rs.getString("bmbh")));
|
||||
travelBorrow.setDjzt(Util.null2String(rs.getString("djzt")));
|
||||
travelBorrow.setJkrbh(Util.null2String(rs.getString("jkrbh")));
|
||||
travelBorrow.setDjrq(Util.null2String(rs.getString("djrq")));
|
||||
travelBorrow.setFyxmbh(Util.null2String(rs.getString("fyxmbh")));
|
||||
travelBorrow.setFjzs(Util.null2String(rs.getString("fjzs")));
|
||||
travelBorrow.setKyxmmc(Util.null2String(rs.getString("kyxmmc")));
|
||||
travelBorrow.setRyzw(Util.null2String(rs.getString("ryzw")));
|
||||
travelBorrow.setRyzwbh(Util.null2String(rs.getString("ryzwbh")));
|
||||
travelBorrow.setZyxx(Util.null2String(rs.getString("zyxx")));
|
||||
travelBorrow.setSqje(Util.null2String(rs.getString("sqje")));
|
||||
travelBorrow.setBxycxsqje(Util.null2String(rs.getString("bxycxsqje")));
|
||||
travelBorrow.setJkje(Util.null2String(rs.getString("jkje")));
|
||||
travelBorrow.setZdrbh(Util.null2String(rs.getString("zdrbh")));
|
||||
travelBorrow.setSfwt(Util.null2String(rs.getString("sfwt")));
|
||||
dataList.add(travelBorrow);
|
||||
//明细表1
|
||||
TravelBorrowDt1 travelBorrowDt1 = new TravelBorrowDt1();
|
||||
travelBorrowDt1.setNm(Util.null2String(rs.getString("nm")));
|
||||
travelBorrowDt1.setJkdnm(Util.null2String(rs.getString("jkdnm")));
|
||||
travelBorrowDt1.setSqdh(Util.null2String(rs.getString("sqdh")));
|
||||
travelBorrowDt1.setSqsm(Util.null2String(rs.getString("sqsm")));
|
||||
travelBorrowDt1.setCcksrq(Util.null2String(rs.getString("ccksrq")));
|
||||
travelBorrowDt1.setCcjsrq(Util.null2String(rs.getString("ccjsrq")));
|
||||
data1List.add(travelBorrowDt1);
|
||||
//明细表2
|
||||
TravelBorrowDt2 travelBorrowDt2 = new TravelBorrowDt2();
|
||||
travelBorrowDt2.setFkjlnm(Util.null2String(rs.getString("fkjlnm")));
|
||||
travelBorrowDt2.setBzdnm(Util.null2String(rs.getString("bzdnm")));
|
||||
travelBorrowDt2.setZjjhbh(Util.null2String(rs.getString("zjjhbh")));
|
||||
travelBorrowDt2.setZffsbh(Util.null2String(rs.getString("zffsbh")));
|
||||
travelBorrowDt2.setDfxz(Util.null2String(rs.getString("dfxz")));
|
||||
travelBorrowDt2.setBzrdw(Util.null2String(rs.getString("bzrdw")));
|
||||
travelBorrowDt2.setSkzhm(Util.null2String(rs.getString("skzhm")));
|
||||
travelBorrowDt2.setFkje(Util.null2String(rs.getString("fkje")));
|
||||
travelBorrowDt2.setYxzh(Util.null2String(rs.getString("yxzh")));
|
||||
travelBorrowDt2.setKhyx(Util.null2String(rs.getString("khyx")));
|
||||
travelBorrowDt2.setZfsm(Util.null2String(rs.getString("zfsm")));
|
||||
travelBorrowDt2.setZt(Util.null2String(rs.getString("zt")));
|
||||
travelBorrowDt2.setFkhbbh(Util.null2String(rs.getString("fkhbbh")));
|
||||
data2List.add(travelBorrowDt2);
|
||||
//明细表3
|
||||
TravelBorrowDt3 travelBorrowDt3 = new TravelBorrowDt3();
|
||||
travelBorrowDt3.setJkdnm(Util.null2String(rs.getString("jkdnm")));
|
||||
travelBorrowDt3.setSpjd(Util.null2String(rs.getString("spjd")));
|
||||
travelBorrowDt3.setSpr(Util.null2String(rs.getString("spr")));
|
||||
travelBorrowDt3.setSpnr(Util.null2String(rs.getString("spnr")));
|
||||
travelBorrowDt3.setSpsj(Util.null2String(rs.getString("spsj")));
|
||||
data3List.add(travelBorrowDt3);
|
||||
}
|
||||
datasList.add(dataList);
|
||||
datasList.add(data1List);
|
||||
datasList.add(data2List);
|
||||
datasList.add(data3List);
|
||||
exportDatas.put(type, datasList);
|
||||
}
|
||||
|
||||
if ("Invoice".equals(type)) {//发票
|
||||
tableName = "uf_LC_fpxx";
|
||||
String acqDataSql = "select a.* from " + tableName + " a where a.id in (" + dataIds + ")";
|
||||
bb.writeLog("Invoice acqDataSql: " + acqDataSql);
|
||||
List<List<?>> datasList = new ArrayList<>();
|
||||
rs.executeQuery(acqDataSql);
|
||||
List dataList = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
//主表
|
||||
Invoice invoice = new Invoice();
|
||||
invoice.setFpzj(Util.null2String(rs.getString("a.fpzj")));
|
||||
invoice.setFplxid(Util.null2String(rs.getString("a.fplxid")));
|
||||
invoice.setFplxbh(Util.null2String(rs.getString("a.fplxbh")));
|
||||
invoice.setFpzlbh(Util.null2String(rs.getString("a.fpzlbh")));
|
||||
invoice.setGmfmc(Util.null2String(rs.getString("a.gmfmc")));
|
||||
invoice.setGmfxxnsrsbh(Util.null2String(rs.getString("a.gmfxxnsrsbh")));
|
||||
invoice.setGmfxxdz(Util.null2String(rs.getString("a.gmfxxdz")));
|
||||
invoice.setGmfxxdh(Util.null2String(rs.getString("a.gmfxxdh")));
|
||||
invoice.setGmfxxkhx(Util.null2String(rs.getString("a.gmfxxkhx")));
|
||||
invoice.setGmfxxkhxzh(Util.null2String(rs.getString("a.gmfxxkhxzh")));
|
||||
invoice.setXsfmc(Util.null2String(rs.getString("a.xsfmc")));
|
||||
invoice.setXsfxxnssbh(Util.null2String(rs.getString("a.xsfxxnssbh")));
|
||||
invoice.setXsfdz(Util.null2String(rs.getString("a.xsfdz")));
|
||||
invoice.setXsfdh(Util.null2String(rs.getString("a.xsfdh")));
|
||||
invoice.setXsfkhyx(Util.null2String(rs.getString("a.xsfkhyx")));
|
||||
invoice.setXsfkhxzh(Util.null2String(rs.getString("a.xsfkhxzh")));
|
||||
invoice.setXym(Util.null2String(rs.getString("a.xym")));
|
||||
invoice.setFphm(Util.null2String(rs.getString("a.fphm")));
|
||||
invoice.setFpdm(Util.null2String(rs.getString("a.fpdm")));
|
||||
invoice.setFprq(Util.null2String(rs.getString("a.fprq")));
|
||||
invoice.setFpje(Util.null2String(rs.getString("a.fpje")));
|
||||
invoice.setBhse(Util.null2String(rs.getString("a.bhse")));
|
||||
invoice.setSe(Util.null2String(rs.getString("a.se")));
|
||||
invoice.setBz(Util.null2String(rs.getString("a.bz")));
|
||||
invoice.setFpbq(Util.null2String(rs.getString("a.fpbq")));
|
||||
invoice.setFpfl(Util.null2String(rs.getString("a.fpfl")));
|
||||
invoice.setFpflmc(Util.null2String(rs.getString("a.fpflmc")));
|
||||
invoice.setFpnr(Util.null2String(rs.getString("a.fpnr")));
|
||||
invoice.setYzzt(Util.null2String(rs.getString("a.yzzt")));
|
||||
invoice.setBxzt(Util.null2String(rs.getString("a.bxzt")));
|
||||
invoice.setZh(Util.null2String(rs.getString("a.zh")));
|
||||
invoice.setDwbh(Util.null2String(rs.getString("a.dwbh")));
|
||||
invoice.setYgbh(Util.null2String(rs.getString("a.ygbh")));
|
||||
invoice.setWjlx(Util.null2String(rs.getString("a.wjlx")));
|
||||
invoice.setCjsj(Util.null2String(rs.getString("a.cjsj")));
|
||||
invoice.setCjr(Util.null2String(rs.getString("a.cjr")));
|
||||
invoice.setZhxgsj(Util.null2String(rs.getString("a.zhxgsj")));
|
||||
invoice.setZhxgr(Util.null2String(rs.getString("a.zhxgr")));
|
||||
invoice.setYxlj(Util.null2String(rs.getString("a.yxlj")));
|
||||
invoice.setSfzy(Util.null2String(rs.getString("a.sfzy")));
|
||||
invoice.setZyrbh(Util.null2String(rs.getString("a.zyrbh")));
|
||||
|
||||
dataList.add(invoice);
|
||||
|
||||
datasList.add(dataList);
|
||||
}
|
||||
exportDatas.put(type, datasList);
|
||||
}
|
||||
if ("TravelReimbur".equals(type)) {//差旅报销
|
||||
tableName = "uf_OA_clbxd";
|
||||
String acqDataSql = "select a.*, b.*, c. * ,d.*, e.*, f.*, g.*, h.* from " + tableName + " a " +
|
||||
" left join " + tableName + "_dt1 b" +
|
||||
" on b.mainid = a.id " +
|
||||
" left join " + tableName + "_dt2 c" +
|
||||
" on c.mainid = a.id " +
|
||||
" left join " + tableName + "_dt3 d" +
|
||||
" on d.mainid = a.id " +
|
||||
" left join " + tableName + "_dt4 e" +
|
||||
" on e.mainid = a.id " +
|
||||
" left join " + tableName + "_dt5 f" +
|
||||
" on f.mainid = a.id " +
|
||||
" left join " + tableName + "_dt6 g" +
|
||||
" on g.mainid = a.id " +
|
||||
" left join " + tableName + "_dt7 h" +
|
||||
" on h.mainid = a.id " +
|
||||
"where a.id in (" + dataIds + ")";
|
||||
bb.writeLog("TravelReimbur acqDataSql: " + acqDataSql);
|
||||
List<List<?>> datasList = new ArrayList<>();
|
||||
rs.executeQuery(acqDataSql);
|
||||
List dataList = new ArrayList<>();
|
||||
List data1List = new ArrayList<>();
|
||||
List data2List = new ArrayList<>();
|
||||
List data3List = new ArrayList<>();
|
||||
List data4List = new ArrayList<>();
|
||||
List data5List = new ArrayList<>();
|
||||
List data6List = new ArrayList<>();
|
||||
List data7List = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
//主表
|
||||
TravelReimbur travelReimbur = new TravelReimbur();
|
||||
travelReimbur.setDjmc(Util.null2String(rs.getString("a.djmc")));
|
||||
travelReimbur.setDjbh(Util.null2String(rs.getString("a.djbh")));
|
||||
travelReimbur.setDwbh(Util.null2String(rs.getString("a.dwbh")));
|
||||
travelReimbur.setBmbh(Util.null2String(rs.getString("a.bmbh")));
|
||||
travelReimbur.setDjzt(Util.null2String(rs.getString("a.djzt")));
|
||||
travelReimbur.setBxrybh(Util.null2String(rs.getString("a.bxrybh")));
|
||||
travelReimbur.setRyzw(Util.null2String(rs.getString("a.ryzw")));
|
||||
travelReimbur.setRyzwbh(Util.null2String(rs.getString("a.ryzwbh")));
|
||||
travelReimbur.setRyzjid(Util.null2String(rs.getString("a.ryzjid")));
|
||||
travelReimbur.setRyzj(Util.null2String(rs.getString("a.ryzj")));
|
||||
travelReimbur.setCclx(Util.null2String(rs.getString("a.cclx")));
|
||||
travelReimbur.setCcdd(Util.null2String(rs.getString("a.ccdd")));
|
||||
travelReimbur.setCcksrq(Util.null2String(rs.getString("a.ccksrq")));
|
||||
travelReimbur.setCcjsrq(Util.null2String(rs.getString("a.ccjsrq")));
|
||||
travelReimbur.setCcts(Util.null2String(rs.getString("a.ccts")));
|
||||
travelReimbur.setXmmc(Util.null2String(rs.getString("a.xmmc")));
|
||||
travelReimbur.setHsxmlb(Util.null2String(rs.getString("a.hsxmlb")));
|
||||
travelReimbur.setKdkse(Util.null2String(rs.getString("a.kdkse")));
|
||||
travelReimbur.setFjzs(Util.null2String(rs.getString("a.fjzs")));
|
||||
travelReimbur.setLxdh(Util.null2String(rs.getString("a.lxdh")));
|
||||
travelReimbur.setBzje(Util.null2String(rs.getString("a.bzje")));
|
||||
travelReimbur.setFyrq(Util.null2String(rs.getString("a.fyrq")));
|
||||
travelReimbur.setSfczcbfy(Util.null2String(rs.getString("a.sfczcbfy")));
|
||||
travelReimbur.setCcsy(Util.null2String(rs.getString("a.ccsy")));
|
||||
travelReimbur.setSbje(Util.null2String(rs.getString("a.sbje")));
|
||||
travelReimbur.setSfje(Util.null2String(rs.getString("a.sfje")));
|
||||
travelReimbur.setJhje(Util.null2String(rs.getString("a.jhje")));
|
||||
travelReimbur.setFyxmnm(Util.null2String(rs.getString("a.fyxmnm")));
|
||||
travelReimbur.setZdrbh(Util.null2String(rs.getString("a.zdrbh")));
|
||||
travelReimbur.setSfwt(Util.null2String(rs.getString("a.sfwt")));
|
||||
travelReimbur.setStr(Util.null2String(rs.getString("a.str")));
|
||||
dataList.add(travelReimbur);
|
||||
//明细表1
|
||||
TravelReimburDt1 travelReimburDt1 = new TravelReimburDt1();
|
||||
travelReimburDt1.setBxdnm(Util.null2String(rs.getString("b.bxdnm")));
|
||||
travelReimburDt1.setCfcs(Util.null2String(rs.getString("b.cfcs")));
|
||||
travelReimburDt1.setCfrq(Util.null2String(rs.getString("b.cfrq")));
|
||||
travelReimburDt1.setJtgj(Util.null2String(rs.getString("b.jtgj")));
|
||||
travelReimburDt1.setZxdj(Util.null2String(rs.getString("b.zxdj")));
|
||||
travelReimburDt1.setCchbc(Util.null2String(rs.getString("b.cchbc")));
|
||||
travelReimburDt1.setJpzk(Util.null2String(rs.getString("b.jpzk")));
|
||||
travelReimburDt1.setDdcs(Util.null2String(rs.getString("b.ddcs")));
|
||||
travelReimburDt1.setDdrq(Util.null2String(rs.getString("b.ddrq")));
|
||||
travelReimburDt1.setCcts(Util.null2String(rs.getString("b.ccts")));
|
||||
travelReimburDt1.setCcf(Util.null2String(rs.getString("b.ccf")));
|
||||
travelReimburDt1.setZsfbz(Util.null2String(rs.getString("b.zsfbz")));
|
||||
travelReimburDt1.setZsts(Util.null2String(rs.getString("b.zsts")));
|
||||
travelReimburDt1.setZsf(Util.null2String(rs.getString("b.zsf")));
|
||||
travelReimburDt1.setZsfsfcb(Util.null2String(rs.getString("b.zsfsfcb")));
|
||||
travelReimburDt1.setZscbsm(Util.null2String(rs.getString("b.zscbsm")));
|
||||
travelReimburDt1.setBxjhsjcf(Util.null2String(rs.getString("b.bxjhsjcf")));
|
||||
travelReimburDt1.setQtcbfy(Util.null2String(rs.getString("b.qtcbfy")));
|
||||
travelReimburDt1.setCbfysm(Util.null2String(rs.getString("b.cbfysm")));
|
||||
travelReimburDt1.setBzje(Util.null2String(rs.getString("b.bzje")));
|
||||
travelReimburDt1.setBxje(Util.null2String(rs.getString("b.bxje")));
|
||||
travelReimburDt1.setSfczcbfy2(Util.null2String(rs.getString("b.sfczcbfy2")));
|
||||
data1List.add(travelReimburDt1);
|
||||
//明细表2
|
||||
TravelReimburDt2 travelReimburDt2 = new TravelReimburDt2();
|
||||
travelReimburDt2.setBxdid(Util.null2String(rs.getString("c.bxdid")));
|
||||
travelReimburDt2.setFtdwbh(Util.null2String(rs.getString("c.ftdwbh")));
|
||||
travelReimburDt2.setFtbmbh(Util.null2String(rs.getString("c.ftbmbh")));
|
||||
travelReimburDt2.setFyxm(Util.null2String(rs.getString("c.fyxm")));
|
||||
travelReimburDt2.setFyxmbh(Util.null2String(rs.getString("c.fyxmbh")));
|
||||
travelReimburDt2.setFtje(Util.null2String(rs.getString("c.ftje")));
|
||||
travelReimburDt2.setFtsm(Util.null2String(rs.getString("c.ftsm")));
|
||||
travelReimburDt2.setFph(Util.null2String(rs.getString("c.fph")));
|
||||
data2List.add(travelReimburDt2);
|
||||
//明细表3
|
||||
TravelReimburDt3 travelReimburDt3 = new TravelReimburDt3();
|
||||
travelReimburDt3.setBxnm(Util.null2String(rs.getString("d.bxnm")));
|
||||
travelReimburDt3.setSqdjbh(Util.null2String(rs.getString("d.sqdjbh")));
|
||||
travelReimburDt3.setCcksrq(Util.null2String(rs.getString("d.ccksrq")));
|
||||
travelReimburDt3.setCcjsrq(Util.null2String(rs.getString("d.ccjsrq")));
|
||||
data3List.add(travelReimburDt3);
|
||||
//明细表4
|
||||
TravelReimburDt4 travelReimburDt4 = new TravelReimburDt4();
|
||||
travelReimburDt4.setHxdjnm(Util.null2String(rs.getString("e.hxdjnm")));
|
||||
travelReimburDt4.setJkrq(Util.null2String(rs.getString("e.jkrq")));
|
||||
travelReimburDt4.setDjbh(Util.null2String(rs.getString("e.djbh")));
|
||||
travelReimburDt4.setJklx(Util.null2String(rs.getString("e.jklx")));
|
||||
travelReimburDt4.setFyxm(Util.null2String(rs.getString("e.fyxm")));
|
||||
travelReimburDt4.setJksm(Util.null2String(rs.getString("e.jksm")));
|
||||
travelReimburDt4.setJkje(Util.null2String(rs.getString("e.jkje")));
|
||||
travelReimburDt4.setZthk(Util.null2String(rs.getString("e.zthk")));
|
||||
travelReimburDt4.setYhk(Util.null2String(rs.getString("e.yhk")));
|
||||
travelReimburDt4.setHxje(Util.null2String(rs.getString("e.hxje")));
|
||||
travelReimburDt4.setXjhk(Util.null2String(rs.getString("e.xjhk")));
|
||||
travelReimburDt4.setQk(Util.null2String(rs.getString("e.qk")));
|
||||
data4List.add(travelReimburDt4);
|
||||
//明细表5
|
||||
TravelReimburDt5 travelReimburDt5 = new TravelReimburDt5();
|
||||
travelReimburDt5.setFkjlnm(Util.null2String(rs.getString("f.fkjlnm")));
|
||||
travelReimburDt5.setBzdnm(Util.null2String(rs.getString("f.bzdnm")));
|
||||
travelReimburDt5.setZjjhbh(Util.null2String(rs.getString("f.zjjhbh")));
|
||||
travelReimburDt5.setZjjhjsxz(Util.null2String(rs.getString("f.zjjhjsxz")));
|
||||
travelReimburDt5.setZffsbh(Util.null2String(rs.getString("f.zffsbh")));
|
||||
travelReimburDt5.setDfxz(Util.null2String(rs.getString("f.dfxz")));
|
||||
travelReimburDt5.setDwlb(Util.null2String(rs.getString("f.dwlb")));
|
||||
travelReimburDt5.setBzrdw(Util.null2String(rs.getString("f.bzrdw")));
|
||||
travelReimburDt5.setFkhbbh(Util.null2String(rs.getString("f.fkhbbh")));
|
||||
travelReimburDt5.setSkzhm(Util.null2String(rs.getString("f.skzhm")));
|
||||
travelReimburDt5.setFkje(Util.null2String(rs.getString("f.fkje")));
|
||||
travelReimburDt5.setKhyx(Util.null2String(rs.getString("f.khyx")));
|
||||
travelReimburDt5.setYxzh(Util.null2String(rs.getString("f.yxzh")));
|
||||
travelReimburDt5.setSsf(Util.null2String(rs.getString("f.ssf")));
|
||||
travelReimburDt5.setScs(Util.null2String(rs.getString("f.scs")));
|
||||
travelReimburDt5.setFksm(Util.null2String(rs.getString("f.fksm")));
|
||||
travelReimburDt5.setZt(Util.null2String(rs.getString("f.zt")));
|
||||
travelReimburDt5.setSkyxlxh(Util.null2String(rs.getString("f.skyxlxh")));
|
||||
travelReimburDt5.setGssfdf(Util.null2String(rs.getString("f.gssfdf")));
|
||||
travelReimburDt5.setGsdf(Util.null2String(rs.getString("f.gsdf")));
|
||||
data5List.add(travelReimburDt5);
|
||||
//明细表6
|
||||
TravelReimburDt6 travelReimburDt6 = new TravelReimburDt6();
|
||||
travelReimburDt6.setBxdid(Util.null2String(rs.getString("g.bxdid")));
|
||||
travelReimburDt6.setSpjd(Util.null2String(rs.getString("g.spjd")));
|
||||
travelReimburDt6.setSprbh(Util.null2String(rs.getString("g.sprbh")));
|
||||
travelReimburDt6.setSpnr(Util.null2String(rs.getString("g.spnr")));
|
||||
travelReimburDt6.setSpsj(Util.null2String(rs.getString("g.spsj")));
|
||||
data6List.add(travelReimburDt6);
|
||||
//明细表6
|
||||
TravelReimburDt7 travelReimburDt7 = new TravelReimburDt7();
|
||||
travelReimburDt7.setWjid(Util.null2String(rs.getString("h.wjid")));
|
||||
travelReimburDt7.setDjnm(Util.null2String(rs.getString("h.djnm")));
|
||||
travelReimburDt7.setWjmc(Util.null2String(rs.getString("h.wjmc")));
|
||||
travelReimburDt7.setWjlx(Util.null2String(rs.getString("h.wjlx")));
|
||||
travelReimburDt7.setWjdx(Util.null2String(rs.getString("h.wjdx")));
|
||||
travelReimburDt7.setWjcclj(Util.null2String(rs.getString("h.wjcclj")));
|
||||
data7List.add(travelReimburDt7);
|
||||
}
|
||||
datasList.add(dataList);
|
||||
datasList.add(data1List);
|
||||
datasList.add(data2List);
|
||||
datasList.add(data3List);
|
||||
datasList.add(data4List);
|
||||
datasList.add(data5List);
|
||||
datasList.add(data6List);
|
||||
datasList.add(data7List);
|
||||
exportDatas.put(type, datasList);
|
||||
}
|
||||
bb.writeLog("exportDatas: " + JSONObject.toJSONString(exportDatas));
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
String fileName="/opt/weaver/ecology/filesystem/ebusecexport/"+ "差旅借款单" + sdf.format(new Date()) + ".xlsx";
|
||||
exportExcel(fileName, exportDatas);
|
||||
result.put("code",200);
|
||||
result.put("msg",fileName);
|
||||
}catch (Exception e) {
|
||||
bb.writeLog("WorkflowExcelDataCmd Exception: " + e);
|
||||
result.put("code",500);
|
||||
result.put("msg","导出异常,请联系管理员");
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public void exportExcel(String fileName, Map<String, List<List<?>> > exportDatas) {
|
||||
|
||||
ExcelWriter excelWriter = EasyExcel.write(fileName).build();
|
||||
WriteSheet writeSheet = new WriteSheet();
|
||||
|
||||
for (String key : exportDatas.keySet()) {
|
||||
List<List<?>> tempList = exportDatas.get(key);
|
||||
int i = 0;
|
||||
for (List<?> tl: tempList) {
|
||||
//这里 需要指定写用哪个class去写
|
||||
writeSheet = EasyExcel.writerSheet(i, "第" + i + "个sheet页").head(tl.get(0).getClass()).build();
|
||||
excelWriter.write(tl, writeSheet);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
//千万别忘记finish 会帮忙关闭流
|
||||
excelWriter.finish();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,240 @@
|
||||
package com.engine.demo.cmd;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.engine.common.biz.AbstractCommonCommand;
|
||||
import com.engine.common.entity.BizLogContext;
|
||||
import com.engine.core.interceptor.CommandContext;
|
||||
import com.engine.demo.entity.FillData;
|
||||
import com.engine.workflow.biz.RobotNode.RobotNodeBiz;
|
||||
import com.engine.workflow.biz.RobotNode.RobotNodeServiceBiz;
|
||||
import com.engine.workflow.biz.requestList.RequestListBiz;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.crm.Maint.CustomerInfoComInfo;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.general.GCONST;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class WorklowBatchExportCmd extends AbstractCommonCommand<Map<String, Object>> {
|
||||
|
||||
BaseBean bb = new BaseBean();
|
||||
|
||||
public WorklowBatchExportCmd(Map<String, Object> params, User user) {
|
||||
this.user = user;
|
||||
this.params = params;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BizLogContext getLogContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(CommandContext commandContext) {
|
||||
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
String requestids = Util.null2String(params.get("requestids"));
|
||||
bb.writeLog("requestids: " +requestids );
|
||||
|
||||
if ( !StringUtils.isNotBlank(requestids)) {
|
||||
result.put("code","500");
|
||||
result.put("msg","请先选择需要导出的流程");
|
||||
return result;
|
||||
}
|
||||
|
||||
String[] requestidArr = requestids.split(",");
|
||||
|
||||
/*导出的字段有 流程标题、所属路径、创建人、创建时间、当前节点、当前未操作人、当前状况、流程编号*/
|
||||
//流程标题 workflow_requestbase.requestname
|
||||
//所属路径 workflow_requestbase.workflowid
|
||||
//创建人 workflow_requestbase.creater
|
||||
//创建时间 workflow_requestbase.createdate
|
||||
//当前节点 workflow_requestbase.currentnodeid
|
||||
//当前未操作人 getUnoperators(requestid, user)
|
||||
//当前状况 workflow_requestbase.status
|
||||
//流程编号 workflow_requestbase.requestmark
|
||||
List<FillData> fillDatas = new ArrayList<>();
|
||||
RecordSet rs = new RecordSet();
|
||||
for (String requestid : requestidArr) {
|
||||
FillData fillData = new FillData();
|
||||
String acqDataSql = "select requestname, workflowid, creater, createdate, currentnodeid, status, requestmark from workflow_requestbase" +
|
||||
" where requestid in (" + requestid + ") ";
|
||||
rs.executeQuery(acqDataSql);
|
||||
while (rs.next()) {
|
||||
String requestname = Util.null2String(rs.getString("requestname"));
|
||||
String workflowid = Util.null2String(rs.getString("workflowid"));
|
||||
String creater = Util.null2String(rs.getString("creater"));
|
||||
String createdate = Util.null2String(rs.getString("createdate"));
|
||||
String currentnodeid = Util.null2String(rs.getString("currentnodeid"));
|
||||
String status = Util.null2String(rs.getString("status"));
|
||||
String requestmark = Util.null2String(rs.getString("requestmark"));
|
||||
|
||||
// fillData.setRequestName(requestname);
|
||||
// fillData.setWorkflowId(workflowid);
|
||||
// fillData.setCreater(creater);
|
||||
// fillData.setCreateDate(createdate);
|
||||
// fillData.setCurrentNodeId(currentnodeid);
|
||||
// fillData.setStatus(status);
|
||||
// fillData.setRequestMark(requestmark);
|
||||
|
||||
}
|
||||
String unoperators = getUnoperators(requestid, user);
|
||||
// fillData.setCurrentNoOperators(unoperators);
|
||||
fillDatas.add(fillData);
|
||||
}
|
||||
|
||||
String fillUrl = "";
|
||||
if (fillDatas != null && fillDatas.size() > 0) {
|
||||
String templateFileName = Util.null2String(bb.getPropValue("workflow_export", "templateFileName"));
|
||||
String outFile = Util.null2String(bb.getPropValue("workflow_export", "outFile"));
|
||||
|
||||
if (StringUtils.isNotBlank(templateFileName) && StringUtils.isNotBlank(outFile)) {
|
||||
fillUrl = this.simpleFill(fillDatas, templateFileName, outFile);
|
||||
} else {
|
||||
bb.writeLog("流程批量导出:请先配置模版名或文件导出路径");
|
||||
result.put("code","500");
|
||||
result.put("msg","请先配置模版名或文件导出路径");
|
||||
|
||||
return result;
|
||||
}
|
||||
} else {
|
||||
result.put("code","500");
|
||||
result.put("msg","无需要导出流程");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
result.put("code","200");
|
||||
result.put("data",fillUrl);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private String getUnoperators(String requestid, User user) {
|
||||
List<String> unOperators = new ArrayList<>();
|
||||
String language = user.getLanguage() + "";
|
||||
String userid = user.getUID() + "";
|
||||
RecordSet rs = new RecordSet();
|
||||
String returnStr = "";
|
||||
RobotNodeServiceBiz robotNodeServiceBiz = new RobotNodeServiceBiz();
|
||||
ResourceComInfo rc = null;
|
||||
CustomerInfoComInfo cci = null;
|
||||
try {
|
||||
rc = new ResourceComInfo();
|
||||
cci = new CustomerInfoComInfo();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
List<String> unoperatorTypes = Util.TokenizerString(new RequestListBiz().getUnOperatorSet(userid), ",");
|
||||
if (Util.getIntValue(requestid) > -1) {//oa系统流程
|
||||
String isremarkStr = " (1 = 2 or ";
|
||||
//--------------------处理isremark条件----------------------
|
||||
if (unoperatorTypes.contains("1")) {//节点操作者
|
||||
isremarkStr += " (isremark = 0 or (isremark = 4 and viewtype = 0) or (isremark = 1 and takisremark = '2')) or ";
|
||||
} else if (unoperatorTypes.contains("2")) {//转办操作者
|
||||
isremarkStr += " (isremark = 0 and (takisremark is null or takisremark=0) and handleforwardid > 0) or ";
|
||||
}
|
||||
|
||||
if (unoperatorTypes.contains("4") && unoperatorTypes.contains("5")) {
|
||||
isremarkStr += " (isremark in(8,9,11)) or ";
|
||||
} else if (unoperatorTypes.contains("4")) {//抄送操作者
|
||||
isremarkStr += " (isremark in(8,9)) or ";
|
||||
} else if (unoperatorTypes.contains("5")) {//传阅操作者
|
||||
isremarkStr += " (isremark in(11)) or ";
|
||||
}
|
||||
|
||||
if (unoperatorTypes.contains("3")) {//转发操作者
|
||||
isremarkStr += " (isremark = 1 and (takisremark <>'2' or takisremark is null)) or ";
|
||||
}
|
||||
if (unoperatorTypes.contains("6")) {//其他操作者--协办、超时干预到指定对象
|
||||
isremarkStr += " (isremark in(5,7)) or ";
|
||||
}
|
||||
isremarkStr += " 1=2)";
|
||||
//--------------------处理isremark条件----------------------
|
||||
//--------------------分页----------------------
|
||||
rs.executeSql("select userid,usertype,agenttype,agentorbyagentid,isremark,showorder,id,groupid,nodeid from workflow_currentoperator where requestid = " + requestid + " and " + isremarkStr + " order by isremark,groupid,showorder asc ,id asc limit 20");
|
||||
|
||||
//--------------------分页----------------------
|
||||
while (rs.next()) {
|
||||
|
||||
//去除重复
|
||||
String key = rs.getString("userid") + ":" + rs.getString("usertype") + ":" + rs.getString("agenttype") + ":" + rs.getString("agentorbyagentid");
|
||||
if (unOperators.contains(key)) {
|
||||
continue;
|
||||
} else {
|
||||
unOperators.add(key);
|
||||
}
|
||||
if (rs.getInt("usertype") == 0) {
|
||||
if (rs.getInt("agenttype") == 2) {
|
||||
returnStr += Util.formatMultiLang(rc.getResourcename(rs.getString("agentorbyagentid")), language) + "->" + Util.formatMultiLang(rc.getResourcename(rs.getString("userid")), language) + " ";
|
||||
|
||||
//判断是否被代理者,如果是,则不显示该记录
|
||||
} else if (rs.getInt("agenttype") == 1 && rs.getInt("isremark") == 4) {
|
||||
continue;
|
||||
} else {
|
||||
returnStr += Util.formatMultiLang(rc.getResourcename(rs.getString("userid")), language) + " ";
|
||||
|
||||
}
|
||||
} else if (RobotNodeBiz.operatortype.equals(rs.getString("usertype"))) {
|
||||
returnStr += Util.formatMultiLang(robotNodeServiceBiz.getRobotNodeSet(Util.getIntValue(rs.getString("nodeid"))).getOperatorName(), language) + " ";
|
||||
|
||||
} else {
|
||||
//TD11591(人力资源与客户同时存在时、加','处理)
|
||||
returnStr += Util.formatMultiLang(cci.getCustomerInfoname(rs.getString("userid")), language) + " ";
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
returnStr = returnStr.replaceAll("\"", "").replaceAll("'", "");
|
||||
if (returnStr.length() > 0) {
|
||||
returnStr = (returnStr.substring(0, returnStr.length() - 1));
|
||||
}
|
||||
return returnStr;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 最简单的填充
|
||||
*
|
||||
* @since 2.1.1
|
||||
*/
|
||||
public String simpleFill(List<FillData> fillDatas, String templateFileName, String outFile) {
|
||||
try {
|
||||
// 模板注意 用{} 来表示你要用的变量 如果本来就有"{","}" 特殊字符 用"\{","\}"代替
|
||||
templateFileName = GCONST.getRootPath() + templateFileName;
|
||||
|
||||
// 方案1 根据对象填充
|
||||
File file =new File(outFile);
|
||||
//如果文件夹不存在则创建
|
||||
if (!file .exists() && !file .isDirectory()) {
|
||||
bb.writeLog("//不存在");
|
||||
file .mkdir();
|
||||
} else {
|
||||
bb.writeLog("//目录存在");
|
||||
}
|
||||
String name = String.valueOf(System.currentTimeMillis());
|
||||
String fileName = outFile + File.separator + name + ".xlsx";
|
||||
|
||||
EasyExcel.write(fileName).withTemplate(templateFileName).sheet().doFill(fillDatas);
|
||||
|
||||
String outUrl = outFile.split("ecology")[1]+ File.separator + name + ".xlsx";
|
||||
bb.writeLog("outUrl: " + outUrl);
|
||||
|
||||
return outUrl;
|
||||
}catch (Exception e) {
|
||||
bb.writeLog("simpleFill Exception: " + e);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.engine.demo.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.demo.service.WorkflowExcelService;
|
||||
import com.engine.demo.service.impl.WorkflowExcelServiceImpl;
|
||||
import com.google.gson.Gson;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.util.Map;
|
||||
|
||||
public class WorkflowExcelController {
|
||||
|
||||
public WorkflowExcelService getWorkflowExcelService(User user) {
|
||||
return ServiceUtil.getService(WorkflowExcelServiceImpl.class,user);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getEndWorkDate")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getEndWorkDate(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> params = ParamUtil.request2Map(request);
|
||||
Map<String, Object> resultDatas = getWorkflowExcelService(user).WorklowBatchExport(params, user);
|
||||
return new Gson().toJson(resultDatas);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getWorkflowExcelData")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getWorkflowExcelData(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> params = ParamUtil.request2Map(request);
|
||||
Map<String, Object> resultDatas = getWorkflowExcelService(user).WorkflowExcelData(params, user);
|
||||
return new Gson().toJson(resultDatas);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/exportFjZip")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String exportFjZip(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> params = ParamUtil.request2Map(request);
|
||||
Map<String, Object> resultDatas = getWorkflowExcelService(user).exportFjZip(params, user);
|
||||
return new Gson().toJson(resultDatas);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.engine.demo.entity;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class FillData {
|
||||
private String requestName;
|
||||
private String workflowId;
|
||||
private String creater;
|
||||
private String createDate;
|
||||
private String currentNodeId;
|
||||
private String currentNoOperators;
|
||||
private String status;
|
||||
private String requestMark;
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
package com.engine.demo.entity.invoice;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class Invoice {
|
||||
// 发票主键
|
||||
private String fpzj;
|
||||
// 发票类型ID
|
||||
private String fplxid;
|
||||
// 发票类型编号
|
||||
private String fplxbh;
|
||||
// 发票种类编号
|
||||
private String fpzlbh;
|
||||
// 购买方名称
|
||||
private String gmfmc;
|
||||
// 购买方信息纳税人识别号
|
||||
private String gmfxxnsrsbh;
|
||||
// 购买方信息地址
|
||||
private String gmfxxdz;
|
||||
// 购买方信息电话
|
||||
private String gmfxxdh;
|
||||
// 购买方信息开户行
|
||||
private String gmfxxkhx;
|
||||
// 购买方信息开户行账号
|
||||
private String gmfxxkhxzh;
|
||||
// 销售方名称
|
||||
private String xsfmc;
|
||||
// 销售方信息纳税识别号
|
||||
private String xsfxxnssbh;
|
||||
// 销售方地址
|
||||
private String xsfdz;
|
||||
// 销售方电话
|
||||
private String xsfdh;
|
||||
// 销售方开户银行
|
||||
private String xsfkhyx;
|
||||
// 销售方开户行账号
|
||||
private String xsfkhxzh;
|
||||
// 校验码
|
||||
private String xym;
|
||||
// 发票号码
|
||||
private String fphm;
|
||||
// 发票代码
|
||||
private String fpdm;
|
||||
// 发票日期
|
||||
private String fprq;
|
||||
// 发票金额
|
||||
private String fpje;
|
||||
// 不含税额
|
||||
private String bhse;
|
||||
// 税额
|
||||
private String se;
|
||||
// 备注
|
||||
private String bz;
|
||||
// 发票标签
|
||||
private String fpbq;
|
||||
// 发票分类
|
||||
private String fpfl;
|
||||
// 发票分类名称
|
||||
private String fpflmc;
|
||||
// 发票内容
|
||||
private String fpnr;
|
||||
// 验真状态
|
||||
private String yzzt;
|
||||
// 报销状态
|
||||
private String bxzt;
|
||||
// 租户
|
||||
private String zh;
|
||||
// 单位编号
|
||||
private String dwbh;
|
||||
// 员工编号
|
||||
private String ygbh;
|
||||
// 文件类型
|
||||
private String wjlx;
|
||||
// 创建时间
|
||||
private String cjsj;
|
||||
// 创建人
|
||||
private String cjr;
|
||||
// 最后修改时间
|
||||
private String zhxgsj;
|
||||
// 最后修改人
|
||||
private String zhxgr;
|
||||
// 影像路径
|
||||
private String yxlj;
|
||||
// 是否转移
|
||||
private String sfzy;
|
||||
// 转移人编号
|
||||
private String zyrbh;
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package com.engine.demo.entity.travelBorrow;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelBorrow {
|
||||
// 单据名称
|
||||
@ExcelProperty({"单据名称"})
|
||||
private String djmc;
|
||||
// 单据编号
|
||||
@ExcelProperty({"单据编号"})
|
||||
private String djbh;
|
||||
// 借款单位编号
|
||||
@ExcelProperty({"借款单位编号"})
|
||||
private String jkdwbh;
|
||||
// 部门编号
|
||||
@ExcelProperty({"部门编号"})
|
||||
private String bmbh;
|
||||
// 单据状态
|
||||
@ExcelProperty({"单据状态"})
|
||||
private String djzt;
|
||||
// 借款人编号
|
||||
@ExcelProperty({"借款人编号"})
|
||||
private String jkrbh;
|
||||
// 单据日期
|
||||
@ExcelProperty({"单据日期"})
|
||||
private String djrq;
|
||||
// 费用项目编号
|
||||
@ExcelProperty({"费用项目编号"})
|
||||
private String fyxmbh;
|
||||
// 附件张数
|
||||
@ExcelProperty({"附件张数"})
|
||||
private String fjzs;
|
||||
// 科研项目名称
|
||||
@ExcelProperty({"科研项目名称"})
|
||||
private String kyxmmc;
|
||||
// 人员职务
|
||||
@ExcelProperty({"人员职务"})
|
||||
private String ryzw;
|
||||
// 人员职务编号
|
||||
@ExcelProperty({"人员职务编号"})
|
||||
private String ryzwbh;
|
||||
// 摘要信息
|
||||
@ExcelProperty({"摘要信息"})
|
||||
private String zyxx;
|
||||
// 申请金额
|
||||
@ExcelProperty({"申请金额"})
|
||||
private String sqje;
|
||||
// 报销已冲销申请金额
|
||||
@ExcelProperty({"报销已冲销申请金额"})
|
||||
private String bxycxsqje;
|
||||
// 借款金额
|
||||
@ExcelProperty({"借款金额"})
|
||||
private String jkje;
|
||||
// 制单人编号
|
||||
@ExcelProperty({"制单人编号"})
|
||||
private String zdrbh;
|
||||
// 是否委托
|
||||
@ExcelProperty({"是否委托"})
|
||||
private String sfwt;
|
||||
// 受托人
|
||||
@ExcelProperty({"受托人"})
|
||||
private String str;
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package com.engine.demo.entity.travelBorrow;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelBorrowDt1 {
|
||||
// 内码
|
||||
@ExcelProperty({"内码"})
|
||||
private String nm;
|
||||
// 借款单内码
|
||||
@ExcelProperty({"借款单内码"})
|
||||
private String jkdnm;
|
||||
// 申请单号
|
||||
@ExcelProperty({"申请单号"})
|
||||
private String sqdh;
|
||||
// 申请说明
|
||||
@ExcelProperty({"申请说明"})
|
||||
private String sqsm;
|
||||
// 出差开始日期
|
||||
@ExcelProperty({"出差开始日期"})
|
||||
private String ccksrq;
|
||||
// 出差结束日期
|
||||
@ExcelProperty({"出差结束日期"})
|
||||
private String ccjsrq;
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package com.engine.demo.entity.travelBorrow;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelBorrowDt2 {
|
||||
// 付款记录内码
|
||||
@ExcelProperty({"付款记录内码"})
|
||||
private String fkjlnm;
|
||||
// 报账单内码
|
||||
@ExcelProperty({"报账单内码"})
|
||||
private String bzdnm;
|
||||
// 资金计划编号
|
||||
@ExcelProperty({"资金计划编号"})
|
||||
private String zjjhbh;
|
||||
// 支付方式编号
|
||||
@ExcelProperty({"支付方式编号"})
|
||||
private String zffsbh;
|
||||
// 对方性质
|
||||
@ExcelProperty({"对方性质"})
|
||||
private String dfxz;
|
||||
// 报账人/单位
|
||||
@ExcelProperty({"报账人/单位"})
|
||||
private String bzrdw;
|
||||
// 收款账户名
|
||||
@ExcelProperty({"收款账户名"})
|
||||
private String skzhm;
|
||||
// 付款金额
|
||||
@ExcelProperty({"付款金额"})
|
||||
private String fkje;
|
||||
// 银行账号
|
||||
@ExcelProperty({"银行账号"})
|
||||
private String yxzh;
|
||||
// 开户银行
|
||||
@ExcelProperty({"开户银行"})
|
||||
private String khyx;
|
||||
// 支付说明
|
||||
@ExcelProperty({"支付说明"})
|
||||
private String zfsm;
|
||||
// 状态
|
||||
@ExcelProperty({"状态"})
|
||||
private String zt;
|
||||
// 付款货币编号
|
||||
@ExcelProperty({"付款货币编号"})
|
||||
private String fkhbbh;
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.engine.demo.entity.travelBorrow;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelBorrowDt3 {
|
||||
// 借款单内码
|
||||
@ExcelProperty({"借款单内码"})
|
||||
private String jkdnm;
|
||||
// 审批节点
|
||||
@ExcelProperty({"审批节点"})
|
||||
private String spjd;
|
||||
// 审批人
|
||||
@ExcelProperty({"审批人"})
|
||||
private String spr;
|
||||
// 审批内容
|
||||
@ExcelProperty({"审批内容"})
|
||||
private String spnr;
|
||||
// 审批时间
|
||||
@ExcelProperty({"审批时间"})
|
||||
private String spsj;
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package com.engine.demo.entity.travelReimbur;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelReimbur {
|
||||
// 单据名称
|
||||
@ExcelProperty({"单据名称"})
|
||||
private String djmc;
|
||||
// 单据编号
|
||||
@ExcelProperty({"单据编号"})
|
||||
private String djbh;
|
||||
// 单位编号
|
||||
@ExcelProperty({"单位编号"})
|
||||
private String dwbh;
|
||||
// 部门编号
|
||||
@ExcelProperty({"部门编号"})
|
||||
private String bmbh;
|
||||
// 单据状态
|
||||
@ExcelProperty({"单据状态"})
|
||||
private String djzt;
|
||||
// 报销人员编号
|
||||
@ExcelProperty({"报销人员编号"})
|
||||
private String bxrybh;
|
||||
// 人员职务
|
||||
@ExcelProperty({"人员职务"})
|
||||
private String ryzw;
|
||||
// 人员职务编号
|
||||
@ExcelProperty({"人员职务编号"})
|
||||
private String ryzwbh;
|
||||
// 人员职级id
|
||||
@ExcelProperty({"人员职级id"})
|
||||
private String ryzjid;
|
||||
// 人员职级
|
||||
@ExcelProperty({"人员职级"})
|
||||
private String ryzj;
|
||||
// 出差类型
|
||||
@ExcelProperty({"出差类型"})
|
||||
private String cclx;
|
||||
// 出差地点
|
||||
@ExcelProperty({"出差地点"})
|
||||
private String ccdd;
|
||||
// 出差开始日期
|
||||
@ExcelProperty({"出差开始日期"})
|
||||
private String ccksrq;
|
||||
// 出差结束日期
|
||||
@ExcelProperty({"出差结束日期"})
|
||||
private String ccjsrq;
|
||||
// 出差天数
|
||||
@ExcelProperty({"出差天数"})
|
||||
private String ccts;
|
||||
// 项目名称
|
||||
@ExcelProperty({"项目名称"})
|
||||
private String xmmc;
|
||||
// 核算项目类别
|
||||
@ExcelProperty({"核算项目类别"})
|
||||
private String hsxmlb;
|
||||
// 可抵扣税额
|
||||
@ExcelProperty({"可抵扣税额"})
|
||||
private String kdkse;
|
||||
// 附件张数
|
||||
@ExcelProperty({"附件张数"})
|
||||
private String fjzs;
|
||||
// 联系电话
|
||||
@ExcelProperty({"联系电话"})
|
||||
private String lxdh;
|
||||
// 报账金额
|
||||
@ExcelProperty({"报账金额"})
|
||||
private String bzje;
|
||||
// 费用日期
|
||||
@ExcelProperty({"费用日期"})
|
||||
private String fyrq;
|
||||
// 是否存在超标费用
|
||||
@ExcelProperty({"是否存在超标费用"})
|
||||
private String sfczcbfy;
|
||||
// 出差事由
|
||||
@ExcelProperty({"出差事由"})
|
||||
private String ccsy;
|
||||
// 实报金额
|
||||
@ExcelProperty({"实报金额"})
|
||||
private String sbje;
|
||||
// 实付金额
|
||||
@ExcelProperty({"实付金额"})
|
||||
private String sfje;
|
||||
// 稽核金额
|
||||
@ExcelProperty({"稽核金额"})
|
||||
private String jhje;
|
||||
// 费用项目内码
|
||||
@ExcelProperty({"费用项目内码"})
|
||||
private String fyxmnm;
|
||||
// 制单人编号
|
||||
@ExcelProperty({"制单人编号"})
|
||||
private String zdrbh;
|
||||
// 是否委托
|
||||
@ExcelProperty({"是否委托"})
|
||||
private String sfwt;
|
||||
// 受托人
|
||||
@ExcelProperty({"受托人"})
|
||||
private String str;
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
package com.engine.demo.entity.travelReimbur;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelReimburDt1 {
|
||||
// 报销单内码
|
||||
@ExcelProperty({"报销单内码"})
|
||||
private String bxdnm;
|
||||
// 出发城市
|
||||
@ExcelProperty({"出发城市"})
|
||||
private String cfcs;
|
||||
// 出发日期
|
||||
@ExcelProperty({"出发日期"})
|
||||
private String cfrq;
|
||||
// 交通工具
|
||||
@ExcelProperty({"交通工具"})
|
||||
private String jtgj;
|
||||
// 坐席等级
|
||||
@ExcelProperty({"坐席等级"})
|
||||
private String zxdj;
|
||||
// 车船_航班/次
|
||||
@ExcelProperty({"车船_航班/次"})
|
||||
private String cchbc;
|
||||
// 机票折扣
|
||||
@ExcelProperty({"机票折扣"})
|
||||
private String jpzk;
|
||||
// 到达城市
|
||||
@ExcelProperty({"到达城市"})
|
||||
private String ddcs;
|
||||
// 到达日期
|
||||
@ExcelProperty({"到达日期"})
|
||||
private String ddrq;
|
||||
// 出差天数
|
||||
@ExcelProperty({"出差天数"})
|
||||
private String ccts;
|
||||
// 车船费
|
||||
@ExcelProperty({"车船费"})
|
||||
private String ccf;
|
||||
// 住宿费标准
|
||||
@ExcelProperty({"住宿费标准"})
|
||||
private String zsfbz;
|
||||
// 住宿天数
|
||||
@ExcelProperty({"住宿天数"})
|
||||
private String zsts;
|
||||
// 住宿费
|
||||
@ExcelProperty({"住宿费"})
|
||||
private String zsf;
|
||||
// 住宿费是否超标
|
||||
@ExcelProperty({"住宿费是否超标"})
|
||||
private String zsfsfcb;
|
||||
// 住宿超标说明
|
||||
@ExcelProperty({"住宿超标说明"})
|
||||
private String zscbsm;
|
||||
// 保险及核酸检测费
|
||||
@ExcelProperty({"保险及核酸检测费"})
|
||||
private String bxjhsjcf;
|
||||
// 其他超标费用
|
||||
@ExcelProperty({"其他超标费用"})
|
||||
private String qtcbfy;
|
||||
// 超标费用说明
|
||||
@ExcelProperty({"超标费用说明"})
|
||||
private String cbfysm;
|
||||
// 补助金额
|
||||
@ExcelProperty({"补助金额"})
|
||||
private String bzje;
|
||||
// 报销金额
|
||||
@ExcelProperty({"报销金额"})
|
||||
private String bxje;
|
||||
// 是否存在超标费用2
|
||||
@ExcelProperty({"是否存在超标费用2"})
|
||||
private String sfczcbfy2;
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package com.engine.demo.entity.travelReimbur;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelReimburDt2 {
|
||||
// 报销单id
|
||||
@ExcelProperty({"报销单id"})
|
||||
private String bxdid;
|
||||
// 分摊单位编号
|
||||
@ExcelProperty({"分摊单位编号"})
|
||||
private String ftdwbh;
|
||||
// 分摊部门编号
|
||||
@ExcelProperty({"分摊部门编号"})
|
||||
private String ftbmbh;
|
||||
// 费用项目
|
||||
@ExcelProperty({"费用项目"})
|
||||
private String fyxm;
|
||||
// 费用项目编号
|
||||
@ExcelProperty({"费用项目编号"})
|
||||
private String fyxmbh;
|
||||
// 分摊金额
|
||||
@ExcelProperty({"分摊金额"})
|
||||
private String ftje;
|
||||
// 分摊说明
|
||||
@ExcelProperty({"分摊说明"})
|
||||
private String ftsm;
|
||||
// 发票号
|
||||
@ExcelProperty({"发票号"})
|
||||
private String fph;
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package com.engine.demo.entity.travelReimbur;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelReimburDt3 {
|
||||
// 报销内码
|
||||
@ExcelProperty({"报销内码"})
|
||||
private String bxnm;
|
||||
// 申请单据编号
|
||||
@ExcelProperty({"申请单据编号"})
|
||||
private String sqdjbh;
|
||||
// 出差开始日期
|
||||
@ExcelProperty({"出差开始日期"})
|
||||
private String ccksrq;
|
||||
// 出差结束日期
|
||||
@ExcelProperty({"出差结束日期"})
|
||||
private String ccjsrq;
|
||||
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.engine.demo.entity.travelReimbur;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelReimburDt4 {
|
||||
// 核销单据内码
|
||||
@ExcelProperty({"核销单据内码"})
|
||||
private String hxdjnm;
|
||||
// 借款日期
|
||||
@ExcelProperty({"借款日期"})
|
||||
private String jkrq;
|
||||
// 单据编号
|
||||
@ExcelProperty({"单据编号"})
|
||||
private String djbh;
|
||||
// 借款类型
|
||||
@ExcelProperty({"借款类型"})
|
||||
private String jklx;
|
||||
// 费用项目
|
||||
@ExcelProperty({"费用项目"})
|
||||
private String fyxm;
|
||||
// 借款说明
|
||||
@ExcelProperty({"借款说明"})
|
||||
private String jksm;
|
||||
// 借款金额
|
||||
@ExcelProperty({"借款金额"})
|
||||
private String jkje;
|
||||
// 在途还款
|
||||
@ExcelProperty({"在途还款"})
|
||||
private String zthk;
|
||||
// 已还款
|
||||
@ExcelProperty({"已还款"})
|
||||
private String yhk;
|
||||
// 核销金额
|
||||
@ExcelProperty({"核销金额"})
|
||||
private String hxje;
|
||||
// 现金还款
|
||||
@ExcelProperty({"现金还款"})
|
||||
private String xjhk;
|
||||
// 欠款
|
||||
@ExcelProperty({"欠款"})
|
||||
private String qk;
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
package com.engine.demo.entity.travelReimbur;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelReimburDt5 {
|
||||
// 付款记录内码
|
||||
@ExcelProperty({"付款记录内码"})
|
||||
private String fkjlnm;
|
||||
// 报账单内码
|
||||
@ExcelProperty({"报账单内码"})
|
||||
private String bzdnm;
|
||||
// 资金计划编号
|
||||
@ExcelProperty({"资金计划编号"})
|
||||
private String zjjhbh;
|
||||
// 资金计划结算性质
|
||||
@ExcelProperty({"资金计划结算性质"})
|
||||
private String zjjhjsxz;
|
||||
// 支付方式编号
|
||||
@ExcelProperty({"支付方式编号"})
|
||||
private String zffsbh;
|
||||
// 对方性质
|
||||
@ExcelProperty({"对方性质"})
|
||||
private String dfxz;
|
||||
// 单位类别
|
||||
@ExcelProperty({"单位类别"})
|
||||
private String dwlb;
|
||||
// 报账人/单位
|
||||
@ExcelProperty({"报账人/单位"})
|
||||
private String bzrdw;
|
||||
// 付款货币编号
|
||||
@ExcelProperty({"付款货币编号"})
|
||||
private String fkhbbh;
|
||||
// 收款帐户名
|
||||
@ExcelProperty({"收款帐户名"})
|
||||
private String skzhm;
|
||||
// 付款金额
|
||||
@ExcelProperty({"付款金额"})
|
||||
private String fkje;
|
||||
// 开户银行
|
||||
@ExcelProperty({"开户银行"})
|
||||
private String khyx;
|
||||
// 银行账号
|
||||
@ExcelProperty({"银行账号"})
|
||||
private String yxzh;
|
||||
// 所属省份
|
||||
@ExcelProperty({"所属省份"})
|
||||
private String ssf;
|
||||
// 所属城市
|
||||
@ExcelProperty({"所属城市"})
|
||||
private String scs;
|
||||
// 付款说明
|
||||
@ExcelProperty({"付款说明"})
|
||||
private String fksm;
|
||||
// 状态
|
||||
@ExcelProperty({"状态"})
|
||||
private String zt;
|
||||
// 收款银行联行号
|
||||
@ExcelProperty({"收款银行联行号"})
|
||||
private String skyxlxh;
|
||||
// 公司是否垫付
|
||||
@ExcelProperty({"公司是否垫付"})
|
||||
private String gssfdf;
|
||||
// 公司垫付
|
||||
@ExcelProperty({"公司垫付"})
|
||||
private String gsdf;
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
package com.engine.demo.entity.travelReimbur;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelReimburDt6 {
|
||||
// 报销单id
|
||||
@ExcelProperty({"报销单id"})
|
||||
private String bxdid;
|
||||
// 审批节点
|
||||
@ExcelProperty({"审批节点"})
|
||||
private String spjd;
|
||||
// 审批人编号
|
||||
@ExcelProperty({"审批人编号"})
|
||||
private String sprbh;
|
||||
// 审批内容
|
||||
@ExcelProperty({"审批内容"})
|
||||
private String spnr;
|
||||
// 审批时间
|
||||
@ExcelProperty({"审批时间"})
|
||||
private String spsj;
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package com.engine.demo.entity.travelReimbur;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TravelReimburDt7 {
|
||||
// 文件ID
|
||||
@ExcelProperty({"文件ID"})
|
||||
private String wjid;
|
||||
// 单据内码
|
||||
@ExcelProperty({"单据内码"})
|
||||
private String djnm;
|
||||
// 文件名称
|
||||
@ExcelProperty({"文件名称"})
|
||||
private String wjmc;
|
||||
// 文件类型
|
||||
@ExcelProperty({"文件类型"})
|
||||
private String wjlx;
|
||||
// 文件大小
|
||||
@ExcelProperty({"文件大小"})
|
||||
private String wjdx;
|
||||
// 文件存储路径
|
||||
@ExcelProperty({"文件存储路径"})
|
||||
private String wjcclj;
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package com.engine.demo.service;
|
||||
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.util.Map;
|
||||
|
||||
public interface WorkflowExcelService {
|
||||
/**
|
||||
* 流程批量导出
|
||||
* @param params
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> WorklowBatchExport(Map<String, Object> params, User user);
|
||||
|
||||
/**
|
||||
* 建模数据导出
|
||||
* @param params
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> WorkflowExcelData(Map<String, Object> params, User user);
|
||||
|
||||
/**
|
||||
* 建模数据导出
|
||||
* @param params
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> exportFjZip(Map<String, Object> params, User user);
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package com.engine.demo.service.impl;
|
||||
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.demo.cmd.ExportFjZipCmd;
|
||||
import com.engine.demo.cmd.WorkflowExcelDataCmd;
|
||||
import com.engine.demo.cmd.WorklowBatchExportCmd;
|
||||
import com.engine.demo.service.WorkflowExcelService;
|
||||
import com.engine.demo.util.ExportFjUtil;
|
||||
import net.sf.json.JSONArray;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.io.File;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
public class WorkflowExcelServiceImpl extends Service implements WorkflowExcelService {
|
||||
|
||||
BaseBean bb = new BaseBean();
|
||||
@Override
|
||||
public Map<String, Object> WorklowBatchExport(Map<String, Object> params, User user) {
|
||||
return commandExecutor.execute(new WorklowBatchExportCmd(params, user));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> WorkflowExcelData(Map<String, Object> params, User user) {
|
||||
return commandExecutor.execute(new WorkflowExcelDataCmd(params, user));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> exportFjZip(Map<String, Object> params, User user) {
|
||||
return commandExecutor.execute(new ExportFjZipCmd(params, user));
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue