|
@@ -1,10 +1,27 @@
|
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+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.distributed.print.business.entity.BasicSemester;
|
|
|
+import com.qmth.distributed.print.business.entity.ExamPrintPlan;
|
|
|
import com.qmth.distributed.print.business.mapper.BasicSemesterMapper;
|
|
|
import com.qmth.distributed.print.business.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.SysUser;
|
|
|
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
+import com.qmth.teachcloud.common.util.ServletUtil;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -16,5 +33,68 @@ import org.springframework.stereotype.Service;
|
|
|
*/
|
|
|
@Service
|
|
|
public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, BasicSemester> implements BasicSemesterService {
|
|
|
+ @Resource
|
|
|
+ ExamPrintPlanService examPrintPlanService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IPage<BasicSemesterResult> basicSemesterPage(Long schoolId, int pageNumber, int pageSize) {
|
|
|
+ return this.baseMapper.findBasicSemesterPage(new Page<>(pageNumber, pageSize), schoolId,null);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public Long saveBasicSemester(BasicSemesterParams basicSemesterParams) throws IllegalAccessException {
|
|
|
+ SystemConstant.verifyDBFields(basicSemesterParams,basicSemesterParams.getClass());
|
|
|
+ SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
+ Long id = basicSemesterParams.getId();
|
|
|
+ Long schoolId = sysUser.getSchoolId();
|
|
|
+ String semesterName = basicSemesterParams.getSemesterName();
|
|
|
+ Long startTime = basicSemesterParams.getStartTime();
|
|
|
+ Long endTime = basicSemesterParams.getEndTime();
|
|
|
+
|
|
|
+ // 校验学期唯一性
|
|
|
+ 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)){
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("学期名称【" + semesterName + "】重复");
|
|
|
+ }
|
|
|
+ if (SystemConstant.longNotNull(id)){
|
|
|
+ // 编辑
|
|
|
+ BasicSemester old = this.getById(id);
|
|
|
+ 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 {
|
|
|
+ // 新增
|
|
|
+ id = SystemConstant.getDbUuid();
|
|
|
+ BasicSemester basicSemester = new BasicSemester();
|
|
|
+ basicSemester.setId(id);
|
|
|
+ basicSemester.setEnable(true);
|
|
|
+ basicSemester.setName(semesterName);
|
|
|
+ basicSemester.setSchoolId(schoolId);
|
|
|
+ basicSemester.setCode(null);
|
|
|
+ basicSemester.setStartTime(startTime);
|
|
|
+ basicSemester.setEndTime(endTime);
|
|
|
+ basicSemester.setOrgId(sysUser.getOrgId());
|
|
|
+ this.save(basicSemester);
|
|
|
+ }
|
|
|
+ return id;
|
|
|
+ }
|
|
|
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public boolean deleteBasicSemesterById(Long id) {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
}
|