<%@ page import="weaver.conn.RecordSet" %> <%@ page import="weaver.general.Util" %> <%@ page import="org.apache.commons.lang3.StringUtils" %> <%@ page import="com.alibaba.fastjson.JSONObject" %> <%@ page import="weaver.hrm.User" %> <%@ page import="weaver.hrm.HrmUserVarify" %> <%@ page import="com.alibaba.fastjson.JSONArray" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.time.LocalDate" %> <%@ page import="java.time.temporal.TemporalAdjusters" %> <%@ page import="java.time.DayOfWeek" %> <%@ page import="java.util.HashMap" %> <%@ page import="weaver.general.BaseBean" %> <%@ page import="com.engine.kq.biz.KQGroupMemberComInfo" %> <%@ page import="com.engine.kq.biz.KQGroupComInfo" %> <%@ page import="com.engine.kq.biz.KQGroupBiz" %> <%@ page import="weaver.common.DateUtil" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %> <% User user = HrmUserVarify.getUser(request, response); if(user==null) { response.sendRedirect("/login/Login.jsp"); return; } RecordSet rs = new RecordSet(); String serialids = request.getParameter("serialids"); String userid = request.getParameter("userid"); String pbyf = request.getParameter("pbyf"); String serdata = request.getParameter("serdata"); List restList = getSchedulingRestData(); String worktime = "0"; String totalworktime = "0"; if(StringUtils.isNotBlank(serialids)){ String sql = ""; String[] serialidArray = serialids.split(","); for(int i=0;i weekMap = queryWeekTypeByMonth(userid,pbyf); if(StringUtils.isNotBlank(serdata)){ JSONArray jsonArray = JSONArray.parseArray(serdata); for(int i=0;i <%=jsonObject.toJSONString() %> <%! public Map queryWeekTypeByMonth(String userid,String pbyf){ Map weekMap = new HashMap(); if(StringUtils.isNotBlank(pbyf) && pbyf.length() == 7) { LocalDate date = LocalDate.parse(pbyf + "-01"); // 获取当前日期 LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); // 获取本月最后一天 LocalDate startDayOfMonth = date.with(TemporalAdjusters.firstDayOfMonth()); // 获取本月最后一天 String monthStartDate = startDayOfMonth.toString(); String monthEndDate = lastDayOfMonth.toString(); Map holidayMap = getHolidayByGroupId(userid,monthStartDate,monthEndDate); int thisMonth = date.getMonthValue(); // 获取当前是哪月 int daysInMonth = date.lengthOfMonth(); // 获取本月有多少天 for (int i = 1; i <= daysInMonth; i++) { LocalDate currentDate = LocalDate.of(date.getYear(), thisMonth, i); System.out.println("currentDate:" + currentDate.toString()); DayOfWeek dayOfWeek = currentDate.getDayOfWeek(); System.out.println(i + "号是周 " + dayOfWeek.getValue()); int weekValue = dayOfWeek.getValue(); String changeType = "" ; if(holidayMap.containsKey(currentDate.toString())){ changeType = holidayMap.get(currentDate.toString()); } if("1".equals(changeType) || "3".equals(changeType)){ weekValue = 11; } if(StringUtils.isNotBlank(changeType)){ weekMap.put(currentDate.toString(), weekValue+""); }else{ weekMap.put(currentDate.toString(), weekValue+""); } } } return weekMap; } public Map getHolidayByGroupId(String userid,String monthStartDate,String monthEndDate){ Map holidayMap = new HashMap(); BaseBean bb = new BaseBean(); RecordSet rs = new RecordSet(); try { if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(monthStartDate) && StringUtils.isNotBlank(monthEndDate)){ String activeGroupId = getUserActiveGroupId(userid); bb.writeLog("activeGroupId:"+activeGroupId); if(StringUtils.isNotBlank(activeGroupId)){ String sql =" select holidayDate,changeType from KQ_HolidaySet\n" + " where groupid = " + activeGroupId+ " and holidayDate >='"+monthStartDate+"'\n" + " and holidayDate <='"+monthEndDate+"' " ; rs.execute(sql); while (rs.next()){ String holidayDate = Util.null2String(rs.getString("holidayDate")); String changeType = Util.null2String(rs.getString("changeType")); holidayMap.put(holidayDate,changeType); } } } }catch (Exception e){ } return holidayMap; } /*** * * @param userid * @return */ public String getUserActiveGroupId(String userid){ BaseBean bb = new BaseBean(); KQGroupMemberComInfo kqGroupMemberComInfo = null; KQGroupComInfo kqGroupComInfo = null ; String activeGroupId = ""; try{ kqGroupMemberComInfo = new KQGroupMemberComInfo(); kqGroupComInfo = new KQGroupComInfo(); Map> groupMemberMap = getUserGroup(); String activeGroup = ""; if(groupMemberMap.containsKey(userid)){ List groupIds = groupMemberMap.get(userid); bb.writeLog("groupIds:"+groupIds.size()); for(String i : groupIds){ String isDelete = kqGroupComInfo.getIsdelete(i); if(!"1".equals(isDelete)) { String currentGroupId = Util.null2String(kqGroupMemberComInfo.getKQGroupId(userid, DateUtil.getCurrentDate())); if (i.equals(currentGroupId)) { activeGroupId = i; } } } } }catch (Exception e){ e.printStackTrace(); bb.writeLog(e); } return activeGroupId; } /*** * * @return */ public Map> getUserGroup(){ BaseBean bb = new BaseBean(); Map> groupMemberMap = new HashMap<>(); RecordSet rs = new RecordSet(); String viewScope = "3"; try { KQGroupBiz kqGroupBiz = new KQGroupBiz(); Map groupParams = new HashMap(); if("3".equals(viewScope)){ groupParams.put("isNoAccount", "1"); } rs.executeQuery(kqGroupBiz.getGroupMemberSql(groupParams)); while (rs.next()) { String id = rs.getString("resourceid"); String gid = rs.getString("groupid"); if (!groupMemberMap.containsKey(id)) groupMemberMap.put(id, new ArrayList<>()); groupMemberMap.get(id).add(gid); } } catch (Exception e) { } return groupMemberMap; } public List getSchedulingRestData(){ List list = new ArrayList(); RecordSet rs = new RecordSet(); try{ String sql =" select id " + " from kq_ShiftManagement \n" + " where is_rest = 1 \n" + " and (isdelete is null or isdelete = 0) "; rs.executeQuery(sql); while (rs.next()){ String id = Util.null2String(rs.getString("id")); list.add(id); } }catch (Exception e){ } return list; } %>