|
@@ -7,9 +7,11 @@ import com.github.zuihou.business.classSchedule.dao.ScheduleUserChangeMapper;
|
|
|
import com.github.zuihou.business.classSchedule.dto.ScheduleUserChangePageDTO;
|
|
|
import com.github.zuihou.business.classSchedule.dto.ScheduleUserChangeSaveDTO;
|
|
|
import com.github.zuihou.business.classSchedule.dto.ScheduleUserChangeUpdateDTO;
|
|
|
+import com.github.zuihou.business.classSchedule.entity.ScheduleFrequency;
|
|
|
import com.github.zuihou.business.classSchedule.entity.ScheduleUserChange;
|
|
|
import com.github.zuihou.business.classSchedule.entity.ScheduleUserChangeDate;
|
|
|
import com.github.zuihou.business.classSchedule.entity.ScheduleUserDate;
|
|
|
+import com.github.zuihou.business.classSchedule.service.ScheduleFrequencyService;
|
|
|
import com.github.zuihou.business.classSchedule.service.ScheduleUserChangeDateService;
|
|
|
import com.github.zuihou.business.classSchedule.service.ScheduleUserChangeService;
|
|
|
import com.github.zuihou.base.service.SuperServiceImpl;
|
|
@@ -18,6 +20,7 @@ import com.github.zuihou.business.classSchedule.service.ScheduleUserDateService;
|
|
|
import com.github.zuihou.database.mybatis.conditions.Wraps;
|
|
|
import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
|
|
|
import com.github.zuihou.injection.annonation.InjectionResult;
|
|
|
+import com.github.zuihou.security.model.SysUser;
|
|
|
import com.github.zuihou.utils.BeanPlusUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -25,7 +28,11 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.sql.Wrapper;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -46,6 +53,10 @@ public class ScheduleUserChangeServiceImpl extends SuperServiceImpl<ScheduleUser
|
|
|
|
|
|
@Autowired
|
|
|
ScheduleUserChangeDateService scheduleUserChangeDateService;
|
|
|
+ @Autowired
|
|
|
+ ScheduleUserDateService scheduleUserDateService;
|
|
|
+ @Autowired
|
|
|
+ ScheduleFrequencyService scheduleFrequencyService;
|
|
|
|
|
|
@Override
|
|
|
// 启用属性自动注入
|
|
@@ -57,6 +68,24 @@ public class ScheduleUserChangeServiceImpl extends SuperServiceImpl<ScheduleUser
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public ScheduleUserChange save(ScheduleUserChangeSaveDTO data) {
|
|
|
+
|
|
|
+ // 判断换班信息是否合理,
|
|
|
+ // 1.换班人和被让换班人不能是同一天同一班次 2.换班人其他班次不能和被换班人的日期,班次一致
|
|
|
+ for(long applyFrequency : data.getApplyList()){
|
|
|
+ ScheduleUserChange existUserSchedule = this.baseMapper.selectOne(Wraps.<ScheduleUserChange>lbQ().eq(ScheduleUserChange::getApplyTime,data.getApplyTime()).eq(ScheduleUserChange::getApplyUserId,data.getApplyUserId()));
|
|
|
+ if(null != existUserSchedule){
|
|
|
+ ScheduleUserChangeDate exsitScheduleUserChangeDate = scheduleUserChangeDateService.getOne(Wraps.<ScheduleUserChangeDate>lbQ().eq(ScheduleUserChangeDate::getChangeId,existUserSchedule.getId()).eq(ScheduleUserChangeDate::getFrequencyId,applyFrequency));
|
|
|
+ if(null != exsitScheduleUserChangeDate){
|
|
|
+ ScheduleFrequency scheduleFrequency = scheduleFrequencyService.getById(exsitScheduleUserChangeDate.getFrequencyId());
|
|
|
+ isFalse(null != exsitScheduleUserChangeDate,"当前选择的换班["+data.getChangeTime() + "-" + scheduleFrequency.getName().getKey() +"]申请已存在,请重新选择");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(long changeFrequency : data.getChangeList()){
|
|
|
+ List<ScheduleUserDate> userScheduleUserDate = scheduleUserDateService.list(Wraps.<ScheduleUserDate>lbQ().eq(ScheduleUserDate::getDate,data.getChangeTime()).eq(ScheduleUserDate::getUserId,data.getApplyUserId()).eq(ScheduleUserDate::getFrequencyId,changeFrequency));
|
|
|
+ isFalse(userScheduleUserDate.size() > 0,"更换班表不能选择自己排班的班次");
|
|
|
+ }
|
|
|
+
|
|
|
ScheduleUserChange bean = BeanPlusUtil.toBean(data, ScheduleUserChange.class);
|
|
|
save(bean);
|
|
|
|
|
@@ -108,7 +137,7 @@ public class ScheduleUserChangeServiceImpl extends SuperServiceImpl<ScheduleUser
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public ScheduleUserChange updateStatus(ScheduleUserChangeUpdateDTO data) {
|
|
|
+ public ScheduleUserChange updateStatus(ScheduleUserChangeUpdateDTO data, SysUser sysUser) {
|
|
|
ScheduleUserChange oriScheduleUserChange = this.getById(data.getId());
|
|
|
String auditStatus = data.getAuditStatus();
|
|
|
String oriStatus = oriScheduleUserChange.getAuditStatus();
|
|
@@ -136,17 +165,27 @@ public class ScheduleUserChangeServiceImpl extends SuperServiceImpl<ScheduleUser
|
|
|
}
|
|
|
}
|
|
|
ScheduleUserChange bean = BeanPlusUtil.toBean(data, ScheduleUserChange.class);
|
|
|
+ if("2".equals(auditStatus)||"3".equals(auditStatus)){
|
|
|
+ bean.setAuditUser(sysUser.getId());
|
|
|
+ bean.setAuditTime(LocalDateTime.now());
|
|
|
+ }
|
|
|
updateById(bean);
|
|
|
return bean;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public Boolean delete(ScheduleUserChange model) {
|
|
|
+ public Boolean delete(List<Long> ids) {
|
|
|
+ for(long changeId : ids){
|
|
|
+ ScheduleUserChange oriScheduleUserChange = this.getById(changeId);
|
|
|
+ String oriStatus = oriScheduleUserChange.getAuditStatus();
|
|
|
+ isFalse("2".equals(oriStatus),"该换班申请已经审核通过,不能删除");
|
|
|
|
|
|
- //删除换班明细班次表
|
|
|
- scheduleUserChangeDateService.remove(Wraps.<ScheduleUserChangeDate>lbQ().eq(ScheduleUserChangeDate::getChangeId,model.getId()));
|
|
|
+ //删除换班明细班次表
|
|
|
+ scheduleUserChangeDateService.remove(Wraps.<ScheduleUserChangeDate>lbQ().eq(ScheduleUserChangeDate::getChangeId,changeId));
|
|
|
|
|
|
- return removeById(model.getId());
|
|
|
+ return removeById(changeId);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
}
|
|
|
}
|