diff --git a/src/com/engine/kqsolution/entity/HistoryResourcePO.java b/src/com/engine/kqsolution/entity/HistoryResourcePO.java index abfa8b4..1d939ca 100644 --- a/src/com/engine/kqsolution/entity/HistoryResourcePO.java +++ b/src/com/engine/kqsolution/entity/HistoryResourcePO.java @@ -63,6 +63,7 @@ public class HistoryResourcePO { private String regresidentplace; + private String changeDate; } diff --git a/src/com/engine/kqsolution/service/ResourceSnipService.java b/src/com/engine/kqsolution/service/ResourceSnipService.java index f1d9420..1545e61 100644 --- a/src/com/engine/kqsolution/service/ResourceSnipService.java +++ b/src/com/engine/kqsolution/service/ResourceSnipService.java @@ -32,4 +32,13 @@ public interface ResourceSnipService { * @return */ XSSFWorkbook snipshotExport(HttpServletRequest request, HttpServletResponse response, String monthDate, String companyStartDate); + + /** + * @Description: 人事花名册 + * @Author: liang.cheng + * @Date: 2024/9/10 5:35 PM + * @param: [companyStartDate] + * @return: java.util.Map + */ + Map hrResource(String companyStartDate); } diff --git a/src/com/engine/kqsolution/service/impl/ResourceSnipServiceImpl.java b/src/com/engine/kqsolution/service/impl/ResourceSnipServiceImpl.java index 07cc5ec..9ec343d 100644 --- a/src/com/engine/kqsolution/service/impl/ResourceSnipServiceImpl.java +++ b/src/com/engine/kqsolution/service/impl/ResourceSnipServiceImpl.java @@ -8,10 +8,12 @@ import com.cloudstore.eccom.pc.table.WeaTable; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.pc.table.WeaTableType; import com.engine.core.impl.Service; +import com.engine.kqsolution.entity.HistoryResourcePO; import com.engine.kqsolution.service.ResourceSnipService; import com.engine.kqsolution.util.ExcelUtil; import com.engine.kqsolution.util.ResourceSnipUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.PageIdConst; import com.cloudstore.eccom.result.WeaResultMsg; @@ -53,10 +55,10 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ table.setBackfields(fields); String fromSql = " from hrmresource a\n" + " left join cus_fielddata b on a.id = b.id and b.scopeid = 1\n" + - " left join cus_fielddata c on a.id = c.id and c.scopeid = -1"; + " left join cus_fielddata c on a.id = c.id and c.scopeid = -1\n"; table.setSqlform(fromSql); if (!"".equals(companyStartDate)){ - String sqlWhere = " where 1=1 and a.companystartdate <= '"+companyStartDate+"'"; + String sqlWhere = " where 1=1 and a.status < 4 "; table.setSqlwhere(sqlWhere); } @@ -101,11 +103,11 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ String pageSize = PageIdConst.getPageSize(pageId, user.getUID()); table.setPagesize(pageSize); String fields = "t.id,t.gh,t.xm,t.csrq,t.xb,t.fb,t.bm,t.zjsj,t.rzrq,t.cjrq,t.gjjzh,t.gzzh,t.gzyx,t.sccbsj," + - " t.htksrq,t.htjsrq,t.gw,t.zt,t.xl,t.dh,t.sfzh,t.jg,t.hkszd,t.cdrq"; + " t.htksrq,t.htjsrq,t.gw,t.zt,t.xl,t.dh,t.sfzh,t.jg,t.hkszd,t.cdrq,t.lzrq"; table.setBackfields(fields); String fromSql = " from uf_hmckz t"; table.setSqlform(fromSql); - String sqlWhere = " where 1=1 and t.cdrq = '"+monthDate+"'"; + String sqlWhere = " where 1=1 and t.cdrq = '"+monthDate+"' and t.zt < 4"; table.setSqlwhere(sqlWhere); table.setSqlprimarykey("id"); table.getColumns().add(new WeaTableColumn("id").setDisplay(WeaBoolAttr.FALSE)); @@ -125,12 +127,13 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ table.getColumns().add(new WeaTableColumn("10%", "合同开始日期", "htksrq").setDisplay(WeaBoolAttr.FALSE)); table.getColumns().add(new WeaTableColumn("10%", "合同结束日期", "htjsrq").setDisplay(WeaBoolAttr.FALSE)); table.getColumns().add(new WeaTableColumn("10%", "岗位", "gw").setDisplay(WeaBoolAttr.FALSE)); - table.getColumns().add(new WeaTableColumn("10%", "状态", "zt").setDisplay(WeaBoolAttr.FALSE)); + table.getColumns().add(new WeaTableColumn("10%", "状态", "zt").setDisplay(WeaBoolAttr.FALSE).setTransmethod("com.engine.kqsolution.util.ResourceSnipUtils.selectStatusName")); table.getColumns().add(new WeaTableColumn("10%", "学历", "xl").setDisplay(WeaBoolAttr.FALSE)); table.getColumns().add(new WeaTableColumn("10%", "电话", "dh").setDisplay(WeaBoolAttr.FALSE)); table.getColumns().add(new WeaTableColumn("10%", "身份证号", "sfzh").setDisplay(WeaBoolAttr.FALSE)); table.getColumns().add(new WeaTableColumn("10%", "籍贯", "jg").setDisplay(WeaBoolAttr.FALSE)); table.getColumns().add(new WeaTableColumn("10%", "户口所在地", "hkszd").setDisplay(WeaBoolAttr.FALSE)); + table.getColumns().add(new WeaTableColumn("10%", "离职日期", "lzrq").setDisplay(WeaBoolAttr.FALSE)); table.setTableType(WeaTableType.NONE); WeaResultMsg result = new WeaResultMsg(false); @@ -149,7 +152,7 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ //全字段导出 List headerList = Arrays.asList("编号","姓名","出生日期","性别","分部","部门","直接上级","入职日期","创建日期","公积金账户","工资账户","工资银行","首次参保时间", - "合同开始日期","合同结束日期","岗位","状态","学历","电话","身份证号","籍贯","户口所在地"); + "合同开始日期","合同结束日期","岗位","状态","学历","电话","身份证号","籍贯","户口所在地","离职日期"); Map map = resourceSnip(monthDate, companyStartDate); @@ -189,6 +192,7 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ row.add(table ? snip.get("certificatenumspan") : snip.get("sfzh")); row.add(table ? snip.get("nativeplacespan") : snip.get("jg")); row.add(table ? snip.get("regresidentplacespan") : snip.get("hkszd")); + row.add(table ? snip.get("changedate") : snip.get("lzrq")); rows.add(row); } @@ -200,4 +204,62 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ return ExcelUtil.genWorkbookV2(excelSheetData, sheetName); } + + @Override + public Map hrResource(String companyStartDate) { + + Map resultMap = new HashMap<>(4); + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + String account = bb.getPropValue("jcsecond", "account"); + String bankField = bb.getPropValue("jcsecond", "bankField"); + String regresidentplace = bb.getPropValue("jcsecond", "regresidentplace"); + String femdate = bb.getPropValue("jcsecond", "femdate"); + + + rs.executeQuery("select a.id,a.workcode,a.lastname,a.birthday,a.sex,a.subcompanyid1,a.departmentid,a.managerid,a.companystartdate,\n" + + "a.createdate,a.accumfundaccount,b."+account+" as account,b."+bankField+" as bankname,c."+femdate+" as femdate,\n" + + "a.startdate,a.enddate,a.jobtitle,a.status,a.educationlevel,a.mobile,a.certificatenum,\n" + + "a.nativeplace,b."+regresidentplace+" as regresidentplace from hrmresource a\n" + + "left join cus_fielddata b on a.id = b.id and b.scopeid = 1\n" + + "left join cus_fielddata c on a.id = c.id and c.scopeid = -1\n" + + "where a.companystartdate <= '2024-09-30'"); + + List historyResourceList = new ArrayList<>(); + while (rs.next()) { + HistoryResourcePO build = HistoryResourcePO.builder() + .resourceId(Util.getIntValue(rs.getString("id"))) + .workcode(Util.null2String(rs.getString("workcode"))) + .lastName(Util.null2String(rs.getString("lastname"))) + .birthday(Util.null2String(rs.getString("birthday"))) + .sex("0".equals(Util.null2String(rs.getString("sex"))) ? "男" : "女") + .subCompany(ResourceSnipUtils.selectSubCompanyName(Util.null2String(rs.getString("subcompanyid1")))) + .department(ResourceSnipUtils.selectDeptName(Util.null2String(rs.getString("departmentid")))) + .managerId(ResourceSnipUtils.selectResourceName(Util.null2String(rs.getString("managerid")))) + .companyStartDate(Util.null2String(rs.getString("companystartdate"))) + .createDate(Util.null2String(rs.getString("createdate"))) + .accumfundAccount(Util.null2String(rs.getString("accumfundaccount"))) + .accountId(Util.null2String(rs.getString("account"))) + .bankName(ResourceSnipUtils.selectBankName(Util.null2String(rs.getString("bankname")),bankField)) + .firstEnrollmentDate(Util.null2String(rs.getString("femdate"))) + .startdate(Util.null2String(rs.getString("startdate"))) + .endDate(Util.null2String(rs.getString("enddate"))) + .jobTitle(ResourceSnipUtils.selectJobName(Util.null2String(rs.getString("jobtitle")))) + .status(Util.null2String(rs.getString("status"))) + .educationlevel(ResourceSnipUtils.selectEducName(Util.null2String(rs.getString("educationlevel")))) + .mobile(Util.null2String(rs.getString("mobile"))) + .certificatenum(Util.null2String(rs.getString("certificatenum"))) + .nativeplace(Util.null2String(rs.getString("nativeplace"))) + .regresidentplace(Util.null2String(rs.getString("regresidentplace"))) + .build(); + historyResourceList.add(build); + } + + //todo 数据处理 + //3.花名册年月 选择 2024-09 查询数据 2024-9.30 之前所有入职人员 去掉离职日期是2024年9.01之前的数据(注意返聘情况) + + resultMap.put("data",historyResourceList); + + return resultMap; + } } diff --git a/src/com/engine/kqsolution/web/ResourceSnipAction.java b/src/com/engine/kqsolution/web/ResourceSnipAction.java index 0fbef47..581c3f2 100644 --- a/src/com/engine/kqsolution/web/ResourceSnipAction.java +++ b/src/com/engine/kqsolution/web/ResourceSnipAction.java @@ -73,4 +73,21 @@ public class ResourceSnipAction { response.setContentType("application/octet-stream"); return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); } + + @GET + @Path("/hrResource") + @Produces(MediaType.TEXT_PLAIN) + public String hrResource(@Context HttpServletRequest request, @Context HttpServletResponse response, + @QueryParam("companyStartDate") String companyStartDate){ + Map data = new HashMap<>(8); + try { + User user = HrmUserVarify.getUser(request, response); + data.put("datas",getService(user).hrResource(companyStartDate)); + data.put("api_status", true); + } catch (Exception e) { + data.put("api_status", false); + data.put("msg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect); + } } diff --git a/src/weaver/interfaces/kqsolution/crob/ResourceSnipCrob.java b/src/weaver/interfaces/kqsolution/crob/ResourceSnipCrob.java index 5a05c7a..2fa0540 100644 --- a/src/weaver/interfaces/kqsolution/crob/ResourceSnipCrob.java +++ b/src/weaver/interfaces/kqsolution/crob/ResourceSnipCrob.java @@ -40,7 +40,8 @@ public class ResourceSnipCrob extends BaseCronJob { "a.startdate,a.enddate,a.jobtitle,a.status,a.educationlevel,a.mobile,a.certificatenum,\n" + "a.nativeplace,b."+regresidentplace+" as regresidentplace from hrmresource a\n" + "left join cus_fielddata b on a.id = b.id and b.scopeid = 1\n" + - "left join cus_fielddata c on a.id = c.id and c.scopeid = -1"); + "left join cus_fielddata c on a.id = c.id and c.scopeid = -1\n" + + "where a.status < 4"); while (rs.next()) { HistoryResourcePO build = HistoryResourcePO.builder() @@ -61,7 +62,7 @@ public class ResourceSnipCrob extends BaseCronJob { .startdate(Util.null2String(rs.getString("startdate"))) .endDate(Util.null2String(rs.getString("enddate"))) .jobTitle(ResourceSnipUtils.selectJobName(Util.null2String(rs.getString("jobtitle")))) - .status(ResourceSnipUtils.selectStatusName(Util.null2String(rs.getString("status")))) + .status(Util.null2String(rs.getString("status"))) .educationlevel(ResourceSnipUtils.selectEducName(Util.null2String(rs.getString("educationlevel")))) .mobile(Util.null2String(rs.getString("mobile"))) .certificatenum(Util.null2String(rs.getString("certificatenum"))) @@ -98,18 +99,18 @@ public class ResourceSnipCrob extends BaseCronJob { for (HistoryResourcePO i : uList) { rs.executeUpdate("update uf_hmckz set gh = ?,xm = ?,csrq = ?,xb = ?,fb = ?,bm = ?,zjsj = ?,rzrq = ?,cjrq = ?,gjjzh = ?," + " gzzh = ?,gzyx = ?, sccbsj = ?,htksrq = ?,htjsrq = ?,gw = ?,zt = ?,xl = ?,dh = ?,sfzh = ?,jg = ?," + - " hkszd = ? where id = ? and cdrq = ?",i.getWorkcode(),i.getLastName(),i.getBirthday(), + " hkszd = ?, lzrq = ? where id = ? and cdrq = ?",i.getWorkcode(),i.getLastName(),i.getBirthday(), i.getSex(),i.getSubCompany(),i.getDepartment(), i.getManagerId(),i.getCompanyStartDate(),i.getCreateDate(),i.getAccumfundAccount(), i.getAccountId(),i.getBankName(),i.getFirstEnrollmentDate(),i.getStartdate(),i.getEndDate(),i.getJobTitle(),i.getStatus(),i.getEducationlevel(), - i.getMobile(),i.getCertificatenum(),i.getNativeplace(),i.getRegresidentplace(),i.getResourceId(),currentMonth); + i.getMobile(),i.getCertificatenum(),i.getNativeplace(),i.getRegresidentplace(),i.getChangeDate(),i.getResourceId(),currentMonth); } for (HistoryResourcePO i : iList) { - rs.executeUpdate("insert into uf_hmckz(ryid,gh,xm,csrq,xb,fb,bm,zjsj,rzrq,cjrq,gjjzh,gzzh,gzyx,sccbsj,htksrq,htjsrq,gw,zt,xl,dh,sfzh,jg,hkszd,cdrq,formmodeid,modedatacreatedate,modedatacreatetime) " + - " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",i.getResourceId(),i.getWorkcode(),i.getLastName(),i.getBirthday(), + rs.executeUpdate("insert into uf_hmckz(ryid,gh,xm,csrq,xb,fb,bm,zjsj,rzrq,cjrq,gjjzh,gzzh,gzyx,sccbsj,htksrq,htjsrq,gw,zt,xl,dh,sfzh,jg,hkszd,cdrq,lzrq,formmodeid,modedatacreatedate,modedatacreatetime) " + + " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",i.getResourceId(),i.getWorkcode(),i.getLastName(),i.getBirthday(), i.getSex(),i.getSubCompany(),i.getDepartment(), i.getManagerId(),i.getCompanyStartDate(),i.getCreateDate(),i.getAccumfundAccount(), i.getAccountId(),i.getBankName(),i.getFirstEnrollmentDate(),i.getStartdate(),i.getEndDate(),i.getJobTitle(),i.getStatus(),i.getEducationlevel(), - i.getMobile(),i.getCertificatenum(),i.getNativeplace(),i.getRegresidentplace(),currentMonth,modeId,currentDate,onlyCurrentTime); + i.getMobile(),i.getCertificatenum(),i.getNativeplace(),i.getRegresidentplace(),currentMonth,i.getChangeDate(),modeId,currentDate,onlyCurrentTime); } }