首页 > 代码库 > 排班管理
排班管理
首先是action类型
1 package com.honghailt.dataextracter.web; 2 3 import java.util.ArrayList; 4 import java.util.Date; 5 import java.util.LinkedHashMap; 6 import java.util.List; 7 import java.util.Map; 8 9 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.stereotype.Controller; 11 import org.springframework.ui.ModelMap; 12 import org.springframework.web.bind.annotation.RequestMapping; 13 import org.springframework.web.bind.annotation.ResponseBody; 14 15 import com.honghailt.dataextracter.model.OrderQuery; 16 import com.honghailt.dataextracter.model.TbfwScheduling; 17 import com.honghailt.dataextracter.model.TbfwSchedulingPerson; 18 import com.honghailt.dataextracter.model.User; 19 import com.honghailt.dataextracter.service.TbfwSchedulingService; 20 import com.honghailt.dataextracter.service.UserService; 21 import com.honghailt.dataextracter.utils.CalendarUtil; 22 23 @Controller 24 public class TbfwSchedulingController { 25 @Autowired 26 private TbfwSchedulingService schedulingService; 27 @Autowired 28 private UserService userService; 29 30 /** 31 * 显示排班 一次显示一个月 32 * @param dept 33 * @param chaxunDate 34 * @param order 35 * @param modelMap 36 * @return 37 */ 38 @RequestMapping("/showTbfwScheduling") 39 public String showTbfwScheduling( Date chaxunDate,OrderQuery order, ModelMap modelMap){ 40 //查询日期,默认为当前时间sad 41 if(chaxunDate == null){ 42 chaxunDate = new Date(); 43 } 44 //部门,默认为软件售后部 45 if(order == null || order.getNick()==null){ 46 order.setNick("二组"); 47 } 48 List<String> depts = new ArrayList<String>(); 49 depts.add("一组"); 50 depts.add("二组"); 51 modelMap.put("depts", depts); 52 //上班类型 53 List<String> types = new ArrayList<String>(); 54 types.add("值班"); 55 types.add("休班"); 56 modelMap.put("types", types); 57 //一个月所有周日期放里面 58 Map<String,List<String>> weekMap = new LinkedHashMap<String, List<String>>(); 59 int a=CalendarUtil.getWeekyofMonth(chaxunDate);//一共几周 60 chaxunDate =CalendarUtil.DateToDate(chaxunDate); 61 for(int i=0;i<=a;i++){ 62 String ds=CalendarUtil.getDanShuangWeek(CalendarUtil.getDayOfMonth(chaxunDate, i*7)); 63 weekMap.put(i+" "+ds, CalendarUtil.getWeeksOfMonth(chaxunDate, i)); 64 } 65 modelMap.put("week",weekMap); 66 order.setBegintime(chaxunDate); 67 Map<String,List<TbfwScheduling>> maps= schedulingService.getPersonMonth(order); 68 modelMap.put("weekChina", CalendarUtil.getWeekName()); 69 modelMap.put("maps", maps); 70 modelMap.put("order", order); 71 modelMap.put("chaxunDate", chaxunDate); 72 return "/TbfwScheduling/TbfwScheduling"; 73 } 74 /** 75 * 修改添加排班 76 * @param chaxunDate 77 * @param order 78 * @param modelMap 79 * @return 80 */ 81 @RequestMapping("/editTbfwScheduling") 82 public String editTbfwScheduling( Date chaxunDate,OrderQuery order, ModelMap modelMap){ 83 //查询日期,默认为当前时间 84 if(chaxunDate == null){ 85 chaxunDate = new Date(); 86 } 87 //部门,默认为软件售后部 88 if(order == null || order.getNick()==null){ 89 order.setNick("二组"); 90 } 91 List<String> depts = new ArrayList<String>(); 92 depts.add("一组"); 93 depts.add("二组"); 94 modelMap.put("depts", depts); 95 //上班类型 96 List<String> types = new ArrayList<String>(); 97 types.add("值班"); 98 types.add("休班"); 99 modelMap.put("types", types);100 //一个月所有周日期放里面101 Map<String,List<String>> weekMap = new LinkedHashMap<String, List<String>>();102 int a=CalendarUtil.getWeekyofMonth(chaxunDate);//一共几周103 chaxunDate =CalendarUtil.DateToDate(chaxunDate);104 for(int i=0;i<=a;i++){105 String ds=CalendarUtil.getDanShuangWeek(CalendarUtil.getDayOfMonth(chaxunDate, i*7));106 weekMap.put(i+" "+ds, CalendarUtil.getWeeksOfMonth(chaxunDate, i));107 }108 modelMap.put("week",weekMap);109 order.setBegintime(chaxunDate);110 Map<String,List<TbfwScheduling>> maps= schedulingService.getPersonMonth(order);111 modelMap.put("weekChina", CalendarUtil.getWeekName());112 modelMap.put("maps", maps);113 modelMap.put("order", order);114 modelMap.put("chaxunDate", chaxunDate);115 return "/TbfwScheduling/TbfwSchedulingEdit";116 }117 /**118 * 显示人员列表119 * @param tbfwScheduling120 * @param modelMap121 * @return122 */123 @RequestMapping("/queryTbfwScheduling")124 public String queryTbfwScheduling(TbfwScheduling tbfwScheduling,ModelMap modelMap){125 List<User> userList =userService.getUserListByDept(tbfwScheduling);126 List<TbfwSchedulingPerson> personList=schedulingService.getPersonByDate(tbfwScheduling);127 modelMap.put("userList", userList);128 modelMap.put("personList", personList);129 return "/TbfwScheduling/TbfwSchedulingPersonList";130 }131 132 /**133 * 更新数据库134 * @param tbfwScheduling135 * @return136 */137 @RequestMapping("/updateTbfwScheduling")138 @ResponseBody139 public String updateTbfwScheduling(TbfwScheduling tbfwScheduling){140 String msg=null;141 schedulingService.saveTbfwScheduling(tbfwScheduling);142 msg = "success";143 return msg;144 }145 /**146 * 自动排班147 * @param tbfwScheduling148 * @return149 */150 @RequestMapping("/autoTbfwScheduling")151 @ResponseBody152 public String autoTbfwScheduling(TbfwScheduling tbfwScheduling){153 String msg=null;154 schedulingService.autoTbfwScheduling(tbfwScheduling);155 msg = "success";156 return msg;157 }158 /**159 * 2014-07-18 23:35:10160 * 首先把人名列出来,根据班组161 * 然后分排班还是休班162 * 先根据时间和班组把人查询出来163 * 然后循环list164 * 小A,时间,一组,排班 数量165 * @param order166 * @param modelMap167 * @return168 */169 @RequestMapping("/statisticsTbfwScheduling")170 public String statisticsTbfwScheduling(TbfwScheduling tbfwScheduling, ModelMap modelMap){171 if(tbfwScheduling == null || tbfwScheduling.getBeginTime()== null){172 tbfwScheduling.setBeginTime(CalendarUtil.getFirstDayOfMonth(new Date()));173 tbfwScheduling.setEndTime(CalendarUtil.getDateOfLastDayOfMonth(new Date()));174 }175 System.out.println("aaa");176 //部门,默认为软件售后部177 if(tbfwScheduling == null || tbfwScheduling.getDept() == null){178 tbfwScheduling.setDept("二组");179 }180 List<String> depts = new ArrayList<String>();181 depts.add("一组");182 depts.add("二组");183 modelMap.put("depts", depts);184 185 List<User> userList =userService.getUserListByDept(tbfwScheduling);186 List<String> types = new ArrayList<String>();187 types.add("休班");188 types.add("值班");189 List<TbfwSchedulingPerson> personList =schedulingService.statisticsTbfwScheduling(tbfwScheduling);190 modelMap.put("types", types);191 modelMap.put("personList", personList);192 modelMap.put("userList", userList);193 // modelMap.put("tbfwScheduling", tbfwScheduling);194 return "/TbfwScheduling/TbfwSchedulingStatistics";195 }196 }
然后是service类
1 package com.honghailt.dataextracter.service; 2 3 import java.util.ArrayList; 4 import java.util.Date; 5 import java.util.HashMap; 6 import java.util.List; 7 import java.util.Map; 8 9 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.stereotype.Service; 11 12 import com.honghailt.dataextracter.mappers.ds1.TbfwSchedulingMapper; 13 import com.honghailt.dataextracter.mappers.ds1.TbfwSchedulingPersonMapper; 14 import com.honghailt.dataextracter.model.OrderQuery; 15 import com.honghailt.dataextracter.model.TbfwScheduling; 16 import com.honghailt.dataextracter.model.TbfwSchedulingPerson; 17 import com.honghailt.dataextracter.model.User; 18 import com.honghailt.dataextracter.utils.CalendarUtil; 19 20 @Service 21 public class TbfwSchedulingService { 22 23 @Autowired 24 private TbfwSchedulingMapper mapper; 25 @Autowired 26 private TbfwSchedulingPersonMapper personMapper; 27 @Autowired 28 private UserService userService; 29 30 public Map<String, List<TbfwScheduling>> getPerson(OrderQuery order) { 31 if(order.getBegintime()!=null){ 32 Date week1= CalendarUtil.getNowWeekBeginDate(order.getBegintime(),0); 33 Date week2 =CalendarUtil.getNowWeekBeginDate(order.getBegintime(),6); 34 order.setBegintime(week1); 35 order.setEndtime(week2); 36 } 37 Map<String, List<TbfwScheduling>> map = new HashMap<String, List<TbfwScheduling>>();// 38 List<TbfwScheduling> listZhiBan = new ArrayList<TbfwScheduling>(); 39 List<TbfwScheduling> listXiuBan = new ArrayList<TbfwScheduling>(); 40 List<TbfwScheduling> list =mapper.getTbfwSchedulingList(order); 41 for (TbfwScheduling tbfwScheduling : list) { 42 if(tbfwScheduling.getType().equals("值班")){ 43 List<TbfwSchedulingPerson> schedulingPersonList= personMapper.getTbfwSchedulingPersonList(tbfwScheduling); 44 tbfwScheduling.setSchedulingPersonList(schedulingPersonList); 45 listZhiBan.add(tbfwScheduling); 46 } 47 if(tbfwScheduling.getType().equals("休班")){ 48 List<TbfwSchedulingPerson> schedulingPersonList= personMapper.getTbfwSchedulingPersonList(tbfwScheduling); 49 tbfwScheduling.setSchedulingPersonList(schedulingPersonList); 50 listXiuBan.add(tbfwScheduling); 51 } 52 } 53 map.put("值班", listZhiBan); 54 map.put("休班", listXiuBan); 55 // // TODO Auto-generated method stub 56 return map; 57 } 58 59 public Map<String, List<TbfwScheduling>> getPersonMonth(OrderQuery order) { 60 if(order.getBegintime()!=null){ 61 //先获得查询日所在月的第一天所在周的星期一 和所在月的最后一天所在周的星期天 62 Date week1= CalendarUtil.getNowWeekBeginDate(CalendarUtil.getFirstDayOfMonth(order.getBegintime()),0); 63 Date week2 =CalendarUtil.getNowWeekBeginDate(CalendarUtil.getDateOfLastDayOfMonth(order.getBegintime()),6); 64 order.setBegintime(week1); 65 order.setEndtime(week2); 66 } 67 Map<String, List<TbfwScheduling>> map = new HashMap<String, List<TbfwScheduling>>();//值班和休班所有TbfwScheduling 68 List<TbfwScheduling> listZhiBan = new ArrayList<TbfwScheduling>(); 69 List<TbfwScheduling> listXiuBan = new ArrayList<TbfwScheduling>(); 70 List<TbfwScheduling> list =mapper.getTbfwSchedulingList(order);//查询出所有 71 for (TbfwScheduling tbfwScheduling : list) { 72 if(tbfwScheduling.getType().equals("值班")){//如果是值班 73 List<TbfwSchedulingPerson> schedulingPersonList= personMapper.getTbfwSchedulingPersonList(tbfwScheduling); 74 tbfwScheduling.setSchedulingPersonList(schedulingPersonList);//把人放在值班list里,下面同上 75 listZhiBan.add(tbfwScheduling); 76 } 77 if(tbfwScheduling.getType().equals("休班")){ 78 List<TbfwSchedulingPerson> schedulingPersonList= personMapper.getTbfwSchedulingPersonList(tbfwScheduling); 79 tbfwScheduling.setSchedulingPersonList(schedulingPersonList); 80 listXiuBan.add(tbfwScheduling); 81 } 82 } 83 map.put("值班", listZhiBan); 84 map.put("休班", listXiuBan); 85 // // TODO Auto-generated method stub 86 return map; 87 } 88 89 90 91 public List<TbfwSchedulingPerson> getPersonByDate(TbfwScheduling tbfwScheduling) { 92 List<TbfwSchedulingPerson> schedulingPersonList= personMapper.getTbfwSchedulingPersonList(tbfwScheduling); 93 return schedulingPersonList; 94 } 95 96 public void saveTbfwScheduling(TbfwScheduling tbfwScheduling) { 97 TbfwScheduling model; 98 List<TbfwScheduling> schedulingList = mapper.getListByDateAndType(tbfwScheduling); 99 if(schedulingList!=null && schedulingList.size()>0){100 model =schedulingList.get(0);101 }else{102 mapper.insert(tbfwScheduling);103 schedulingList = mapper.getListByDateAndType(tbfwScheduling);104 model =schedulingList.get(0);105 }106 String ids =tbfwScheduling.getIds();107 System.out.println(ids+"--------");108 if(ids ==null || ids.equals("")){109 personMapper.delete(model);110 }111 112 if(ids !=null && !ids.equals("")){113 personMapper.delete(model);114 String[] aa =ids.split(",");115 for (String str : aa) {116 String[] bb=str.split(":");117 personMapper.insert(model.getId(),bb[0],bb[1]);118 }119 }120 }121 122 /**123 * 先把本月周所有星期一,然后根据单双周获得所有日期124 * 从人员表中获得符合条件的人,重新建一个list,把相等数量的人数放在里面125 * 然后把保存 126 * @param tbfwScheduling127 */128 public void autoTbfwScheduling(TbfwScheduling tbfwScheduling) {129 List<User> userList =userService.getUserListByDept(tbfwScheduling);//获得所有人130 int personN =this.getPersonNum(tbfwScheduling);//获得本月所要排班的人数131 List<User> list =new ArrayList<User>();//把人放到这个列表中132 int usedPerson =0; //定义用过的人133 while(true){ //用于把人放到这个列表里134 for (int i=0;i<userList.size();i++) {135 list.add(userList.get(i));136 }137 if(list.size()>=personN+2){138 break;139 }140 }141 int aa=0;142 for (User user : list) {143 System.out.print(user.getUsrname()+" "+aa++);144 }145 if(tbfwScheduling!=null){146 Date chaxunDate =tbfwScheduling.getPaibanDate();//获得查询时间147 int a=CalendarUtil.getWeekyofMonth(chaxunDate);//获得本月共几周148 for(int i=0;i<=a;i++){//遍历周149 //获得第一周,第二周,第三周150 Date date1 =CalendarUtil.getDayOfMonth(CalendarUtil.DateToDate(chaxunDate), i*7);//获得本月第一天,每次循环加7151 usedPerson = this.savePerson(tbfwScheduling, date1, usedPerson, list);152 }153 }154 155 }156 157 public int savePerson(TbfwScheduling tbfwScheduling,Date date1,int usedPerson,List<User> list){158 //单周的话值班12+4人159 List<Date> list1= CalendarUtil.getDaysOfWeekDate(date1);//获得本周7天160 for (int x=0;x<list1.size();x++) {//遍历每天161 tbfwScheduling.setPaibanDate(list1.get(x));//设置第一周星期一的时间162 TbfwScheduling model;163 List<TbfwScheduling> schedulingList = mapper.getListByDateAndType(tbfwScheduling);//查询是否有本日记录164 if(schedulingList!=null && schedulingList.size()>0){//有就取,没有就添加165 model =schedulingList.get(0);166 }else{167 mapper.insert(tbfwScheduling);168 schedulingList = mapper.getListByDateAndType(tbfwScheduling);169 model =schedulingList.get(0);170 }171 personMapper.delete(model); 172 173 if(x<=4){174 if(model.getDept().equals("一组")){175 for (int b = 0; b < 1; b++) {176 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),0+"");177 usedPerson = usedPerson + 1;178 179 }180 }181 if(model.getDept().equals("二组")){182 for (int b = 0; b < 2; b++) {183 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),0+"");184 usedPerson = usedPerson + 1;185 186 }187 }188 189 }190 if( CalendarUtil.getDanShuangWeek(date1).equals("单周")){191 if(x==5){ 192 if(model.getDept().equals("一组")){193 for (int b = 0; b < 1; b++) {194 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),0+"");195 usedPerson = usedPerson + 1;196 System.out.println(usedPerson+"x=5)"+list.get(usedPerson).getUsrname() );197 }198 }199 if(model.getDept().equals("二组")){200 for (int b = 0; b < 2; b++) {201 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),0+"");202 usedPerson = usedPerson + 1;203 System.out.println(usedPerson+"x=5)"+list.get(usedPerson).getUsrname() );204 }205 }206 }207 if(x==6){208 if(model.getDept().equals("一组")){209 for (int b = 0; b < 1; b++) {210 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),0+"");211 usedPerson = usedPerson + 1;212 213 }214 for (int b = 0; b < 1; b++) {215 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),1+"");216 usedPerson = usedPerson + 1;217 218 }219 }220 if(model.getDept().equals("二组")){221 for (int b = 0; b < 2; b++) {222 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),0+"");223 usedPerson = usedPerson + 1;224 225 }226 for (int b = 0; b < 2; b++) {227 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),1+"");228 usedPerson = usedPerson + 1;229 230 }231 }232 }233 }234 235 if( CalendarUtil.getDanShuangWeek(date1).equals("双周")){236 if(x>=5){237 if(model.getDept().equals("一组")){238 for (int b = 0; b < 1; b++) {239 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),0+"");240 usedPerson = usedPerson + 1;241 }242 for (int b = 0; b < 1; b++) {243 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),1+"");244 usedPerson = usedPerson + 1;245 }246 }247 if(model.getDept().equals("二组")){248 for (int b = 0; b < 2; b++) {249 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),0+"");250 usedPerson = usedPerson + 1;251 252 }253 for (int b = 0; b < 2; b++) {254 personMapper.insert(model.getId(), list.get(usedPerson).getUsrname(),1+"");255 usedPerson = usedPerson + 1;256 257 }258 }259 }260 }261 }262 //263 return usedPerson;264 265 }266 267 public int getPersonNum(TbfwScheduling tbfwScheduling){268 int personNum =0;269 if(tbfwScheduling!=null){270 Date chaxunDate =tbfwScheduling.getPaibanDate();271 int a=CalendarUtil.getWeekyofMonth(chaxunDate);//一共几周272 273 for(int i=0;i<=a;i++){274 //获得第一周275 Date date1 =CalendarUtil.getDayOfMonth(CalendarUtil.DateToDate(chaxunDate), i*7);//获得第一周276 if(CalendarUtil.getDanShuangWeek(date1).equals("单周")){//单周的话值班6人277 //首先查询 本周日期,然后根据条件查询出来,有不变,周一到周五set人,没有就删除278 personNum=personNum+10+6;279 //280 }else{281 personNum=personNum+10+8;282 }283 }284 }285 return personNum;286 }287 288 // public static void main(String[] args) {289 // List list =new ArrayList<>();290 // list.add(1);291 // list.add(2);292 // List list2 =new ArrayList<>();293 // int i=10;294 // 295 // while(true){296 // for (int a=0; a<list.size() ;a++) {297 // list2.add(list.get(a));298 // }299 // if(list2.size()==i){300 // break;301 // }302 // }303 // System.out.println(list2);304 // }305 306 public List<TbfwSchedulingPerson> statisticsTbfwScheduling(TbfwScheduling tbfwScheduling) {307 List<TbfwSchedulingPerson> list =personMapper.statisticsTbfwScheduling(tbfwScheduling);308 return list;309 }310 311 312 }
mapper.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 <mapper namespace="com.honghailt.dataextracter.mappers.ds1.TbfwSchedulingMapper"> 5 6 <select id="getTbfwSchedulingList" resultType="TbfwScheduling"> 7 SELECT 8 id, 9 paibanDate,10 type,11 dept12 FROM de_tbfw_order_scheduling13 WHERE 1=114 and date(paibanDate) between #{begintime:DATE} and #{endtime:DATE}15 and dept =#{nick}16 </select>17 <select id="getListByDateAndType" resultType="TbfwScheduling">18 SELECT19 id,20 paibanDate,21 type,22 dept23 FROM de_tbfw_order_scheduling24 WHERE 1=125 and date(paibanDate) = #{paibanDate} 26 and type = #{type} 27 and dept = #{dept}28 </select>29 <insert id="insert">30 INSERT INTO de_tbfw_order_scheduling31 (32 paibanDate,33 type,34 dept)35 VALUES36 (#{paibanDate},37 #{type},38 #{dept}39 );40 </insert>41 </mapper>
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 <mapper namespace="com.honghailt.dataextracter.mappers.ds1.TbfwSchedulingPersonMapper"> 5 6 <select id="getTbfwSchedulingPersonList" resultType="TbfwSchedulingPerson"> 7 SELECT 8 a.id, 9 b.id as tbfwSchedulingId,10 a.userId,11 a.baiban12 FROM (de_tbfw_order_schedulingperson a LEFT JOIN de_tbfw_order_scheduling b 13 on a.tbfwSchedulingId = b.id)14 WHERE 1=115 and date(b.paibanDate) = #{paibanDate:DATE}16 and b.type = #{type}17 and b.dept = #{dept}18 </select>19 20 <!-- <select id="getTbfwSchedulingPersonList" resultType="TbfwSchedulingPerson">21 SELECT22 a.id,23 b.id as tbfwSchedulingId,24 c.usrno as userId,25 c.usrname as usrname26 FROM (de_tbfw_order_schedulingperson a LEFT JOIN de_tbfw_order_scheduling b 27 on a.tbfwSchedulingId = b.id) LEFT JOIN databus_user c on c.usrno = a.userId28 WHERE 1=129 and date(b.paibanDate) = #{paibanDate:DATE}30 and b.type = #{type}31 and b.dept = #{dept}32 </select> -->33 <delete id="delete">34 DELETE from de_tbfw_order_schedulingperson35 WHERE tbfwSchedulingId =#{id}36 </delete>37 <insert id="insert">38 INSERT INTO de_tbfw_order_schedulingperson39 (tbfwSchedulingId,40 userId,41 baiban)42 VALUES43 ( #{param1},44 #{param2},45 #{param3});46 </insert>47 48 <select id="statisticsTbfwScheduling" resultType="TbfwSchedulingPerson">49 SELECT50 COUNT(p.id) AS statisticsCount,51 c.dept,52 c.type,53 p.userId,54 p.baiban55 FROM56 de_tbfw_order_schedulingperson p ,57 de_tbfw_order_scheduling c58 where59 p.tbfwSchedulingId = c.id60 and61 date(c.paibanDate) between #{beginTime:DATE} and #{endTime:DATE}62 AND c.dept =#{dept} 63 GROUP BY64 p.userId,65 c.dept,66 c.type,67 p.baiban68 </select>69 70 71 72 73 74 </mapper>
1.jsp
1 <div class="main"> 2 <div style="text-align: center; font-size: 14px; font-weight: bold;">排班信息</div> 3 <form id="form1" action="<c:url value="http://www.mamicode.com//showTbfwScheduling.do"/>" method="post" autocomplete="off"> 4 <div> 5 所在部门: 6 <select name="nick" > 7 <c:forEach items="${depts}" var="dd"> 8 <option value="${dd}" <c:if test="${dd==order.nick}">selected</c:if>>${dd}</option> 9 </c:forEach>10 </select>11 12 当前日期:<input type="text" name="chaxunDate"13 value="<fmt:formatDate pattern="yyyy-MM-dd" value="${chaxunDate}"/>"14 style="width: 100px;" maxlength="10" onClick="WdatePicker()">15 <input type="submit" id="query" value=" 查 询 "></div>16 </form>17 <table class="grid">18 <tr>19 <th style="width:80px"> </th>20 <c:forEach items="${weekChina}" var="china">21 <th><center>${china}</center></th> <!-- 遍历表头 -->22 </c:forEach>23 </tr>24 25 <c:forEach items="${week}" var="week1">26 <tr>27 <th style="width:80px"> ${fn:substring(week1.key,2,4)}</th>28 <c:forEach items="${week1.value}" var="day1">29 <th>30 <fmt:formatDate var="cx" value="${chaxunDate}" pattern="yyyy-MM-dd"/>31 <c:if test="${cx eq day1}">32 <font color=red >${cx} </c:if>33 </font>34 <c:if test="${cx ne day1}">35 ${day1}</c:if>36 </th> <!-- 遍历表头 -->37 </c:forEach>38 </tr>39 <c:forEach items="${types}" var="row" varStatus="num">40 <tr>41 <td>${row}</td> <!-- 遍历类型 -->42 <c:forEach items="${maps}" var="map" varStatus="num1">43 <c:if test="${row eq map.key}">44 <c:forEach items="${week1.value}" var="day">45 <td>46 <c:forEach items="${map.value}" var="aa" varStatus="num2">47 <fmt:formatDate var="paibanDate" value="${aa.paibanDate}" pattern="yyyy-MM-dd"/>48 <c:if test="${paibanDate eq day }">49 <c:forEach items="${aa.schedulingPersonList}" var="person" varStatus="num1">50 <c:if test="${person.baiban eq 1}">51 <font color = red> ${person.userId}</font>52 </c:if>53 <c:if test="${person.baiban ne 1}">54 ${person.userId} 55 </c:if>56 57 </c:forEach>58 </c:if>59 </c:forEach> 60 </td>61 </c:forEach>62 </c:if>63 </c:forEach>64 </tr>65 </c:forEach>66 </c:forEach> 67 </table> 68 </div>
<body><div class="main"> <div style="text-align: center; font-size: 14px; font-weight: bold;">排班信息</div> <form id="form1" action="<c:url value="http://www.mamicode.com//editTbfwScheduling.do"/>" method="post" autocomplete="off"> <table> <tr> <td> <div> 所在部门: <select name="nick"> <c:forEach items="${depts}" var="dd"> <option value="${dd}" <c:if test="${dd==order.nick}">selected</c:if>>${dd}</option> </c:forEach> </select> 当前日期: <input type="text" name="chaxunDate" id="chaxunDate" value="<fmt:formatDate pattern="yyyy-MM-dd" value="${chaxunDate}"/>" style="width: 100px;" maxlength="10" onClick="WdatePicker()"> <input type="submit" id="query" value=" 查 询 "> </div> </td> <td style="text-align: right;"> <input type="button" value="统计" onclick="aa()"/> </td> <td style="text-align: right;"> <input type="button" value="一鍵排班" onclick="autoScheduling()"/> </td> </tr> </table> </form> <div class="progress" style="display:none;"> <div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 100%;"> <span class="sr-only">正在排班 ,请等待...</span> </div></div> <table class="grid"> <tr> <th style="width:80px"> </th> <c:forEach items="${weekChina}" var="china"> <th><center>${china}</center></th> <!-- 遍历表头 --> </c:forEach> </tr> <c:forEach items="${week}" var="week1"> <tr> <th style="width:80px"> ${fn:substring(week1.key,2,4)}</th> <c:forEach items="${week1.value}" var="day1"> <th> <fmt:formatDate var="cx" value="${chaxunDate}" pattern="yyyy-MM-dd"/> <c:if test="${cx eq day1}"> <font color=red >${cx} </c:if> </font> <c:if test="${cx ne day1}"> ${day1}</c:if> </th> <!-- 遍历表头 --> </c:forEach> </tr> <c:forEach items="${types}" var="row" varStatus="num"> <tr> <td>${row}</td> <!-- 遍历类型 --> <c:forEach items="${maps}" var="map" varStatus="num1"> <c:if test="${row eq map.key}"> <c:forEach items="${week1.value}" var="day"> <td ondblclick="showtbfwList(‘${row}‘,this,‘${day}‘)"> <c:forEach items="${map.value}" var="aa" varStatus="num2"> <fmt:formatDate var="paibanDate" value="${aa.paibanDate}" pattern="yyyy-MM-dd"/> <c:if test="${paibanDate eq day }"> <c:forEach items="${aa.schedulingPersonList}" var="person" varStatus="num1"> <c:if test="${person.baiban eq 1}"> <font color = red> ${person.userId}</font> </c:if> <c:if test="${person.baiban ne 1}"> ${person.userId} </c:if> </c:forEach> </c:if> </c:forEach> </td> </c:forEach> </c:if> </c:forEach> </tr> </c:forEach></c:forEach> </table> </div><script type="text/javascript">function aa(){ $(form1).attr("action","statisticsTbfwScheduling.do");// 填充内容 // document.form1.action =""; $(form1).submit();}function autoScheduling(){ var dept = $("select[name=nick] option:selected").val(); var day = $("#chaxunDate").val(); if (confirm("自动排班后,本月排班将会重新排列,请谨慎点击!")) { $("div.progress").show(); if (true) { $.ajax({ url : "<c:url value=http://www.mamicode.com/"/autoTbfwScheduling.do"/>", type : "post", data : { type : "值班", paibanDate : day, dept : dept }, dataType : "text", success : function(data) { $("div.progress").hide(); if (data =http://www.mamicode.com/= "success") { alert("排班成功!"); } else { alert("排班失败!"); } } }); } return true; } }function showtbfwList(type, indexa,day) { var dept = $("select[name=nick] option:selected").val(); var result = window.showModalDialog("queryTbfwScheduling.do?type=" + type+"&paibanDate="+day+"&dept="+dept, "help:no;scroll:no;dialogWidth:300px; dialogHeight:300px"); var ids=getAllIds(result); if (true) { $.ajax({ url : "<c:url value="/updateTbfwScheduling.do"/>", type : "post", data : { type : type, paibanDate : day, ids : ids, dept : dept }, dataType : "text", success : function(data) { if (data == "success") { alert("添加成功!"); $(form1).submit(); } else { alert("添加失败!"); } } }); //indexa.innerHTML = getAllNames(result); } } function getAllNames(obj) { // 用来保存所有的属性名称和值 var props = ""; // 开始遍历 for ( var i = 0; i < obj.length; i++) { props = obj[i].usrname + "," + props; } props = props.substring(0, props.length - 1); // 最后显示所有的属性 return props; } function getAllIds(obj) { // 用来保存所有的属性名称和值 var props = ""; // 开始遍历 for ( var i = 0; i < obj.length; i++) { props = obj[i].usrno +":"+obj[i].baibans + "," + props; } props = props.substring(0, props.length - 1); // 最后显示所有的属性 return props; } function getAllBaiBan(obj) { // 用来保存所有的属性名称和值 var props = ""; // 开始遍历 for ( var i = 0; i < obj.length; i++) { props = obj[i].baibans + "," + props; } props = props.substring(0, props.length - 1); // 最后显示所有的属性 return props; } </script></body>
<body> <div><% String str =""; %> </div> <center> <table class="grid"> <tr> <th style="width:80px" colspan="2"> <fmt:formatDate pattern="yyyy-MM-dd" value="${tbfwScheduling.paibanDate}"/> ${tbfwScheduling.type}人员列表 </th> </tr> <tr> <c:forEach items="${userList}" var="user" varStatus="num"> <td> <input type="checkbox" <c:forEach items="${personList}" var="person" > <c:if test="${person.userId eq user.usrname}"> checked </c:if> </c:forEach> name="ids" value="http://www.mamicode.com/${user.usrno}"> <input type="checkbox" <c:forEach items="${personList}" var="person1" > <c:if test="${person1.userId eq user.usrname}"> <c:if test="${person1.baiban eq ‘1‘}"> checked </c:if> </c:if> </c:forEach> name="baibans" value="http://www.mamicode.com/${user.usrno}"> <input type = "hidden" name = "userinfo" value = "{usrno:‘${user.usrname}‘,usrname:‘${user.usrname}‘}"> ${user.usrname} </td> <c:if test="${(num.index % 2 ) eq 1}"></tr><tr></c:if> <c:if test="${num.index eq 6}"><td> </td></tr><tr></c:if> </c:forEach> </table></center></div> <div><center> <input type="button" value="确定" onclick="validateadd()"/></center></div> <script language="javascript"> function validateadd() { var rtn = []; $("input[name=ids]:checked").siblings("input[name=userinfo]").each(function(i,n){ eval("obj=" + $(this).val()); if($(this).siblings("input[name=baibans]:checked").size()>0) { obj.baibans = 1; } else { obj.baibans = 0; } console.log(JSON.stringify(obj)); rtn.push(obj); }); window.returnValue=rtn; // alert(rtn); window.close(); } </script></body>
<body><div class="main"> <div style="text-align: center; font-size: 14px; font-weight: bold;">排班信息</div> <form id="form1" action="<c:url value="http://www.mamicode.com//statisticsTbfwScheduling.do"/>" method="post" autocomplete="off"> <div> 所在部门: <select name="dept" > <c:forEach items="${depts}" var="dd"> <option value="${dd}" <c:if test="${dd==tbfwScheduling.dept}">selected</c:if>>${dd}</option> </c:forEach> </select> 开始日期:<input type="text" name=beginTime value="<fmt:formatDate pattern="yyyy-MM-dd" value="${tbfwScheduling.beginTime}"/>" style="width: 100px;" maxlength="10" onClick="WdatePicker()"> 结束日期:<input type="text" name=endTime value="<fmt:formatDate pattern="yyyy-MM-dd" value="${tbfwScheduling.endTime}"/>" style="width: 100px;" maxlength="10" onClick="WdatePicker()"> <input type="submit" id="query" value=" 查 询 "> <input type="button" value="编辑" onclick="aa()"/> </div> </form> <table class="grid"> <tr> <th>人员</th> <c:forEach items="${types}" var="type1"> <th>${type1}</th> </c:forEach> </tr> <c:forEach items="${userList}" var="user"> <tr> <td > ${user.usrname}</td> <c:forEach items="${types}" var="type"> <td style="text-align: center;"> <c:forEach items="${personList}" var="person"> <c:if test="${person.userId eq user.usrname}"> <c:if test="${person.type eq type }"> <c:if test="${person.type eq ‘值班‘}"> <c:if test="${person.baiban eq ‘1‘ }"> 白班:<font color =red>${person.statisticsCount}</font> </c:if> <c:if test="${person.baiban eq ‘0‘ }"> 晚班:${person.statisticsCount} </c:if> </c:if> <c:if test="${person.type eq ‘休班‘ }"> 休班:${person.statisticsCount} </c:if> </c:if> </c:if> </c:forEach> </td> </c:forEach> </tr> </c:forEach> </table> </div><script type="text/javascript">function aa(){ $(form1).attr("action","editTbfwScheduling.do");// 填充内容 // document.form1.action =""; $(form1).submit();}</script></body>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。