|
|
|
|
<%@ 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));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%>
|