历史花名册
This commit is contained in:
parent
0dca9b6fdd
commit
01d0512fee
|
|
@ -1,12 +1,10 @@
|
||||||
package com.engine.zhuyou.controller;
|
package com.engine.zhuyou.controller;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
|
||||||
import com.engine.ais.util.BzExcelExpUtil;
|
|
||||||
import com.engine.common.util.ParamUtil;
|
import com.engine.common.util.ParamUtil;
|
||||||
import com.engine.common.util.ServiceUtil;
|
import com.engine.common.util.ServiceUtil;
|
||||||
import com.engine.kq.biz.KQLeaveRulesDetailComInfo;
|
|
||||||
import com.engine.zhuyou.service.CommonFormModeService;
|
import com.engine.zhuyou.service.CommonFormModeService;
|
||||||
import com.engine.zhuyou.service.impl.CommonFormModeServiceImpl;
|
import com.engine.zhuyou.service.impl.CommonFormModeServiceImpl;
|
||||||
|
import com.engine.zhuyou.util.BzExcelExpUtil;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||||
|
|
@ -15,7 +13,6 @@ import weaver.general.BaseBean;
|
||||||
import weaver.general.Util;
|
import weaver.general.Util;
|
||||||
import weaver.hrm.HrmUserVarify;
|
import weaver.hrm.HrmUserVarify;
|
||||||
import weaver.hrm.User;
|
import weaver.hrm.User;
|
||||||
import weaver.interfaces.ais.comInfo.PropBean;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
@ -26,19 +23,14 @@ import javax.ws.rs.core.Context;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.Response;
|
||||||
import javax.ws.rs.core.StreamingOutput;
|
import javax.ws.rs.core.StreamingOutput;
|
||||||
import java.math.BigDecimal;
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStream;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.text.DecimalFormat;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
|
|
||||||
public class CommonFormModeController {
|
public class CommonFormModeController {
|
||||||
|
|
@ -73,7 +65,6 @@ public class CommonFormModeController {
|
||||||
@Path("/getExcelHrm")
|
@Path("/getExcelHrm")
|
||||||
@Produces({MediaType.APPLICATION_JSON})
|
@Produces({MediaType.APPLICATION_JSON})
|
||||||
public Response getExcelHrm(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
public Response getExcelHrm(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||||
User user = HrmUserVarify.getUser(request, response);
|
|
||||||
BaseBean bb = new BaseBean();
|
BaseBean bb = new BaseBean();
|
||||||
bb.writeLog("getExcelHrm into start.");
|
bb.writeLog("getExcelHrm into start.");
|
||||||
RecordSet rs = new RecordSet();
|
RecordSet rs = new RecordSet();
|
||||||
|
|
@ -85,18 +76,30 @@ public class CommonFormModeController {
|
||||||
if (StringUtils.isEmpty(rq)) {
|
if (StringUtils.isEmpty(rq)) {
|
||||||
rq = weaver.common.DateUtil.getCurrentDate();
|
rq = weaver.common.DateUtil.getCurrentDate();
|
||||||
}
|
}
|
||||||
|
String bhParam = Util.null2String(params.get("bh"));
|
||||||
|
String ygxmParam = Util.null2String(params.get("ygxm"));
|
||||||
|
String gcParam = Util.null2String(params.get("gc"));
|
||||||
|
String bmParam = Util.null2String(params.get("bm"));
|
||||||
|
String zwParam = Util.null2String(params.get("zw"));
|
||||||
|
String qfParam = Util.null2String(params.get("qf"));
|
||||||
|
String zzParam = Util.null2String(params.get("zz"));
|
||||||
|
String zgdjParam = Util.null2String(params.get("zgdj"));
|
||||||
|
String jhParam = Util.null2String(params.get("jh"));
|
||||||
|
String bbParam = Util.null2String(params.get("bb"));
|
||||||
List<Map<String, Object>> titleList = new ArrayList<>();
|
List<Map<String, Object>> titleList = new ArrayList<>();
|
||||||
Map<String, Object> title = null;
|
Map<String, Object> title = null;
|
||||||
String titles[] = {"编号", "姓名", "部门", "工程", "职务", "区分", "职种", "资格等级", "级号", "班别"};
|
String[] titles = {"编号", "姓名", "工程", "部门", "职务", "区分", "职种", "资格等级", "级号", "班别"};
|
||||||
for (String ti : titles) {
|
for (String ti : titles) {
|
||||||
title = new HashMap<>();
|
title = new HashMap<>();
|
||||||
title.put("rowSpan", 3);
|
title.put("rowSpan", 3);
|
||||||
title.put("title", ti);
|
title.put("title", ti);
|
||||||
title.put("width", 30 * 256);
|
title.put("width", 10 * 256);
|
||||||
title.put("colSpan", 1);
|
title.put("colSpan", 1);
|
||||||
titleList.add(title);
|
titleList.add(title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bb.writeLog("getExcelHrm titles:" + titles.length);
|
||||||
|
|
||||||
String billid = bb.getPropValue("zhuyou_prop_zm", "rsbgjl_table_billid");
|
String billid = bb.getPropValue("zhuyou_prop_zm", "rsbgjl_table_billid");
|
||||||
if (StringUtils.isEmpty(billid)) {
|
if (StringUtils.isEmpty(billid)) {
|
||||||
billid = "-198";
|
billid = "-198";
|
||||||
|
|
@ -134,44 +137,136 @@ public class CommonFormModeController {
|
||||||
String jhmc = rs.getString("jhmc");
|
String jhmc = rs.getString("jhmc");
|
||||||
String bbmc = rs.getString("bbmc");
|
String bbmc = rs.getString("bbmc");
|
||||||
|
|
||||||
|
String qfName = null;
|
||||||
|
if (StringUtils.isNotEmpty(qf)) {
|
||||||
|
qfName = getSelectNameMain("qf", billid, qf);
|
||||||
|
}
|
||||||
|
String zzName = null;
|
||||||
|
if (StringUtils.isNotEmpty(zz)) {
|
||||||
|
zzName = getSelectNameMain("zz", billid, zz);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StringUtils.isNotEmpty(bhParam)) {
|
||||||
|
if (StringUtils.isEmpty(gh) || !gh.contains(bhParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(ygxmParam)) {
|
||||||
|
if (StringUtils.isEmpty(lastname) || !lastname.contains(ygxmParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(gcParam)) {
|
||||||
|
if (StringUtils.isEmpty(gcmc) || !gcmc.contains(gcParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(bmParam)) {
|
||||||
|
if (StringUtils.isEmpty(bmmc) || !bmmc.contains(bmParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(zwParam)) {
|
||||||
|
if (StringUtils.isEmpty(jobactivitymark) || !jobactivitymark.contains(zwParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(qfParam)) {
|
||||||
|
if (StringUtils.isEmpty(qfName) || !qfName.contains(qfParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(zzParam)) {
|
||||||
|
if (StringUtils.isEmpty(zzName) || !zzName.contains(zzParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(zgdjParam)) {
|
||||||
|
if (StringUtils.isEmpty(zgdjName) || !zgdjName.contains(zgdjParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(jhParam)) {
|
||||||
|
if (StringUtils.isEmpty(jhmc) || !jhmc.contains(jhParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(bbParam)) {
|
||||||
|
if (StringUtils.isEmpty(bbmc) || !bbmc.contains(bbParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
List<Object> data = new ArrayList<>();
|
List<Object> data = new ArrayList<>();
|
||||||
data.add(gh);
|
data.add(gh);
|
||||||
data.add(lastname);
|
data.add(lastname);
|
||||||
data.add(bmmc);
|
|
||||||
data.add(gcmc);
|
data.add(gcmc);
|
||||||
|
data.add(bmmc);
|
||||||
data.add(jobactivitymark);
|
data.add(jobactivitymark);
|
||||||
data.add(getSelectNameMain("qf", billid, qf));
|
data.add(qfName);
|
||||||
data.add(getSelectNameMain("zz", billid, zz));
|
data.add(zzName);
|
||||||
data.add(zgdjName);
|
data.add(zgdjName);
|
||||||
data.add(jhmc);
|
data.add(jhmc);
|
||||||
data.add(bbmc);
|
data.add(bbmc);
|
||||||
dataList.add(data);
|
dataList.add(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bb.writeLog("getExcelHrm dataList:" + dataList);
|
||||||
|
|
||||||
LinkedHashMap<String, Object> workbookObj = new LinkedHashMap<>();
|
LinkedHashMap<String, Object> workbookObj = new LinkedHashMap<>();
|
||||||
SXSSFWorkbook workbook = new SXSSFWorkbook();
|
SXSSFWorkbook workbook = new SXSSFWorkbook();
|
||||||
Map<String, Object> sheet = new HashMap<>();
|
|
||||||
sheet.put("titleList", titleList);
|
|
||||||
sheet.put("sheetName", "历史花名册");
|
|
||||||
sheet.put("sheetTitle", "历史花名册");
|
|
||||||
sheet.put("dataList", dataList);
|
|
||||||
List<Object> lsSheet = new ArrayList<>();
|
|
||||||
lsSheet.add(sheet);
|
|
||||||
workbookObj.put("sheet", lsSheet);
|
|
||||||
workbookObj.put("fileName", "历史花名册");
|
|
||||||
|
|
||||||
BzExcelExpUtil bzExcelExpUtil = new BzExcelExpUtil();
|
try {
|
||||||
Integer nBack = bzExcelExpUtil.createSheetBz(workbook, workbookObj);
|
workbook = new SXSSFWorkbook();
|
||||||
bb.writeLog("getExcelHrm nBack:" + nBack);
|
Map<String, Object> sheet = new HashMap<>();
|
||||||
|
sheet.put("titleList", titleList);
|
||||||
|
sheet.put("sheetName", "历史花名册");
|
||||||
|
sheet.put("sheetTitle", "历史花名册");
|
||||||
|
sheet.put("dataList", dataList);
|
||||||
|
List<Object> lsSheet = new ArrayList<>();
|
||||||
|
lsSheet.add(sheet);
|
||||||
|
workbookObj.put("sheet", lsSheet);
|
||||||
|
workbookObj.put("fileName", "历史花名册");
|
||||||
|
|
||||||
String filename = URLEncoder.encode("历史花名册", "utf-8");
|
BzExcelExpUtil bzExcelExpUtil = new BzExcelExpUtil();
|
||||||
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
|
Integer nBack = bzExcelExpUtil.createSheetBz(workbook, workbookObj);
|
||||||
response.setHeader("Content-Disposition", "Attachment;Filename=" + filename + ".xlsx");
|
bb.writeLog("getExcelHrm nBack:" + nBack);
|
||||||
response.setHeader("Cache-Control", "no-cache");
|
|
||||||
|
|
||||||
output = outputStream -> {
|
String filename = URLEncoder.encode("历史花名册", "utf-8");
|
||||||
workbook.write(outputStream);
|
|
||||||
outputStream.flush();
|
// 使用 JAX-RS 方式设置响应头
|
||||||
};
|
SXSSFWorkbook finalWorkbook = workbook;
|
||||||
|
return Response.ok(new StreamingOutput() {
|
||||||
|
@Override
|
||||||
|
public void write(OutputStream outputStream) throws IOException {
|
||||||
|
try (OutputStream os = outputStream;
|
||||||
|
SXSSFWorkbook wb = finalWorkbook) {
|
||||||
|
wb.write(os);
|
||||||
|
os.flush();
|
||||||
|
} finally {
|
||||||
|
// 确保SXSSF临时文件被清理
|
||||||
|
if (finalWorkbook != null) {
|
||||||
|
finalWorkbook.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.header("Content-Disposition", "attachment; filename=" + filename + ".xlsx")
|
||||||
|
.header("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
||||||
|
.header("Cache-Control", "no-cache")
|
||||||
|
.build();
|
||||||
|
} catch (Exception e) {
|
||||||
|
bb.writeLog("getExcelHrm error:" + e);
|
||||||
|
// 发生异常时关闭workbook
|
||||||
|
if (workbook != null) {
|
||||||
|
try {
|
||||||
|
workbook.close();
|
||||||
|
workbook.dispose();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
bb.writeLog("Error closing workbook: " + ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw e; // 重新抛出异常以便上层处理
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
bb.writeLog("getExcelHrm error:" + e);
|
bb.writeLog("getExcelHrm error:" + e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,15 +17,25 @@ public class CommonFormModeServiceImpl extends Service implements CommonFormMode
|
||||||
public BaseBean bb = new BaseBean();
|
public BaseBean bb = new BaseBean();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> getAllState(Map<String, Object> param) {
|
public Map<String, Object> getAllState(Map<String, Object> params) {
|
||||||
bb.writeLog("getAllState param:" + param);
|
bb.writeLog("getAllState param:" + params);
|
||||||
Map<String, Object> resultMap = new HashMap<>();
|
Map<String, Object> resultMap = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
String rq = Util.null2String(param.get("rq"));
|
String rq = Util.null2String(params.get("rq"));
|
||||||
if (StringUtils.isEmpty(rq)) {
|
if (StringUtils.isEmpty(rq)) {
|
||||||
rq = DateUtil.getCurrentDate();
|
rq = DateUtil.getCurrentDate();
|
||||||
}
|
}
|
||||||
// 结转额度
|
String bhParam = Util.null2String(params.get("bh"));
|
||||||
|
String ygxmParam = Util.null2String(params.get("ygxm"));
|
||||||
|
String gcParam = Util.null2String(params.get("gc"));
|
||||||
|
String bmParam = Util.null2String(params.get("bm"));
|
||||||
|
String zwParam = Util.null2String(params.get("zw"));
|
||||||
|
String qfParam = Util.null2String(params.get("qf"));
|
||||||
|
String zzParam = Util.null2String(params.get("zz"));
|
||||||
|
String zgdjParam = Util.null2String(params.get("zgdj"));
|
||||||
|
String jhParam = Util.null2String(params.get("jh"));
|
||||||
|
String bbParam = Util.null2String(params.get("bb"));
|
||||||
|
// 人事变更记录表billid
|
||||||
String billid = bb.getPropValue("zhuyou_prop_zm", "rsbgjl_table_billid");
|
String billid = bb.getPropValue("zhuyou_prop_zm", "rsbgjl_table_billid");
|
||||||
if (StringUtils.isEmpty(billid)) {
|
if (StringUtils.isEmpty(billid)) {
|
||||||
billid = "-198";
|
billid = "-198";
|
||||||
|
|
@ -65,15 +75,75 @@ public class CommonFormModeServiceImpl extends Service implements CommonFormMode
|
||||||
String bbmc = rs.getString("bbmc");
|
String bbmc = rs.getString("bbmc");
|
||||||
String sxrq = rs.getString("sxrq");
|
String sxrq = rs.getString("sxrq");
|
||||||
|
|
||||||
|
String qfName = null;
|
||||||
|
if (StringUtils.isNotEmpty(qf)) {
|
||||||
|
qfName = getSelectNameMain("qf", billid, qf);
|
||||||
|
}
|
||||||
|
String zzName = null;
|
||||||
|
if (StringUtils.isNotEmpty(zz)) {
|
||||||
|
zzName = getSelectNameMain("zz", billid, zz);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StringUtils.isNotEmpty(bhParam)) {
|
||||||
|
if (StringUtils.isEmpty(gh) || !gh.contains(bhParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(ygxmParam)) {
|
||||||
|
if (StringUtils.isEmpty(lastname) || !lastname.contains(ygxmParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(gcParam)) {
|
||||||
|
if (StringUtils.isEmpty(gcmc) || !gcmc.contains(gcParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(bmParam)) {
|
||||||
|
if (StringUtils.isEmpty(bmmc) || !bmmc.contains(bmParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(zwParam)) {
|
||||||
|
if (StringUtils.isEmpty(jobactivitymark) || !jobactivitymark.contains(zwParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(qfParam)) {
|
||||||
|
if (StringUtils.isEmpty(qfName) || !qfName.contains(qfParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(zzParam)) {
|
||||||
|
if (StringUtils.isEmpty(zzName) || !zzName.contains(zzParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(zgdjParam)) {
|
||||||
|
if (StringUtils.isEmpty(zgdjName) || !zgdjName.contains(zgdjParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(jhParam)) {
|
||||||
|
if (StringUtils.isEmpty(jhmc) || !jhmc.contains(jhParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(bbParam)) {
|
||||||
|
if (StringUtils.isEmpty(bbmc) || !bbmc.contains(bbParam)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Map<String, Object> info = new HashMap<>();
|
Map<String, Object> info = new HashMap<>();
|
||||||
info.put("ryid", xm);
|
info.put("ryid", xm);
|
||||||
info.put("xm", lastname);
|
info.put("xm", lastname);
|
||||||
info.put("gh", gh);
|
info.put("gh", gh);
|
||||||
info.put("bm", bmmc);
|
|
||||||
info.put("gc", gcmc);
|
info.put("gc", gcmc);
|
||||||
|
info.put("bm", bmmc);
|
||||||
info.put("zw", jobactivitymark);
|
info.put("zw", jobactivitymark);
|
||||||
info.put("qf", getSelectNameMain("qf", billid, qf));
|
info.put("qf", qfName);
|
||||||
info.put("zz", getSelectNameMain("zz", billid, zz));
|
info.put("zz", zzName);
|
||||||
info.put("zgdj", zgdjName);
|
info.put("zgdj", zgdjName);
|
||||||
info.put("jh", jhmc);
|
info.put("jh", jhmc);
|
||||||
info.put("bb", bbmc);
|
info.put("bb", bbmc);
|
||||||
|
|
@ -97,17 +167,16 @@ public class CommonFormModeServiceImpl extends Service implements CommonFormMode
|
||||||
colMapList.add(colMap);
|
colMapList.add(colMap);
|
||||||
colMap = new HashMap<>();
|
colMap = new HashMap<>();
|
||||||
colMap.put("colSpan", "1");
|
colMap.put("colSpan", "1");
|
||||||
colMap.put("dataIndex", "bm");
|
|
||||||
colMap.put("width", "100");
|
|
||||||
colMap.put("title", "部门");
|
|
||||||
colMapList.add(colMap);
|
|
||||||
colMap = new HashMap<>();
|
|
||||||
colMap.put("colSpan", "1");
|
|
||||||
colMap.put("dataIndex", "gc");
|
colMap.put("dataIndex", "gc");
|
||||||
colMap.put("width", "100");
|
colMap.put("width", "100");
|
||||||
colMap.put("title", "工程");
|
colMap.put("title", "工程");
|
||||||
colMapList.add(colMap);
|
colMapList.add(colMap);
|
||||||
|
colMap = new HashMap<>();
|
||||||
|
colMap.put("colSpan", "1");
|
||||||
|
colMap.put("dataIndex", "bm");
|
||||||
|
colMap.put("width", "100");
|
||||||
|
colMap.put("title", "部门");
|
||||||
|
colMapList.add(colMap);
|
||||||
colMap = new HashMap<>();
|
colMap = new HashMap<>();
|
||||||
colMap.put("colSpan", "1");
|
colMap.put("colSpan", "1");
|
||||||
colMap.put("dataIndex", "zw");
|
colMap.put("dataIndex", "zw");
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue