|
@@ -5,23 +5,25 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.qmth.teachcloud.common.entity.BasicSemester;
|
|
|
import com.qmth.distributed.print.business.entity.ExamPrintPlan;
|
|
|
import com.qmth.distributed.print.business.mapper.BasicSemesterMapper;
|
|
|
-import com.qmth.teachcloud.common.service.BasicSemesterService;
|
|
|
import com.qmth.distributed.print.business.service.ExamPrintPlanService;
|
|
|
import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
|
|
|
import com.qmth.teachcloud.common.bean.result.BasicSemesterResult;
|
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
+import com.qmth.teachcloud.common.entity.BasicSemester;
|
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
+import com.qmth.teachcloud.common.service.BasicSemesterService;
|
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -38,13 +40,13 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
|
|
|
|
|
|
@Override
|
|
|
public IPage<BasicSemesterResult> basicSemesterPage(Long schoolId, int pageNumber, int pageSize) {
|
|
|
- return this.baseMapper.findBasicSemesterPage(new Page<>(pageNumber, pageSize), schoolId,null);
|
|
|
+ return this.baseMapper.findBasicSemesterPage(new Page<>(pageNumber, pageSize), schoolId, null);
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
public Long saveBasicSemester(BasicSemesterParams basicSemesterParams) throws IllegalAccessException {
|
|
|
- SystemConstant.verifyDBFields(basicSemesterParams,basicSemesterParams.getClass());
|
|
|
+ SystemConstant.verifyDBFields(basicSemesterParams, basicSemesterParams.getClass());
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
Long id = basicSemesterParams.getId();
|
|
|
Long schoolId = sysUser.getSchoolId();
|
|
@@ -54,24 +56,24 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
|
|
|
|
|
|
// 校验学期唯一性
|
|
|
BasicSemester checkName = this.getOne(new QueryWrapper<BasicSemester>().lambda()
|
|
|
- .eq(BasicSemester::getEnable,true)
|
|
|
- .eq(BasicSemester::getSchoolId,schoolId)
|
|
|
- .eq(BasicSemester::getName,semesterName));
|
|
|
- if (Objects.nonNull(checkName) && !checkName.getId().equals(id)){
|
|
|
+ .eq(BasicSemester::getEnable, true)
|
|
|
+ .eq(BasicSemester::getSchoolId, schoolId)
|
|
|
+ .eq(BasicSemester::getName, semesterName));
|
|
|
+ if (Objects.nonNull(checkName) && !checkName.getId().equals(id)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("学期名称【" + semesterName + "】重复");
|
|
|
}
|
|
|
- if (SystemConstant.longNotNull(id)){
|
|
|
+ if (SystemConstant.longNotNull(id)) {
|
|
|
// 编辑
|
|
|
BasicSemester old = this.getById(id);
|
|
|
- if (Objects.isNull(old) || old.getEnable().equals(false)){
|
|
|
+ if (Objects.isNull(old) || old.getEnable().equals(false)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("所选学期不存在或被禁用");
|
|
|
}
|
|
|
this.update(new UpdateWrapper<BasicSemester>().lambda()
|
|
|
- .eq(BasicSemester::getId,id)
|
|
|
- .set(BasicSemester::getName,semesterName)
|
|
|
- .set(BasicSemester::getStartTime,startTime)
|
|
|
- .set(BasicSemester::getEndTime,endTime));
|
|
|
- }else {
|
|
|
+ .eq(BasicSemester::getId, id)
|
|
|
+ .set(BasicSemester::getName, semesterName)
|
|
|
+ .set(BasicSemester::getStartTime, startTime)
|
|
|
+ .set(BasicSemester::getEndTime, endTime));
|
|
|
+ } else {
|
|
|
// 新增
|
|
|
id = SystemConstant.getDbUuid();
|
|
|
BasicSemester basicSemester = new BasicSemester();
|
|
@@ -83,6 +85,7 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
|
|
|
basicSemester.setStartTime(startTime);
|
|
|
basicSemester.setEndTime(endTime);
|
|
|
basicSemester.setOrgId(sysUser.getOrgId());
|
|
|
+ basicSemester.setInUsed(false);
|
|
|
this.save(basicSemester);
|
|
|
}
|
|
|
return id;
|
|
@@ -91,10 +94,41 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
|
|
|
@Transactional
|
|
|
@Override
|
|
|
public boolean deleteBasicSemesterById(Long id) {
|
|
|
- List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(new QueryWrapper<ExamPrintPlan>().lambda().eq(ExamPrintPlan::getSemesterId,id));
|
|
|
- if (examPrintPlanList.size() > 0){
|
|
|
+ List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(new QueryWrapper<ExamPrintPlan>().lambda().eq(ExamPrintPlan::getSemesterId, id));
|
|
|
+ if (examPrintPlanList.size() > 0) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("印刷计划中已使用了该学期,不能删除");
|
|
|
}
|
|
|
return this.removeById(id);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<BasicSemester> list(Long schoolId, Boolean inUsed) {
|
|
|
+ QueryWrapper<BasicSemester> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(BasicSemester::getSchoolId, schoolId).eq(BasicSemester::getEnable, true);
|
|
|
+ if (Objects.nonNull(inUsed)) {
|
|
|
+ queryWrapper.lambda().eq(BasicSemester::getInUsed, inUsed);
|
|
|
+ }
|
|
|
+ return this.list(queryWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public boolean setInUsed(Long id) {
|
|
|
+ BasicSemester semester = this.getById(id);
|
|
|
+ // 只能设置一个当前使用学期
|
|
|
+ if(!semester.getInUsed()){
|
|
|
+ QueryWrapper<BasicSemester> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(BasicSemester::getSchoolId, semester.getSchoolId());
|
|
|
+ List<BasicSemester> list = this.list(queryWrapper);
|
|
|
+ if(!CollectionUtils.isEmpty(list)) {
|
|
|
+ list = list.stream().map(m -> {
|
|
|
+ m.setInUsed(false);
|
|
|
+ return m;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ this.updateBatchById(list);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ semester.setInUsed(!semester.getInUsed());
|
|
|
+ return this.updateById(semester);
|
|
|
+ }
|
|
|
}
|