package com.matrix.system.hive.service.imp;
|
|
|
import com.matrix.core.constance.MatrixConstance;
|
import com.matrix.core.pojo.PaginationVO;
|
import com.matrix.core.tools.StringUtils;
|
import com.matrix.core.tools.WebUtil;
|
import com.matrix.system.common.bean.SysUsers;
|
import com.matrix.system.common.dao.SysUsersDao;
|
import com.matrix.system.hive.bean.SysWorkBeatuistaff;
|
import com.matrix.system.hive.bean.SysWorktime;
|
import com.matrix.system.hive.dao.SysWorkBeatuistaffDao;
|
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.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @date 2016-07-29 11:37
|
*/
|
@Service("sysWorkBeatuistaffService")
|
public class SysWorkBeatuistaffServiceImpl implements SysWorkBeatuistaffService {
|
|
@Autowired
|
private SysWorkBeatuistaffDao sysWorkBeatuistaffDao;
|
|
@Autowired
|
private SysWorktimeService sysWorkTimeService;
|
@Autowired
|
private SysUsersDao usersDao;
|
|
@Override
|
public int add(SysWorkBeatuistaff sysWorkBeatuistaff) {
|
|
return sysWorkBeatuistaffDao.insert(sysWorkBeatuistaff);
|
|
}
|
|
@Override
|
public int modify(SysWorkBeatuistaff sysWorkBeatuistaff) {
|
|
return sysWorkBeatuistaffDao.update(sysWorkBeatuistaff);
|
|
}
|
|
@Override
|
public int remove(List<Long> list) {
|
|
return sysWorkBeatuistaffDao.deleteByIds(list);
|
|
}
|
|
@Override
|
public int removeById(Long id) {
|
|
return sysWorkBeatuistaffDao.deleteById(id);
|
|
}
|
|
@Override
|
public List<SysWorkBeatuistaff> findInPage(SysWorkBeatuistaff sysWorkBeatuistaff, PaginationVO pageVo) {
|
|
return sysWorkBeatuistaffDao.selectInPage(sysWorkBeatuistaff, pageVo);
|
|
}
|
|
@Override
|
public List<SysWorkBeatuistaff> findByModel(SysWorkBeatuistaff sysWorkBeatuistaff) {
|
|
return sysWorkBeatuistaffDao.selectByModel(sysWorkBeatuistaff);
|
|
}
|
|
@Override
|
public int findTotal(SysWorkBeatuistaff sysWorkBeatuistaff) {
|
|
return sysWorkBeatuistaffDao.selectTotalRecord(sysWorkBeatuistaff);
|
|
}
|
|
@Override
|
public SysWorkBeatuistaff findById(Long id) {
|
|
return sysWorkBeatuistaffDao.selectById(id);
|
|
}
|
|
/**
|
* 美疗师排班 LK
|
*/
|
@Override
|
public int modifyWork(BeautiWorkForm workForm) {
|
int result = 0;
|
SysUsers users = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
|
//删掉没有排班员工的签到信息
|
//delSignInfo(workForm.getWorks());
|
for (SysWorkBeatuistaff staff : workForm.getWorks()) {
|
// 删除当前操作的美疗师排班记录,
|
sysWorkBeatuistaffDao.deleteByCode(staff.getPaibanCode(),staff.getWorkId());
|
// 切割页面获取的多个id 字符串
|
List<String> ids = new ArrayList<String>();
|
if (staff.getSuIds() == null) {
|
continue;
|
}
|
|
Collections.addAll(ids, staff.getSuIds().split(","));
|
|
for (String idStr : ids) {
|
if (StringUtils.isNotBlank(idStr)) {
|
SysWorkBeatuistaff beatuistaff = new SysWorkBeatuistaff();
|
beatuistaff.setStaffId(Long.parseLong(idStr));
|
beatuistaff.setPaibanCode(staff.getPaibanCode());
|
beatuistaff.setShopId(users.getShopId());
|
beatuistaff.setWorkId(staff.getWorkId());
|
result = sysWorkBeatuistaffDao.insert(beatuistaff);
|
}
|
|
}
|
}
|
return result;
|
}
|
|
/*public void delSignInfo(List<SysWorkBeatuistaff> list){
|
for (SysWorkBeatuistaff staff : list) {
|
List<SysWorkBeatuistaff> currentWorks=sysWorkBeatuistaffDao.selectByCode(staff.getPaibanCode());
|
String staffIds=staff.getSuIds();
|
List<String> a=new ArrayList<String>();
|
if(staffIds!=null){
|
a=Arrays.asList(staffIds.split(","));
|
}
|
for (SysWorkBeatuistaff obj:currentWorks) {
|
//说明该时间段原来排班的员工被删除了,改员工的签到信息
|
if(!a.contains(""+obj.getSuId())){
|
SysUsersDao.emptySignInfoById(obj.getSuId());
|
};
|
}
|
}
|
}*/
|
|
/**
|
* 获取未来的某个时间段的排班记录
|
*/
|
@Override
|
public List<BeautiWorkForm> findPaiBanByTime(Date date, int page) {
|
|
|
// 根据分页获取未来7天的日期
|
List<Date> dates = DateUtil.getFutureDay(date, 0 * page, 7 * page);
|
SysUsers users = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
|
List<SysWorktime> worktimes = sysWorkTimeService.findWorkTimeByshopId(users.getShopId());
|
|
List<BeautiWorkForm> workForms = new ArrayList<BeautiWorkForm>();
|
for (Date dtime : dates) {
|
BeautiWorkForm beautiWorkForm = new BeautiWorkForm();
|
beautiWorkForm.setDate(dtime);
|
List<List<SysWorkBeatuistaff>> staffs = new ArrayList<List<SysWorkBeatuistaff>>();
|
for (SysWorktime sysWorktime : worktimes) {
|
staffs.add(sysWorkBeatuistaffDao
|
.selectByCode(DateUtil.dateToString(dtime, "yyyyMMdd") , sysWorktime.getId()));
|
}
|
beautiWorkForm.setQueryListWorks(staffs);
|
workForms.add(beautiWorkForm);
|
}
|
return workForms;
|
}
|
|
|
/**
|
* @description 查询当前上班的美疗师
|
* @author 姜友瑶
|
* @date 2015-10-08
|
*/
|
@Override
|
public List<SysWorkBeatuistaff> findByDateStr(String timeStr, Long shopId) {
|
return sysWorkBeatuistaffDao.selectByDateStr(timeStr, shopId);
|
}
|
|
//TODO 待优化
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public int staffSign(SysUsers staff) {
|
Long shopId = usersDao.selectById(staff.getSuId()).getShopId();
|
// 当天签到的人数
|
Integer maxSignOrder = usersDao.selectMaxSignOrder(shopId);
|
if (maxSignOrder == null) {
|
maxSignOrder = 1;
|
// 第一个签到要把其他天数的签到排序清空
|
usersDao.setOldSignDateNull(shopId);
|
} else {
|
maxSignOrder = maxSignOrder + 1;
|
}
|
SysUsers modifyObj = new SysUsers();
|
modifyObj.setSuId(staff.getSuId());
|
modifyObj.setSignOrder(maxSignOrder);
|
modifyObj.setSignDate(new Date());
|
int i = usersDao.updateByModel(modifyObj);
|
if (i > 0) {
|
return maxSignOrder;
|
} else {
|
return 0;
|
}
|
}
|
|
@Override
|
public List<SysWorkBeatuistaff> findWorkStaff(String timeStr, Long suId) {
|
return sysWorkBeatuistaffDao.findWorkStaff(timeStr,suId);
|
}
|
}
|