<%@ 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 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> departEmployeeList = DbTools.getSqlToList(queryDepartEmployeeSql); Map departEmployeeMap = CommonUtil.getDepartEmployeeMap(departEmployeeList); String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource"; List> userList = DbTools.getSqlToList(queryUserSql); String updateSql = "delete from uf_jcl_kq_cqjg where ygid = ? and rq >= ? and rq <= ?"; for (Map 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> departEmployeeList = DbTools.getSqlToList(queryDepartEmployeeSql); Map departEmployeeMap = CommonUtil.getDepartEmployeeMap(departEmployeeList); String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where id in ("+userIds+")"; List> userList = DbTools.getSqlToList(queryUserSql); String updateSql = "delete from uf_jcl_kq_cqjg where ygid = ? and rq >= ? and rq <= ?"; for (Map 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)); } %>