|
@@ -1,23 +1,17 @@
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
-import com.baomidou.mybatisplus.core.conditions.update.Update;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.qmth.distributed.print.business.bean.params.obe.cultureProgram.ObeCultureProgramDescriptionParam;
|
|
import com.qmth.distributed.print.business.bean.params.obe.cultureProgram.ObeCultureProgramDescriptionParam;
|
|
import com.qmth.distributed.print.business.bean.result.obe.cultureProgram.CultureProgramResult;
|
|
import com.qmth.distributed.print.business.bean.result.obe.cultureProgram.CultureProgramResult;
|
|
-import com.qmth.distributed.print.business.entity.ObeCultureProgram;
|
|
|
|
-import com.qmth.distributed.print.business.entity.ObeCultureProgramCourse;
|
|
|
|
-import com.qmth.distributed.print.business.entity.ObeCultureProgramRequirement;
|
|
|
|
-import com.qmth.distributed.print.business.entity.ObeCultureProgramTarget;
|
|
|
|
|
|
+import com.qmth.distributed.print.business.entity.*;
|
|
import com.qmth.distributed.print.business.mapper.ObeCultureProgramMapper;
|
|
import com.qmth.distributed.print.business.mapper.ObeCultureProgramMapper;
|
|
-import com.qmth.distributed.print.business.service.ObeCultureProgramCourseService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ObeCultureProgramRequirementService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ObeCultureProgramService;
|
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
-import com.qmth.distributed.print.business.service.ObeCultureProgramTargetService;
|
|
|
|
|
|
+import com.qmth.distributed.print.business.service.*;
|
|
import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
|
|
import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
|
|
|
|
+import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
|
|
import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
|
|
@@ -26,6 +20,8 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.util.Map;
|
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
@@ -41,10 +37,14 @@ public class ObeCultureProgramServiceImpl extends ServiceImpl<ObeCultureProgramM
|
|
@Resource
|
|
@Resource
|
|
private ObeCultureProgramTargetService obeCultureProgramTargetService;
|
|
private ObeCultureProgramTargetService obeCultureProgramTargetService;
|
|
@Resource
|
|
@Resource
|
|
|
|
+ private ObeRequirementTargetMatrixService obeRequirementTargetMatrixService;
|
|
|
|
+ @Resource
|
|
private ObeCultureProgramCourseService obeCultureProgramCourseService;
|
|
private ObeCultureProgramCourseService obeCultureProgramCourseService;
|
|
@Resource
|
|
@Resource
|
|
private ObeCultureProgramRequirementService obeCultureProgramRequirementService;
|
|
private ObeCultureProgramRequirementService obeCultureProgramRequirementService;
|
|
@Resource
|
|
@Resource
|
|
|
|
+ private ObeCourseRequirementMatrixService obeCourseRequirementMatrixService;
|
|
|
|
+ @Resource
|
|
private BasicRoleDataPermissionService basicRoleDataPermissionService;
|
|
private BasicRoleDataPermissionService basicRoleDataPermissionService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -80,14 +80,39 @@ public class ObeCultureProgramServiceImpl extends ServiceImpl<ObeCultureProgramM
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Transactional
|
|
@Override
|
|
@Override
|
|
public boolean delete(Long id) {
|
|
public boolean delete(Long id) {
|
|
- return this.removeById(id);
|
|
|
|
|
|
+ // 删除培养方案
|
|
|
|
+ this.removeById(id);
|
|
|
|
+ // 删除培养目标
|
|
|
|
+ obeCultureProgramTargetService.removeByCultureProgramId(id);
|
|
|
|
+ // 删除毕业要求
|
|
|
|
+ obeCultureProgramRequirementService.removeByCultureProgramId(id);
|
|
|
|
+ // 删除培养目标与毕业要求关系矩阵
|
|
|
|
+ obeRequirementTargetMatrixService.removeMatrixByCondition(new ObeRequirementTargetMatrix(id, null, null));
|
|
|
|
+ // 删除课程体系
|
|
|
|
+ obeCultureProgramCourseService.removeByCultureProgramId(id);
|
|
|
|
+ // 删除课程毕业要求关系矩阵
|
|
|
|
+ obeCourseRequirementMatrixService.removeMatrixByCondition(new ObeCourseRequirementMatrix(id, null, null, null));
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
|
|
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public boolean copy(Long id) {
|
|
public boolean copy(Long id) {
|
|
|
|
+ // 复制培养方案
|
|
|
|
+ Long obeCultureProgramNewId = this.copyByCultureProgramId(id);
|
|
|
|
+ // 复制课程目标
|
|
|
|
+ Map<Long, Long> targetIdMap = obeCultureProgramTargetService.copyByCultureProgramId(id, obeCultureProgramNewId);
|
|
|
|
+ // 复制毕业要求
|
|
|
|
+ Map<Long, Long> requirementIdMap = obeCultureProgramRequirementService.copyByCultureProgramId(id, obeCultureProgramNewId);
|
|
|
|
+ // 复制培养目标与毕业要求关系矩阵
|
|
|
|
+ obeRequirementTargetMatrixService.copyByCultureProgramId(id, obeCultureProgramNewId, targetIdMap, requirementIdMap);
|
|
|
|
+ // 复制课程体系
|
|
|
|
+ Map<Long, Long> courseIdMap = obeCultureProgramCourseService.copyByCultureProgramId(id, obeCultureProgramNewId);
|
|
|
|
+ // 复制课程毕业要求关系矩阵
|
|
|
|
+ obeCourseRequirementMatrixService.copyByCultureProgramId(id, obeCultureProgramNewId, requirementIdMap, courseIdMap);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -113,7 +138,8 @@ public class ObeCultureProgramServiceImpl extends ServiceImpl<ObeCultureProgramM
|
|
@Override
|
|
@Override
|
|
public void updateRequirementCount(Long cultureProgramId) {
|
|
public void updateRequirementCount(Long cultureProgramId) {
|
|
QueryWrapper<ObeCultureProgramRequirement> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<ObeCultureProgramRequirement> queryWrapper = new QueryWrapper<>();
|
|
- queryWrapper.lambda().eq(ObeCultureProgramRequirement::getCultureProgramId, cultureProgramId);
|
|
|
|
|
|
+ queryWrapper.lambda().eq(ObeCultureProgramRequirement::getCultureProgramId, cultureProgramId)
|
|
|
|
+ .isNull(ObeCultureProgramRequirement::getParentId);
|
|
|
|
|
|
UpdateWrapper<ObeCultureProgram> updateWrapper = new UpdateWrapper<>();
|
|
UpdateWrapper<ObeCultureProgram> updateWrapper = new UpdateWrapper<>();
|
|
updateWrapper.lambda().set(ObeCultureProgram::getRequirementCount, obeCultureProgramRequirementService.count(queryWrapper))
|
|
updateWrapper.lambda().set(ObeCultureProgram::getRequirementCount, obeCultureProgramRequirementService.count(queryWrapper))
|
|
@@ -139,4 +165,21 @@ public class ObeCultureProgramServiceImpl extends ServiceImpl<ObeCultureProgramM
|
|
.set(ObeCultureProgram::getDescription, obeCultureProgramDescriptionParam.getDescription());
|
|
.set(ObeCultureProgram::getDescription, obeCultureProgramDescriptionParam.getDescription());
|
|
return this.update(updateWrapper);
|
|
return this.update(updateWrapper);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Long copyByCultureProgramId(Long id) {
|
|
|
|
+ ObeCultureProgram obeCultureProgram = this.getById(id);
|
|
|
|
+ if (obeCultureProgram == null) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("培养方案不存在");
|
|
|
|
+ }
|
|
|
|
+ AtomicInteger i = new AtomicInteger(1);
|
|
|
|
+ String name = obeCultureProgram.getName() + "副本" + i.getAndIncrement();
|
|
|
|
+ while (this.getByProfessionalIdAndName(obeCultureProgram.getProfessionalId(), name) != null) {
|
|
|
|
+ name = obeCultureProgram.getName() + "副本" + i.getAndIncrement();
|
|
|
|
+ }
|
|
|
|
+ obeCultureProgram.setId(SystemConstant.getDbUuid());
|
|
|
|
+ obeCultureProgram.setName(name);
|
|
|
|
+ this.save(obeCultureProgram);
|
|
|
|
+ return obeCultureProgram.getId();
|
|
|
|
+ }
|
|
}
|
|
}
|