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.

127 lines
7.3 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<%@ 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 ";
//获取离职日期
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);
}
}
}else if (!"".equals(companystartdate) && DateUtil.getTime(companystartdate).compareTo(DateUtil.getTime(endDate))>0){
DbTools.update(updateSql,user,startDate,endDate);
}
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 if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(startDate))<0 ){
DbTools.update(updateSql,user,startDate,endDate);
}
}
}else {
String queryDepartEmployeeSql = "select resourceid ,changedate,type_n from HRMSTATUSHISTORY where resourceid in ("+userIds+")";
//获取离职日期
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);
}
}
}else if (!"".equals(companystartdate) && DateUtil.getTime(companystartdate).compareTo(DateUtil.getTime(endDate))>0){
DbTools.update(updateSql,user,startDate,endDate);
}
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 if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(startDate))<0 ){
DbTools.update(updateSql,user,startDate,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));
}
%>