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); 
 | 
    } 
 | 
  
 | 
} 
 |