<%@ 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.common.DateUtil" %> <%@ page import="weaver.hrm.User" %> <%@ page import="weaver.hrm.HrmUserVarify" %> <%@ page import="weaver.general.BaseBean" %> <%@ page import="com.alibaba.fastjson.JSONArray" %> <%@ page import="com.engine.kq.biz.KQGroupMemberComInfo" %> <%@ page import="com.engine.kq.biz.KQGroupComInfo" %> <%@ page import="com.engine.kq.biz.KQGroupBiz" %> <%@ page import="java.time.LocalDate" %> <%@ page import="java.time.format.DateTimeFormatter" %> <%@ page import="java.time.DayOfWeek" %> <%@ page import="java.time.temporal.TemporalAdjusters" %> <%@ page import="java.util.*" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %> <% String[] workSchedule = {"09:00-11:00","11:00-16:00","16:00-20:00","20:00-21:30"}; User user = HrmUserVarify.getUser(request, response); if(user==null) { response.sendRedirect("/login/Login.jsp"); return; } int userid = user.getUID(); BaseBean bb = new BaseBean(); RecordSet rs = new RecordSet(); String pbdata = request.getParameter("pbdata"); // if(StringUtils.isBlank(pb)){ // // JSONArray jsonArray = new JSONArray(); // JSONObject userObject = new JSONObject(); // userObject.put("userid","3039"); // userObject.put("serialid","10"); // jsonArray.add(userObject); // // userObject = new JSONObject(); // userObject.put("userid","3373"); // userObject.put("serialid","7"); // jsonArray.add(userObject); // // userObject = new JSONObject(); // userObject.put("userid","3661"); // userObject.put("serialid","9"); // jsonArray.add(userObject); // pb = jsonArray.toJSONString(); // } String yjl = request.getParameter("yjl"); String pbrq = request.getParameter("pbrq"); String dateType = "0"; if(StringUtils.isNotBlank(pbrq)){ dateType = getWeekTypeByDate(pbrq,userid+""); } Map defaultScheduleMap = new HashMap(); if(StringUtils.isNotBlank(yjl)){ String sql = " select dysjd,pzrs from uf_pbjcsj where yjl = ? and pblx = ?" ; rs.executeQuery(sql,new Object[]{yjl,dateType}); while (rs.next()){ int dysd = Util.getIntValue(Util.null2String(rs.getString("dysjd"))); int pzrs = Util.getIntValue(Util.null2String(rs.getString("pzrs"))); String sjd = ""; if(dysd < workSchedule.length){ sjd = workSchedule[dysd]; if(StringUtils.isNotBlank(sjd)){ defaultScheduleMap.put(sjd,pzrs); } } } } List> workScheduleList = new ArrayList>(); Map workScheduleMap = null; for(int k=0;k0){ String[] schedule = workSchedule[k].split("-"); String scheduleStartTime = schedule[0]; String scheduleEndTime = schedule[1]; if(StringUtils.isNotBlank(scheduleStartTime) && StringUtils.isNotBlank(scheduleEndTime)){ workScheduleMap = new HashMap(); workScheduleMap.put("start",scheduleStartTime); workScheduleMap.put("end",scheduleEndTime); workScheduleList.add(workScheduleMap); } } } Map> userScheduleDayMap = new HashMap>(); Map userScheduleMap = new HashMap(); Map necessaryMap = new HashMap(); if(StringUtils.isNotBlank(pbdata)) { JSONArray jsonArray = JSONArray.parseArray(pbdata); String yxrys = "" ; for(int i = 0;i"); List userList = new ArrayList(); String sql =" select h.id \n" + " from hrmresource h \n" + " inner join hrmjobtitles k on k.id = h.jobtitle\n" + " where h.id in("+yxrys+")\n" + " and k.jobtitlename in('店长','验光师')\n" + " and h.status in(0,1,2,3,4)\n" + " union \n" + " select h.id \n" + " from hrmresource h \n" + " inner join cus_fielddata k on k.id = h.id\n" + " where k.field39 = 2 \n" + " and k.scopeid=3 \n" + " and k.scope='HrmCustomFieldByInfoType' " + " and h.id in("+yxrys+") and h.status in(0,1,2,3,4) " + " union " + " select h.id\n" + " from hrmresource h \n" + " inner join cus_fielddata k on k.id = h.id \n" + " where k.scopeid=-1 " + " and k.scope='HrmCustomFieldByInfoType'\n" + " and substring(k.field1,charindex('_',k.field1)+1,len(k.field1)) in(select id from uf_gwjbsjb where jbmc in('配镜三级','配镜四级','配镜五级')) and charindex('_', k.field1) > 0 \n" + " and h.status in(0,1,2,3,4) "+ " and h.id in("+yxrys+") "; out.println("sql:"+sql+"
"); rs.executeQuery(sql); while (rs.next()){ String id = Util.null2String(rs.getString("id")); out.println("id:"+id+"
"); userList.add(id); } for(int i = 0;i userSchedule_Map = new HashMap(); if(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)){ userSchedule_Map.put("startTime",startTime); userSchedule_Map.put("endTime",endTime); for(int k=0;k workSchedule_Map = workScheduleList.get(k); String scheduleStartTime = workSchedule_Map.get("start"); String scheduleEndTime = workSchedule_Map.get("end"); if(StringUtils.isNotBlank(scheduleStartTime) && StringUtils.isNotBlank(scheduleEndTime)){ if(startTime.compareTo(scheduleStartTime) <=0 && endTime.compareTo(scheduleEndTime) >=0){ String defWorkSchedule = scheduleStartTime+"-"+scheduleEndTime ; if(userScheduleMap.containsKey(defWorkSchedule)){ int count = userScheduleMap.get(defWorkSchedule); count++; userScheduleMap.put(defWorkSchedule,count); }else{ userScheduleMap.put(defWorkSchedule,1); } if(userList.contains(pbry)){ necessaryMap.put(defWorkSchedule,1); } } } } } userScheduleDayMap.put(pbry,userSchedule_Map); } } int defaultcount = 0; int datacount = 0; Iterator> iterator = defaultScheduleMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = iterator.next(); int value =entry.getValue(); String key = entry.getKey(); if(userScheduleMap.containsKey(key)){ int useValue = userScheduleMap.get(key); if(useValue < value){ datacount++; } }else{ datacount++; } defaultcount++; } out.println("necessaryMap:"+necessaryMap.size()); JSONObject jsonObject = new JSONObject(); if(defaultcount >0 && datacount == 0){ if(necessaryMap.size() == 4){ jsonObject.put("pbcode","1"); }else{ jsonObject.put("pbcode","2"); } }else{ jsonObject.put("pbcode","0"); } jsonObject.put("pbinfo",userScheduleDayMap); %> <%=jsonObject.toJSONString() %> <%! public String getWeekTypeByDate(String pbrq,String userid){ String dateType = "0"; DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate currentDate = LocalDate.parse(pbrq, df); DayOfWeek dayOfWeek = currentDate.getDayOfWeek(); int weekValue = dayOfWeek.getValue(); LocalDate lastDayOfMonth = currentDate.with(TemporalAdjusters.lastDayOfMonth()); // 获取本月最后一天 LocalDate startDayOfMonth = currentDate.with(TemporalAdjusters.firstDayOfMonth()); // 获取本月最后一天 String monthStartDate = startDayOfMonth.toString(); String monthEndDate = lastDayOfMonth.toString(); Map holidayMap = getHolidayByGroupId(userid,monthStartDate,monthEndDate); String changeType = "" ; if(holidayMap.containsKey(currentDate.toString())){ changeType = holidayMap.get(currentDate.toString()); } if("1".equals(changeType) || "3".equals(changeType)){ dateType = "1"; }else if(weekValue == 6 || weekValue == 7){ dateType = "1"; } return dateType; } /*** * * @param userid * @param monthStartDate * @param monthEndDate * @return */ 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")); // String changeTypename = "" ; // if("1".equals(changeType)){ //1-公众假日 2-调配工作日 3-调配休息日 // changeTypename += "公众假日"; // }else if("2".equals(changeType)){ // changeTypename += "调配工作日"; // }else if("3".equals(changeType)){ // changeTypename += "调配休息日"; // } holidayMap.put(holidayDate,changeType); // if(weekMap.containsKey(holidayDate)){ // String holidayDate_new = weekMap.get(holidayDate); // if("1".equals(changeType)){ //1-公众假日 2-调配工作日 3-调配休息日 // holidayDate_new += "[公众假日]"; // }else if("1".equals(changeType)){ // holidayDate_new += "[调配工作日]"; // }else if("2".equals(changeType)){ // holidayDate_new += "[调配休息日]"; // } // weekMap.put(holidayDate,holidayDate_new); // } } } } }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; } %>