You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
6.5 KiB
Plaintext

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="com.engine.jucailinkq.common.util.ExtensionClassHolder" %>
<%@ page import="com.engine.jucailinkq.common.util.CommonUtil" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.List" %>
<%@ page import="com.engine.jucailinkq.common.util.DbTools" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ page import="com.alibaba.fastjson.JSON" %>
<%@ page import="com.google.common.collect.Maps" %>
<%@ page import="java.util.Date" %>
<%@ page import="com.engine.jucailinkq.common.util.DateUtil" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%
String startDate = Util.null2String(request.getParameter("startDate"));
String endDate = Util.null2String(request.getParameter("endDate"));
String userIds = Util.null2String(request.getParameter("userIds"));
BaseBean baseBean = new BaseBean();
Map<String,Object> resultMap = Maps.newHashMap();
try {
CommonUtil.initExtensionClassHolder();
//入职离职当天是否需要进行考勤分析。0入职离职当天均分析、1入职离职当天不分析
String leaveAndEntry = Util.null2String(ExtensionClassHolder.getGlobalSetMap().get("leaveAndEntry"));
if (userIds.equals("")){
String queryDepartEmployeeSql = "select resourceid ,changedate,type_n from HRMSTATUSHISTORY where (type_n = 5 or type_n = 7)";
//获取离职日期
List<Map<String,Object>> departEmployeeList = DbTools.getSqlToList(queryDepartEmployeeSql);
Map<String,Object> departEmployeeMap = CommonUtil.getDepartEmployeeMap(departEmployeeList);
String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
String updateSql = "delete from uf_jcl_kq_cqjg where ygid = ? and rq >= ? and rq <= ?";
for (Map<String,Object> userMap :userList){
String companystartdate = Util.null2String(userMap.get("companystartdate"));
String terminationDate = Util.null2String(departEmployeeMap.get(userMap.get("id")));
String user = Util.null2String(userMap.get("id"));
if (!"".equals(companystartdate) && DateUtil.getTime(companystartdate).compareTo(DateUtil.getTime(endDate))<=0 &&
DateUtil.getTime(companystartdate).compareTo(DateUtil.getTime(startDate))>=0){
if ("1".equals(leaveAndEntry)){
DbTools.update(updateSql,user,startDate,companystartdate);
}else {
String beforeCompanystartdateDay = DateUtil.beforeDay(companystartdate,1);
if (DateUtil.getTime(beforeCompanystartdateDay).compareTo(DateUtil.getTime(startDate))>=0){
DbTools.update(updateSql,user,startDate,beforeCompanystartdateDay);
}
}
}
if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(endDate))<=0 &&
DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(startDate))>=0){
if ("1".equals(leaveAndEntry)){
DbTools.update(updateSql,user,terminationDate,endDate);
}else {
String AfterDay = DateUtil.AfterDay(terminationDate,1);
if (DateUtil.getTime(AfterDay).compareTo(DateUtil.getTime(endDate))<=0){
DbTools.update(updateSql,user,AfterDay,endDate);
}
}
}
}
}else {
String queryDepartEmployeeSql = "select resourceid ,changedate,type_n from HRMSTATUSHISTORY where resourceid in ("+userIds+") and (type_n = 5 or type_n = 7)";
//获取离职日期
List<Map<String,Object>> departEmployeeList = DbTools.getSqlToList(queryDepartEmployeeSql);
Map<String,Object> departEmployeeMap = CommonUtil.getDepartEmployeeMap(departEmployeeList);
String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where id in ("+userIds+")";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
String updateSql = "delete from uf_jcl_kq_cqjg where ygid = ? and rq >= ? and rq <= ?";
for (Map<String,Object> userMap :userList){
String companystartdate = Util.null2String(userMap.get("companystartdate"));
String terminationDate = Util.null2String(departEmployeeMap.get(userMap.get("id")));
String user = Util.null2String(userMap.get("id"));
if (!"".equals(companystartdate) && DateUtil.getTime(companystartdate).compareTo(DateUtil.getTime(endDate))<=0 &&
DateUtil.getTime(companystartdate).compareTo(DateUtil.getTime(startDate))>=0){
if ("1".equals(leaveAndEntry)){
DbTools.update(updateSql,user,startDate,companystartdate);
}else {
String beforeCompanystartdateDay = DateUtil.beforeDay(companystartdate,1);
if (DateUtil.getTime(beforeCompanystartdateDay).compareTo(DateUtil.getTime(startDate))>=0){
DbTools.update(updateSql,user,startDate,beforeCompanystartdateDay);
}
}
}
if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(endDate))<=0 &&
DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(startDate))>=0){
if ("1".equals(leaveAndEntry)){
DbTools.update(updateSql,user,terminationDate,endDate);
}else {
String AfterDay = DateUtil.AfterDay(terminationDate,1);
if (DateUtil.getTime(AfterDay).compareTo(DateUtil.getTime(endDate))<=0){
DbTools.update(updateSql,user,AfterDay,endDate);
}
}
}
}
}
resultMap.put("code","200");
out.println(JSON.toJSONString(resultMap));
}catch (Exception e){
baseBean.writeLog(e);
resultMap.put("code","500");
resultMap.put("error",e);
out.println(JSON.toJSONString(resultMap));
}
%>