diff --git a/WEB-INF/prop/zhuyou_prop_zm.properties b/WEB-INF/prop/zhuyou_prop_zm.properties index b00a998..facfd9a 100644 --- a/WEB-INF/prop/zhuyou_prop_zm.properties +++ b/WEB-INF/prop/zhuyou_prop_zm.properties @@ -5,4 +5,6 @@ sick_leave_rule_id=14 # 是否初始化结转 1是开启,其他是关闭 init_carry_over=1 # 结转额度 -carry_over_limit=7 \ No newline at end of file +carry_over_limit=7 +# 人事变更记录表billid +rsbgjl_table_billid=-198 \ No newline at end of file diff --git a/src/com/api/zhuyou/controller/CommonFormModeController.java b/src/com/api/zhuyou/controller/CommonFormModeController.java new file mode 100644 index 0000000..36f6f76 --- /dev/null +++ b/src/com/api/zhuyou/controller/CommonFormModeController.java @@ -0,0 +1,7 @@ +package com.api.zhuyou.controller; + +import javax.ws.rs.Path; + +@Path("/zy/common/formmode") +public class CommonFormModeController extends com.engine.zhuyou.controller.CommonFormModeController { +} diff --git a/src/com/engine/zhuyou/controller/CommonFormModeController.java b/src/com/engine/zhuyou/controller/CommonFormModeController.java new file mode 100644 index 0000000..55a6336 --- /dev/null +++ b/src/com/engine/zhuyou/controller/CommonFormModeController.java @@ -0,0 +1,191 @@ +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.ServiceUtil; +import com.engine.kq.biz.KQLeaveRulesDetailComInfo; +import com.engine.zhuyou.service.CommonFormModeService; +import com.engine.zhuyou.service.impl.CommonFormModeServiceImpl; +import com.google.gson.Gson; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.ais.comInfo.PropBean; + +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 javax.ws.rs.core.StreamingOutput; +import java.math.BigDecimal; +import java.net.URLEncoder; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + + +public class CommonFormModeController { + private CommonFormModeService commonFormModeService(User user) { + return ServiceUtil.getService(CommonFormModeServiceImpl.class, user); + } + + /** + * 获取历史花名册数据 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getAllState") + @Produces(MediaType.APPLICATION_JSON) + public String getAllState(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map params = ParamUtil.request2Map(request); + return new Gson().toJson(commonFormModeService(user).getAllState(params)); + } + + /** + * 历史花名册数据(Excel导出) + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getExcelHrm") + @Produces({MediaType.APPLICATION_JSON}) + public Response getExcelHrm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + BaseBean bb = new BaseBean(); + bb.writeLog("getExcelHrm into start."); + RecordSet rs = new RecordSet(); + StreamingOutput output = null; + try { + + Map params = ParamUtil.request2Map(request); + String rq = Util.null2String(params.get("rq")); + if (StringUtils.isEmpty(rq)) { + rq = weaver.common.DateUtil.getCurrentDate(); + } + List> titleList = new ArrayList<>(); + Map title = null; + String titles[] = {"编号", "姓名", "部门", "工程", "职务", "区分", "职种", "资格等级", "级号", "班别"}; + for (String ti : titles) { + title = new HashMap<>(); + title.put("rowSpan", 3); + title.put("title", ti); + title.put("width", 30 * 256); + title.put("colSpan", 1); + titleList.add(title); + } + + String billid = bb.getPropValue("zhuyou_prop_zm", "rsbgjl_table_billid"); + if (StringUtils.isEmpty(billid)) { + billid = "-198"; + } + + // 获取动态数据 + List> dataList = new ArrayList<>(); + String sql = "SELECT t1.*, t3.lastname, t4.jobactivitymark, t5.zgdj as zgdjName, t6.jhmc, t7.bbmc " + + "FROM uf_rsbgjl t1\n" + + "INNER JOIN (\n" + + " SELECT \n" + + " xm,\n" + + " MAX(sxrq) AS sxrq " + + " FROM uf_rsbgjl\n" + + " WHERE sxrq <= '" + rq + "' " + + " GROUP BY xm\n" + + ") t2 ON t1.xm = t2.xm \n" + + " AND t1.sxrq = t2.sxrq " + + "LEFT JOIN hrmresource t3 ON t1.xm = t3.id " + + "LEFT JOIN hrmjobactivities t4 ON t1.zw = t4.id " + + "LEFT JOIN uf_zgdjda t5 ON t1.zgdj = t5.zgdjbh " + + "LEFT JOIN uf_jhda t6 ON t1.jh = t6.jhbm " + + "LEFT JOIN uf_bbgl t7 on t1.bb = t7.bbbm "; + + rs.execute(sql); + while (rs.next()) { + String lastname = rs.getString("lastname"); + String gh = rs.getString("gh"); + String bmmc = rs.getString("bmmc"); + String gcmc = rs.getString("gcmc"); + String jobactivitymark = rs.getString("jobactivitymark"); + String qf = rs.getString("qf"); + String zz = rs.getString("zz"); + String zgdjName = rs.getString("zgdjName"); + String jhmc = rs.getString("jhmc"); + String bbmc = rs.getString("bbmc"); + + List data = new ArrayList<>(); + data.add(gh); + data.add(lastname); + data.add(bmmc); + data.add(gcmc); + data.add(jobactivitymark); + data.add(getSelectNameMain("qf", billid, qf)); + data.add(getSelectNameMain("zz", billid, zz)); + data.add(zgdjName); + data.add(jhmc); + data.add(bbmc); + dataList.add(data); + } + LinkedHashMap workbookObj = new LinkedHashMap<>(); + SXSSFWorkbook workbook = new SXSSFWorkbook(); + Map sheet = new HashMap<>(); + sheet.put("titleList", titleList); + sheet.put("sheetName", "历史花名册"); + sheet.put("sheetTitle", "历史花名册"); + sheet.put("dataList", dataList); + List lsSheet = new ArrayList<>(); + lsSheet.add(sheet); + workbookObj.put("sheet", lsSheet); + workbookObj.put("fileName", "历史花名册"); + + BzExcelExpUtil bzExcelExpUtil = new BzExcelExpUtil(); + Integer nBack = bzExcelExpUtil.createSheetBz(workbook, workbookObj); + bb.writeLog("getExcelHrm nBack:" + nBack); + + String filename = URLEncoder.encode("历史花名册", "utf-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); + response.setHeader("Content-Disposition", "Attachment;Filename=" + filename + ".xlsx"); + response.setHeader("Cache-Control", "no-cache"); + + output = outputStream -> { + workbook.write(outputStream); + outputStream.flush(); + }; + } catch (Exception e) { + bb.writeLog("getExcelHrm error:" + e); + } + bb.writeLog("getExcelHrm end."); + return Response.ok(output).build(); + } + + private String getSelectNameMain(String fieldName, String billid, String selectValue) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select id from workflow_billfield where fieldname = ? and billid = ? and viewtype=0", fieldName, billid); + rs.next(); + int fieldId = com.weaver.general.Util.getIntValue(rs.getString("id"),-1); + rs.executeQuery("select selectname from workflow_SelectItem where fieldid = ? and selectvalue = ?", fieldId, selectValue); + rs.next(); + return com.weaver.general.Util.null2String(rs.getString("selectname")); + } +} diff --git a/src/com/engine/zhuyou/service/CommonFormModeService.java b/src/com/engine/zhuyou/service/CommonFormModeService.java new file mode 100644 index 0000000..7b9c744 --- /dev/null +++ b/src/com/engine/zhuyou/service/CommonFormModeService.java @@ -0,0 +1,14 @@ +package com.engine.zhuyou.service; + +import java.util.Map; + +public interface CommonFormModeService { + + /** + * 获取整体情况报表数据 + * + * @param param + * @return + */ + Map getAllState(Map param); +} diff --git a/src/com/engine/zhuyou/service/impl/CommonFormModeServiceImpl.java b/src/com/engine/zhuyou/service/impl/CommonFormModeServiceImpl.java new file mode 100644 index 0000000..9ead4ca --- /dev/null +++ b/src/com/engine/zhuyou/service/impl/CommonFormModeServiceImpl.java @@ -0,0 +1,169 @@ +package com.engine.zhuyou.service.impl; + +import com.engine.core.impl.Service; +import com.engine.zhuyou.service.CommonFormModeService; +import com.weaver.general.BaseBean; +import org.apache.commons.lang3.StringUtils; +import weaver.common.DateUtil; +import weaver.conn.RecordSet; +import weaver.general.Util; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CommonFormModeServiceImpl extends Service implements CommonFormModeService { + + public BaseBean bb = new BaseBean(); + + @Override + public Map getAllState(Map param) { + bb.writeLog("getAllState param:" + param); + Map resultMap = new HashMap<>(); + try { + String rq = Util.null2String(param.get("rq")); + if (StringUtils.isEmpty(rq)) { + rq = DateUtil.getCurrentDate(); + } + // 结转额度 + String billid = bb.getPropValue("zhuyou_prop_zm", "rsbgjl_table_billid"); + if (StringUtils.isEmpty(billid)) { + billid = "-198"; + } + RecordSet rs = new RecordSet(); + //表格数据 + List> infos = new ArrayList<>(); + String sql = "SELECT t1.*, t3.lastname, t4.jobactivitymark, t5.zgdj as zgdjName, t6.jhmc, t7.bbmc " + + "FROM uf_rsbgjl t1\n" + + "INNER JOIN (\n" + + " SELECT \n" + + " xm,\n" + + " MAX(sxrq) AS sxrq " + + " FROM uf_rsbgjl\n" + + " WHERE sxrq <= '" + rq + "' " + + " GROUP BY xm\n" + + ") t2 ON t1.xm = t2.xm \n" + + " AND t1.sxrq = t2.sxrq " + + "LEFT JOIN hrmresource t3 ON t1.xm = t3.id " + + "LEFT JOIN hrmjobactivities t4 ON t1.zw = t4.id " + + "LEFT JOIN uf_zgdjda t5 ON t1.zgdj = t5.zgdjbh " + + "LEFT JOIN uf_jhda t6 ON t1.jh = t6.jhbm " + + "LEFT JOIN uf_bbgl t7 on t1.bb = t7.bbbm "; + + rs.execute(sql); + while (rs.next()) { + String xm = rs.getString("xm"); + String lastname = rs.getString("lastname"); + String gh = rs.getString("gh"); + String bmmc = rs.getString("bmmc"); + String gcmc = rs.getString("gcmc"); + String jobactivitymark = rs.getString("jobactivitymark"); + String qf = rs.getString("qf"); + String zz = rs.getString("zz"); + String zgdjName = rs.getString("zgdjName"); + String jhmc = rs.getString("jhmc"); + String bbmc = rs.getString("bbmc"); + String sxrq = rs.getString("sxrq"); + + Map info = new HashMap<>(); + info.put("ryid", xm); + info.put("xm", lastname); + info.put("gh", gh); + info.put("bm", bmmc); + info.put("gc", gcmc); + info.put("zw", jobactivitymark); + info.put("qf", getSelectNameMain("qf", billid, qf)); + info.put("zz", getSelectNameMain("zz", billid, zz)); + info.put("zgdj", zgdjName); + info.put("jh", jhmc); + info.put("bb", bbmc); + info.put("sxrq", sxrq); + infos.add(info); + } + + List> colMapList = new ArrayList<>(); + Map colMap = new HashMap<>(); + colMap.put("colSpan", "1"); + colMap.put("dataIndex", "gh"); + colMap.put("width", "100"); + colMap.put("title", "工号"); + colMapList.add(colMap); + + colMap = new HashMap<>(); + colMap.put("colSpan", "1"); + colMap.put("dataIndex", "xm"); + colMap.put("width", "100"); + colMap.put("title", "姓名"); + 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.put("colSpan", "1"); + colMap.put("dataIndex", "gc"); + colMap.put("width", "100"); + colMap.put("title", "工程"); + colMapList.add(colMap); + + colMap = new HashMap<>(); + colMap.put("colSpan", "1"); + colMap.put("dataIndex", "zw"); + colMap.put("width", "100"); + colMap.put("title", "职务"); + colMapList.add(colMap); + colMap = new HashMap<>(); + colMap.put("colSpan", "1"); + colMap.put("dataIndex", "qf"); + colMap.put("width", "100"); + colMap.put("title", "区分"); + colMapList.add(colMap); + colMap = new HashMap<>(); + colMap.put("colSpan", "1"); + colMap.put("dataIndex", "zz"); + colMap.put("width", "100"); + colMap.put("title", "职种"); + colMapList.add(colMap); + colMap = new HashMap<>(); + colMap.put("colSpan", "1"); + colMap.put("dataIndex", "zgdj"); + colMap.put("width", "100"); + colMap.put("title", "资格等级"); + colMapList.add(colMap); + colMap = new HashMap<>(); + colMap.put("colSpan", "1"); + colMap.put("dataIndex", "jh"); + colMap.put("width", "100"); + colMap.put("title", "级号"); + colMapList.add(colMap); + colMap = new HashMap<>(); + colMap.put("colSpan", "1"); + colMap.put("dataIndex", "bb"); + colMap.put("width", "100"); + colMap.put("title", "班别"); + colMapList.add(colMap); + + resultMap.put("count", infos.size()); + resultMap.put("dataList", infos); + resultMap.put("colList", colMapList); + resultMap.put("code", "200"); + } catch (Exception e) { + resultMap.put("code", "500"); + bb.writeLog("getAllState error:" + e); + } + bb.writeLog("getAllState end."); + return resultMap; + } + + private String getSelectNameMain(String fieldName, String billid, String selectValue) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select id from workflow_billfield where fieldname = ? and billid = ? and viewtype=0", fieldName, billid); + rs.next(); + int fieldId = com.weaver.general.Util.getIntValue(rs.getString("id"),-1); + rs.executeQuery("select selectname from workflow_SelectItem where fieldid = ? and selectvalue = ?", fieldId, selectValue); + rs.next(); + return com.weaver.general.Util.null2String(rs.getString("selectname")); + } +}