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 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 mlss = sysUsersService.findByRoleName(true,Dictionary.STAFF_POST_MLS); /**根据一个时间获取未来七天的排班记录*/ int pageNow = 1; List workForms = sysWorkBeatuistaffService.findPaiBanByTime(date, pageNow); result.putInMap("mlss", mlss); result.putInMap("beaWorkForms", workForms); //今日排班的美疗师 List todayWorkMls = new ArrayList(); for (List lists : workForms.get(0).getQueryListWorks()) { for (SysWorkBeatuistaff sysWorkBeatuistaff : lists) { todayWorkMls.add(sysWorkBeatuistaff); } } //对美疗师进行签到排序 Collections.sort(todayWorkMls, new Comparator() { @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 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 mlss = sysUsersService.findByRoleName(true,Dictionary.STAFF_POST_MLS); /**根据一个时间获取未来七天的排班记录*/ int pageNow = 1; List workForms = sysWorkBeatuistaffService.findPaiBanByTime(date, pageNow); WebUtil.getRequest().setAttribute("mlss", mlss); WebUtil.getRequest().setAttribute("beaWorkForms", workForms); //今日排班的美疗师 List todayWorkMls = new ArrayList(); for (List lists : workForms.get(0).getQueryListWorks()) { for (SysWorkBeatuistaff sysWorkBeatuistaff : lists) { todayWorkMls.add(sysWorkBeatuistaff); } } //对美疗师进行签到排序 Collections.sort(todayWorkMls, new Comparator() { @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 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 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); } }