|
@@ -14,13 +14,16 @@ import com.qmth.exam.reserve.service.ApplyTaskService;
|
|
|
import com.qmth.exam.reserve.service.TimePeriodExamSiteService;
|
|
|
import com.qmth.exam.reserve.service.TimePeriodService;
|
|
|
import com.qmth.exam.reserve.util.DateUtil;
|
|
|
+import com.qmth.exam.reserve.util.UnionUtil;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
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.Comparator;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -57,10 +60,16 @@ public class TimePeriodExamSiteServiceImpl extends ServiceImpl<TimePeriodExamSit
|
|
|
if (CollectionUtils.isEmpty(dateList)) {
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
- //所有的时段
|
|
|
- List<TimePeriodExamSiteBean> timePeriodList = timePeriodService.listTimePeriodByExamSiteId(taskId, examSiteId);
|
|
|
- if (CollectionUtils.isEmpty(timePeriodList)) {
|
|
|
- timePeriodList = timePeriodService.listTimePeriodByTask(taskId);
|
|
|
+ //教学点管理员设置的所有的考点时段
|
|
|
+ List<TimePeriodExamSiteBean> timePeriodExamSiteList = timePeriodService.listTimePeriodByExamSiteId(taskId, examSiteId);
|
|
|
+ //学校管理员设置的所有预约时段
|
|
|
+ List<TimePeriodExamSiteBean> timePeriodList = timePeriodService.listTimePeriodByTask(taskId);
|
|
|
+ List<TimePeriodExamSiteBean> resultList;
|
|
|
+ if (CollectionUtils.isEmpty(timePeriodExamSiteList)) {
|
|
|
+ resultList = timePeriodList;
|
|
|
+ } else {
|
|
|
+ //取并集
|
|
|
+ resultList = UnionUtil.unionByAttribute(timePeriodExamSiteList, timePeriodList, TimePeriodExamSiteBean::getTimePeriodId);
|
|
|
}
|
|
|
|
|
|
//按日期封装
|
|
@@ -68,13 +77,14 @@ public class TimePeriodExamSiteServiceImpl extends ServiceImpl<TimePeriodExamSit
|
|
|
for (String date : dateList) {
|
|
|
TimePeriodExamSiteVo timePeriodVo = new TimePeriodExamSiteVo();
|
|
|
timePeriodVo.setDateStr(getDateStr(date));
|
|
|
- timePeriodVo.setTimePeriodList(filterTimePeriod(date, timePeriodList));
|
|
|
+ timePeriodVo.setTimePeriodList(filterTimePeriod(date, resultList));
|
|
|
list.add(timePeriodVo);
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional
|
|
|
public void save(Long operateId, Long examSiteId, List<TimePeriodExamSiteReq> timePeriodExamSiteList) {
|
|
|
Long taskId = getTaskId(null);
|
|
|
//所有的时段
|
|
@@ -95,10 +105,11 @@ public class TimePeriodExamSiteServiceImpl extends ServiceImpl<TimePeriodExamSit
|
|
|
//批量保存
|
|
|
saveBatch(timePeriodExamSiteEntityList);
|
|
|
} else {
|
|
|
- //更细
|
|
|
+ //保存或更新
|
|
|
timePeriodExamSiteList.forEach(item -> {
|
|
|
TimePeriodExamSiteEntity timePeriodExamSiteEntity = new TimePeriodExamSiteEntity();
|
|
|
BeanUtils.copyProperties(item, timePeriodExamSiteEntity);
|
|
|
+ timePeriodExamSiteEntity.setExamSiteId(examSiteId);
|
|
|
timePeriodExamSiteEntity.setOperateId(operateId);
|
|
|
timePeriodExamSiteEntityList.add(timePeriodExamSiteEntity);
|
|
|
});
|
|
@@ -122,9 +133,15 @@ public class TimePeriodExamSiteServiceImpl extends ServiceImpl<TimePeriodExamSit
|
|
|
List<TimePeriodExamSiteBean> filterTimePerildList = timePeriodList.stream()
|
|
|
.filter(item -> DateUtil.getShortDateByLongTime(item.getStartTime()).equals(date))
|
|
|
.collect(Collectors.toList());
|
|
|
+
|
|
|
+ //排序
|
|
|
+ filterTimePerildList = filterTimePerildList.stream()
|
|
|
+ .sorted(Comparator.comparing(TimePeriodExamSiteBean::getStartTime))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
for (TimePeriodExamSiteBean time : filterTimePerildList) {
|
|
|
TimePeriodExamSiteInfo bean = new TimePeriodExamSiteInfo();
|
|
|
- bean.setId(bean.getId());
|
|
|
+ bean.setId(time.getId());
|
|
|
bean.setTimePeriodId(time.getTimePeriodId());
|
|
|
bean.setEnable(time.getEnable());
|
|
|
bean.setTimePeriodStr(DateUtil.getStartToEndTime(time.getStartTime(), time.getEndTime()));
|