东方骏驰花名册快照修复功能

东方骏驰
Chengliang 9 months ago
parent a029071999
commit 05d0a85816

@ -63,6 +63,7 @@ public class HistoryResourcePO {
private String regresidentplace; private String regresidentplace;
private String changeDate;
} }

@ -32,4 +32,13 @@ public interface ResourceSnipService {
* @return * @return
*/ */
XSSFWorkbook snipshotExport(HttpServletRequest request, HttpServletResponse response, String monthDate, String companyStartDate); 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<java.lang.String,java.lang.Object>
*/
Map<String,Object> hrResource(String companyStartDate);
} }

@ -8,10 +8,12 @@ import com.cloudstore.eccom.pc.table.WeaTable;
import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.cloudstore.eccom.pc.table.WeaTableType; import com.cloudstore.eccom.pc.table.WeaTableType;
import com.engine.core.impl.Service; import com.engine.core.impl.Service;
import com.engine.kqsolution.entity.HistoryResourcePO;
import com.engine.kqsolution.service.ResourceSnipService; import com.engine.kqsolution.service.ResourceSnipService;
import com.engine.kqsolution.util.ExcelUtil; import com.engine.kqsolution.util.ExcelUtil;
import com.engine.kqsolution.util.ResourceSnipUtils; import com.engine.kqsolution.util.ResourceSnipUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import weaver.conn.RecordSet;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import weaver.general.PageIdConst; import weaver.general.PageIdConst;
import com.cloudstore.eccom.result.WeaResultMsg; import com.cloudstore.eccom.result.WeaResultMsg;
@ -53,10 +55,10 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ
table.setBackfields(fields); table.setBackfields(fields);
String fromSql = " from hrmresource a\n" + 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 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); table.setSqlform(fromSql);
if (!"".equals(companyStartDate)){ if (!"".equals(companyStartDate)){
String sqlWhere = " where 1=1 and a.companystartdate <= '"+companyStartDate+"'"; String sqlWhere = " where 1=1 and a.status < 4 ";
table.setSqlwhere(sqlWhere); table.setSqlwhere(sqlWhere);
} }
@ -101,11 +103,11 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ
String pageSize = PageIdConst.getPageSize(pageId, user.getUID()); String pageSize = PageIdConst.getPageSize(pageId, user.getUID());
table.setPagesize(pageSize); 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," + 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); table.setBackfields(fields);
String fromSql = " from uf_hmckz t"; String fromSql = " from uf_hmckz t";
table.setSqlform(fromSql); 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.setSqlwhere(sqlWhere);
table.setSqlprimarykey("id"); table.setSqlprimarykey("id");
table.getColumns().add(new WeaTableColumn("id").setDisplay(WeaBoolAttr.FALSE)); 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%", "合同开始日期", "htksrq").setDisplay(WeaBoolAttr.FALSE));
table.getColumns().add(new WeaTableColumn("10%", "合同结束日期", "htjsrq").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%", "岗位", "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%", "学历", "xl").setDisplay(WeaBoolAttr.FALSE));
table.getColumns().add(new WeaTableColumn("10%", "电话", "dh").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%", "身份证号", "sfzh").setDisplay(WeaBoolAttr.FALSE));
table.getColumns().add(new WeaTableColumn("10%", "籍贯", "jg").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%", "户口所在地", "hkszd").setDisplay(WeaBoolAttr.FALSE));
table.getColumns().add(new WeaTableColumn("10%", "离职日期", "lzrq").setDisplay(WeaBoolAttr.FALSE));
table.setTableType(WeaTableType.NONE); table.setTableType(WeaTableType.NONE);
WeaResultMsg result = new WeaResultMsg(false); WeaResultMsg result = new WeaResultMsg(false);
@ -149,7 +152,7 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ
//全字段导出 //全字段导出
List<Object> headerList = Arrays.asList("编号","姓名","出生日期","性别","分部","部门","直接上级","入职日期","创建日期","公积金账户","工资账户","工资银行","首次参保时间", List<Object> headerList = Arrays.asList("编号","姓名","出生日期","性别","分部","部门","直接上级","入职日期","创建日期","公积金账户","工资账户","工资银行","首次参保时间",
"合同开始日期","合同结束日期","岗位","状态","学历","电话","身份证号","籍贯","户口所在地"); "合同开始日期","合同结束日期","岗位","状态","学历","电话","身份证号","籍贯","户口所在地","离职日期");
Map<String, Object> map = resourceSnip(monthDate, companyStartDate); Map<String, Object> 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("certificatenumspan") : snip.get("sfzh"));
row.add(table ? snip.get("nativeplacespan") : snip.get("jg")); row.add(table ? snip.get("nativeplacespan") : snip.get("jg"));
row.add(table ? snip.get("regresidentplacespan") : snip.get("hkszd")); row.add(table ? snip.get("regresidentplacespan") : snip.get("hkszd"));
row.add(table ? snip.get("changedate") : snip.get("lzrq"));
rows.add(row); rows.add(row);
} }
@ -200,4 +204,62 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ
return ExcelUtil.genWorkbookV2(excelSheetData, sheetName); return ExcelUtil.genWorkbookV2(excelSheetData, sheetName);
} }
@Override
public Map<String, Object> hrResource(String companyStartDate) {
Map<String, Object> 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<HistoryResourcePO> 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;
}
} }

@ -73,4 +73,21 @@ public class ResourceSnipAction {
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); 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<String, Object> 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);
}
} }

@ -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.startdate,a.enddate,a.jobtitle,a.status,a.educationlevel,a.mobile,a.certificatenum,\n" +
"a.nativeplace,b."+regresidentplace+" as regresidentplace from hrmresource a\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 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()) { while (rs.next()) {
HistoryResourcePO build = HistoryResourcePO.builder() HistoryResourcePO build = HistoryResourcePO.builder()
@ -61,7 +62,7 @@ public class ResourceSnipCrob extends BaseCronJob {
.startdate(Util.null2String(rs.getString("startdate"))) .startdate(Util.null2String(rs.getString("startdate")))
.endDate(Util.null2String(rs.getString("enddate"))) .endDate(Util.null2String(rs.getString("enddate")))
.jobTitle(ResourceSnipUtils.selectJobName(Util.null2String(rs.getString("jobtitle")))) .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")))) .educationlevel(ResourceSnipUtils.selectEducName(Util.null2String(rs.getString("educationlevel"))))
.mobile(Util.null2String(rs.getString("mobile"))) .mobile(Util.null2String(rs.getString("mobile")))
.certificatenum(Util.null2String(rs.getString("certificatenum"))) .certificatenum(Util.null2String(rs.getString("certificatenum")))
@ -98,18 +99,18 @@ public class ResourceSnipCrob extends BaseCronJob {
for (HistoryResourcePO i : uList) { for (HistoryResourcePO i : uList) {
rs.executeUpdate("update uf_hmckz set gh = ?,xm = ?,csrq = ?,xb = ?,fb = ?,bm = ?,zjsj = ?,rzrq = ?,cjrq = ?,gjjzh = ?," + 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 = ?," + " 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.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.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) { 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) " + 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(), " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",i.getResourceId(),i.getWorkcode(),i.getLastName(),i.getBirthday(),
i.getSex(),i.getSubCompany(),i.getDepartment(), i.getManagerId(),i.getCompanyStartDate(),i.getCreateDate(),i.getAccumfundAccount(), 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.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);
} }
} }

Loading…
Cancel
Save