| package com.matrix.system.hive.action; | 
|   | 
| import com.matrix.core.constance.MatrixConstance; | 
| import com.matrix.core.pojo.AjaxResult; | 
| import com.matrix.core.tools.WebUtil; | 
| import com.matrix.system.common.bean.SysUsers; | 
| import com.matrix.system.common.service.SysUsersService; | 
| import com.matrix.system.constance.Dictionary; | 
| import com.matrix.system.hive.bean.SysBeauticianState; | 
| import com.matrix.system.hive.bean.SysWorkBeatuistaff; | 
| import com.matrix.system.hive.bean.SysWorktime; | 
| import com.matrix.core.tools.DateUtil; | 
| import com.matrix.system.hive.pojo.BeautiWorkForm; | 
| import com.matrix.system.hive.service.SysWorkBeatuistaffService; | 
| import com.matrix.system.hive.service.SysWorktimeService; | 
| import org.springframework.stereotype.Controller; | 
| import org.springframework.web.bind.annotation.RequestBody; | 
| import org.springframework.web.bind.annotation.RequestMapping; | 
| import org.springframework.web.bind.annotation.ResponseBody; | 
|   | 
| import javax.annotation.Resource; | 
| import java.util.*; | 
|   | 
|   | 
| /** | 
|  * 美疗师排班 | 
|  * | 
|  * @author jyy | 
|  * @Title: BeautiWorkFormController.java   | 
|  * @Package com.zkingsoft.actions.admin   | 
|  * @description | 
|  * @email 18075895212@qq.com | 
|  * @date 2016年7月29日 下午1:41:13 | 
|  */ | 
| @RequestMapping(value = "/admin/beautiWork") | 
| @Controller | 
| public class BeautiWorkFormController extends BaseController { | 
|     @Resource | 
|     private SysUsersService sysUsersService; | 
|     @Resource | 
|     private SysWorkBeatuistaffService sysWorkBeatuistaffService; | 
|     @Resource | 
|     private SysWorktimeService sysWorkTimeService; | 
|   | 
|   | 
|     @RequestMapping(value = "/getPaiBanInfo") | 
|     public @ResponseBody | 
|     AjaxResult getPaiBanInfo(@RequestBody Map<String,Object> map  ) { | 
|   | 
|         AjaxResult result = new AjaxResult(); | 
|         result.setStatus(AjaxResult.STATUS_SUCCESS); | 
|         Object strDate = map.get("dateTime"); | 
|         Date date; | 
|         if (strDate == null || strDate.equals("")) { | 
|             date = new Date(); | 
|         } else { | 
|             date = DateUtil.stringToDate(strDate.toString(), "yyyy-MM-dd"); | 
|         } | 
|         result.putInMap("dateTime", date); | 
|   | 
|   | 
|         //获取本店所有的美疗师 | 
|         List<SysUsers> mlss = | 
|                 sysUsersService.findByRoleName(true,Dictionary.STAFF_POST_MLS); | 
|   | 
|   | 
|         /**根据一个时间获取未来七天的排班记录*/ | 
|         int pageNow = 1; | 
|         List<BeautiWorkForm> workForms = sysWorkBeatuistaffService.findPaiBanByTime(date, pageNow); | 
|         result.putInMap("mlss", mlss); | 
|         result.putInMap("beaWorkForms", workForms); | 
|   | 
|         //今日排班的美疗师 | 
|         List<SysWorkBeatuistaff> todayWorkMls = new ArrayList<SysWorkBeatuistaff>(); | 
|         for (List<SysWorkBeatuistaff> lists : workForms.get(0).getQueryListWorks()) { | 
|             for (SysWorkBeatuistaff sysWorkBeatuistaff : lists) { | 
|                 todayWorkMls.add(sysWorkBeatuistaff); | 
|             } | 
|         } | 
|   | 
|         //对美疗师进行签到排序 | 
|         Collections.sort(todayWorkMls, new Comparator<SysWorkBeatuistaff>() { | 
|             @Override | 
|             public int compare(SysWorkBeatuistaff o1, SysWorkBeatuistaff o2) { | 
|   | 
|                 if (o1.getSignOrder() == null) return 1; | 
|                 if (o2.getSignOrder() == null) return -1; | 
|                 if (o1.getSignOrder() > o2.getSignOrder()) { | 
|                     return 1; | 
|                 } else { | 
|                     return -1; | 
|                 } | 
|             } | 
|         }); | 
|         result.putInMap("todayWorkMls", todayWorkMls); | 
|   | 
|         List<SysWorktime> sysWorktimes = sysWorkTimeService.findWorkTimeByshopId(getMe().getShopId()); | 
|         result.putInMap("workTimes", sysWorktimes); | 
|         return result; | 
|     } | 
|   | 
|   | 
|   | 
|     @RequestMapping(value = "/paiBan") | 
|     public String paiBan() { | 
|   | 
|   | 
|         String strDate = WebUtil.getRequest().getParameter("dateTime"); | 
|         Date date; | 
|         if (strDate == null || strDate.equals("")) { | 
|             date = new Date(); | 
|         } else { | 
|             date = DateUtil.stringToDate(strDate, "yyyy-MM-dd"); | 
|         } | 
|         WebUtil.getRequest().setAttribute("dateTime", date); | 
|   | 
|         //获取本店所有的美疗师 | 
|         List<SysUsers> mlss = | 
|                 sysUsersService.findByRoleName(true,Dictionary.STAFF_POST_MLS); | 
|   | 
|   | 
|         /**根据一个时间获取未来七天的排班记录*/ | 
|         int pageNow = 1; | 
|         List<BeautiWorkForm> workForms = sysWorkBeatuistaffService.findPaiBanByTime(date, pageNow); | 
|         WebUtil.getRequest().setAttribute("mlss", mlss); | 
|         WebUtil.getRequest().setAttribute("beaWorkForms", workForms); | 
|   | 
|         //今日排班的美疗师 | 
|         List<SysWorkBeatuistaff> todayWorkMls = new ArrayList<SysWorkBeatuistaff>(); | 
|         for (List<SysWorkBeatuistaff> lists : workForms.get(0).getQueryListWorks()) { | 
|             for (SysWorkBeatuistaff sysWorkBeatuistaff : lists) { | 
|                 todayWorkMls.add(sysWorkBeatuistaff); | 
|             } | 
|         } | 
|   | 
|         //对美疗师进行签到排序 | 
|         Collections.sort(todayWorkMls, new Comparator<SysWorkBeatuistaff>() { | 
|             @Override | 
|             public int compare(SysWorkBeatuistaff o1, SysWorkBeatuistaff o2) { | 
|   | 
|                 if (o1.getSignOrder() == null) return 1; | 
|                 if (o2.getSignOrder() == null) return -1; | 
|                 if (o1.getSignOrder() > o2.getSignOrder()) { | 
|                     return 1; | 
|                 } else { | 
|                     return -1; | 
|                 } | 
|             } | 
|         }); | 
|         WebUtil.getRequest().setAttribute("todayWorkMls", todayWorkMls); | 
|   | 
|         List<SysWorktime> sysWorktimes = sysWorkTimeService.findWorkTimeByshopId(getMe().getShopId()); | 
|         WebUtil.getRequest().setAttribute("workTimes", sysWorktimes); | 
|         if (sysWorktimes.size() > 0) { | 
|             int len = 10 / sysWorktimes.size(); | 
|             WebUtil.getRequest().setAttribute("len", len); | 
|         } | 
|         return "admin/hive/beautySalon/beatuiPaiBan"; | 
|     } | 
|   | 
|   | 
|   | 
|     @RequestMapping(value = "/ddOrModifyWork") | 
|     public @ResponseBody | 
|     AjaxResult ddOrModifyWork(@RequestBody  BeautiWorkForm workForm) { | 
|         String strDate = workForm.getDateTime(); | 
|         strDate = strDate.replaceAll("-", ""); | 
|   | 
|   | 
|         int dateForm = Integer.parseInt(strDate); | 
|         int curTime = Integer.parseInt(DateUtil.dateToString(new Date(), "yyyyMMdd")); | 
|         if (curTime > dateForm) { | 
|   | 
|             return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择大于当前时间下排班!"); | 
|         } | 
|         if (sysWorkBeatuistaffService.modifyWork(workForm) > 0) { | 
|             return new AjaxResult(AjaxResult.STATUS_SUCCESS, "美疗师排班成功!"); | 
|         } | 
|         return new AjaxResult(AjaxResult.STATUS_FAIL, "美疗师排班失败!"); | 
|     } | 
|   | 
|   | 
|     @RequestMapping(value = "/addOrModify") | 
|     public @ResponseBody | 
|     AjaxResult addOrModify(BeautiWorkForm workForm) { | 
|         String strDate = WebUtil.getRequest().getParameter("dateTime"); | 
|         strDate = strDate.replaceAll("-", ""); | 
|   | 
|   | 
|         int dateForm = Integer.parseInt(strDate); | 
|         int curTime = Integer.parseInt(DateUtil.dateToString(new Date(), "yyyyMMdd")); | 
|         if (curTime > dateForm) { | 
|   | 
|             return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择大于当前时间下排班!"); | 
|         } | 
|         if (sysWorkBeatuistaffService.modifyWork(workForm) > 0) { | 
|             return new AjaxResult(AjaxResult.STATUS_SUCCESS, "美疗师排班成功!"); | 
|         } | 
|         return new AjaxResult(AjaxResult.STATUS_FAIL, "美疗师排班失败!"); | 
|     } | 
|   | 
|     @RequestMapping(value = "/getCurrentWorks") | 
|     public @ResponseBody | 
|     AjaxResult getCurrentWorks() { | 
|         return new AjaxResult(AjaxResult.STATUS_SUCCESS, | 
|                 sysWorkBeatuistaffService.findByDateStr( | 
|                         DateUtil.dateToString(new Date(), "yyyyMMdd"), getMe().getShopId()), 0); | 
|     } | 
|   | 
|   | 
|     /** | 
|      * @param staff | 
|      * @return | 
|      * @description 员工签到 | 
|      * @author jiangyouyao | 
|      */ | 
|     @RequestMapping(value = "/modifySignOrder") | 
|     public @ResponseBody | 
|     AjaxResult modifySignOrder(SysUsers staff) { | 
|         if (staff.getSuId() == null) { | 
|             return new AjaxResult(AjaxResult.STATUS_FAIL, "签到失败"); | 
|         } | 
|         int currentNum = sysWorkBeatuistaffService.staffSign(staff); | 
|         return new AjaxResult(AjaxResult.STATUS_SUCCESS, currentNum + "", "今天第" + currentNum + "位签到成功"); | 
|     } | 
|   | 
|   | 
|     /** | 
|      * @param sysBeauticianState | 
|      * @return | 
|      * @author jyy | 
|      */ | 
|     @RequestMapping(value = "/getPaiBanBeauticianList") | 
|     public @ResponseBody | 
|     AjaxResult getPaiBanBeauticianList(@RequestBody SysBeauticianState sysBeauticianState) { | 
|         // 根据时间获取一段排班码 | 
|         String panBanCodes = DateUtil.dateToString(sysBeauticianState.getBeginTime(),DateUtil.DATE_FORMAT_NO_SPLITE_DD); | 
|         // 获取登陆的用户 | 
|         SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); | 
|         List<SysUsers> staffs=new ArrayList<>(); | 
|         if(sysWorkTimeService.isInWorkTime(user.getShopId(),sysBeauticianState.getBeginTime(),sysBeauticianState.getEndTime())){ | 
|             staffs= sysUsersService.findByCodeBeaStateShop(user.getShopId(), | 
|                     sysBeauticianState, panBanCodes); | 
|         } | 
|         return new AjaxResult(AjaxResult.STATUS_SUCCESS, staffs, 0); | 
|     } | 
|   | 
| } |