Forráskód Böngészése

换班修改校验

yejian016332 3 éve
szülő
commit
e9aaef9bf3

+ 26 - 7
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/classSchedule/service/impl/ScheduleUserChangeServiceImpl.java

@@ -68,16 +68,15 @@ 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){
+        ScheduleUserChange existUserSchedule = this.baseMapper.selectOne(Wraps.<ScheduleUserChange>lbQ().eq(ScheduleUserChange::getApplyTime,data.getApplyTime()).eq(ScheduleUserChange::getApplyUserId,data.getApplyUserId()));
+        if(null != existUserSchedule){
+            // 判断换班信息是否合理,
+            // 1.换班人和被让换班人不能是同一天同一班次 2.换班人其他班次不能和被换班人的日期,班次一致
+            for(long applyFrequency : data.getApplyList()){
                 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() +"]申请已存在,请重新选择");
+                    isFalse(null != exsitScheduleUserChangeDate,"当前选择的换班["+data.getChangeTime() + "-" + scheduleFrequency.getName().getData() +"]申请已存在,请重新选择");
                 }
             }
         }
@@ -100,6 +99,26 @@ public class ScheduleUserChangeServiceImpl extends SuperServiceImpl<ScheduleUser
     @Override
     @Transactional(rollbackFor = Exception.class)
     public ScheduleUserChange update(ScheduleUserChangeUpdateDTO data) {
+        ScheduleUserChange existUserSchedule = this.baseMapper.selectOne(Wraps.<ScheduleUserChange>lbQ().eq(ScheduleUserChange::getApplyTime,data.getApplyTime()).eq(ScheduleUserChange::getApplyUserId,data.getApplyUserId()));
+        if(null != existUserSchedule){
+            List<ScheduleUserChangeDate> hisUserChangeDate = scheduleUserChangeDateService.list(Wraps.<ScheduleUserChangeDate>lbQ().eq(ScheduleUserChangeDate::getChangeId,existUserSchedule.getId()).eq(ScheduleUserChangeDate::getType,"1"));
+            List<Long> changeList = hisUserChangeDate.stream().map((map) -> {
+                return map.getFrequencyId();
+            }).collect(Collectors.toList());
+
+            for(long applyFrequency : data.getApplyList()){
+                ScheduleUserChangeDate exsitScheduleUserChangeDate =  scheduleUserChangeDateService.getOne(Wraps.<ScheduleUserChangeDate>lbQ().eq(ScheduleUserChangeDate::getChangeId,existUserSchedule.getId()).eq(ScheduleUserChangeDate::getFrequencyId,applyFrequency));
+                if(null != exsitScheduleUserChangeDate && !changeList.contains(exsitScheduleUserChangeDate.getFrequencyId())){
+                    ScheduleFrequency scheduleFrequency = scheduleFrequencyService.getById(exsitScheduleUserChangeDate.getFrequencyId());
+                    isFalse(null != exsitScheduleUserChangeDate,"当前选择的换班["+data.getChangeTime() + "-" + scheduleFrequency.getName().getData() +"]申请已存在,请重新选择");
+                }
+            }
+        }
+        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);
         updateById(bean);