|
@@ -13,10 +13,12 @@ import com.google.common.collect.ImmutableMap;
|
|
import com.google.gson.reflect.TypeToken;
|
|
import com.google.gson.reflect.TypeToken;
|
|
import com.qmth.distributed.print.business.bean.dto.ExamStudentDto;
|
|
import com.qmth.distributed.print.business.bean.dto.ExamStudentDto;
|
|
import com.qmth.distributed.print.business.service.BasicExamStudentService;
|
|
import com.qmth.distributed.print.business.service.BasicExamStudentService;
|
|
|
|
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.*;
|
|
import com.qmth.teachcloud.common.entity.*;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.service.BasicCourseService;
|
|
import com.qmth.teachcloud.common.service.BasicCourseService;
|
|
|
|
+import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
|
|
import com.qmth.teachcloud.common.service.BasicSemesterService;
|
|
import com.qmth.teachcloud.common.service.BasicSemesterService;
|
|
import com.qmth.teachcloud.common.service.SysOrgService;
|
|
import com.qmth.teachcloud.common.service.SysOrgService;
|
|
import com.qmth.teachcloud.common.util.GsonUtil;
|
|
import com.qmth.teachcloud.common.util.GsonUtil;
|
|
@@ -105,7 +107,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
BasicExamStudentService basicExamStudentService;
|
|
BasicExamStudentService basicExamStudentService;
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
- TCUsualScoreService tcUsualScoreService;
|
|
|
|
|
|
+ BasicRoleDataPermissionService basicRoleDataPermissionService;
|
|
|
|
|
|
protected static final String tbBgColor = "F2F2F2";
|
|
protected static final String tbBgColor = "F2F2F2";
|
|
protected static final String tbPercentWidth = "100%";
|
|
protected static final String tbPercentWidth = "100%";
|
|
@@ -118,24 +120,13 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
* @param courseId courseId
|
|
* @param courseId courseId
|
|
* @param paperNumber paperNumber
|
|
* @param paperNumber paperNumber
|
|
* @param examId
|
|
* @param examId
|
|
- * @param createId
|
|
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
- public List<TRBasicInfo> queryBasicInfo(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long createId) {
|
|
|
|
- QueryWrapper<TRBasicInfo> queryWrapper = new QueryWrapper<>();
|
|
|
|
- queryWrapper.lambda().eq(TRBasicInfo::getCultureProgramId, cultureProgramId)
|
|
|
|
- .eq(TRBasicInfo::getCourseId, courseId);
|
|
|
|
- if (Objects.nonNull(paperNumber)) {
|
|
|
|
- queryWrapper.lambda().and(w -> w.eq(TRBasicInfo::getPaperNumber, paperNumber).or().isNull(TRBasicInfo::getPaperNumber));
|
|
|
|
- }
|
|
|
|
- if (Objects.nonNull(examId)) {
|
|
|
|
- queryWrapper.lambda().eq(TRBasicInfo::getExamId, examId);
|
|
|
|
- }
|
|
|
|
- if (Objects.nonNull(createId)) {
|
|
|
|
- queryWrapper.lambda().eq(TRBasicInfo::getCreateId, createId);
|
|
|
|
- }
|
|
|
|
- return trBasicInfoService.list(queryWrapper);
|
|
|
|
|
|
+ public List<TRBasicInfo> queryBasicInfo(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
|
|
|
|
+ SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
|
+ DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
|
|
|
|
+ return this.baseMapper.queryBasicInfo(cultureProgramId, courseId, paperNumber, examId, dpr);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -147,7 +138,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public ReportScoreViewDto getScoreList(TRBasicInfo trBasicInfo, MarkPaper markPaper) {
|
|
public ReportScoreViewDto getScoreList(TRBasicInfo trBasicInfo, MarkPaper markPaper) {
|
|
- FinalScoreDto finalScoreDto = tcFinalScoreService.finalScoreScoreOverView(trBasicInfo.getExamId(), trBasicInfo.getPaperNumber(), trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId(), trBasicInfo.getTeachClassName(), trBasicInfo.getCreateId());
|
|
|
|
|
|
+ FinalScoreDto finalScoreDto = tcFinalScoreService.finalScoreScoreOverView(trBasicInfo.getExamId(), trBasicInfo.getPaperNumber(), trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId(), trBasicInfo.getTeachClassName(), Objects.nonNull(trBasicInfo.getCreateId()) && trBasicInfo.getCreateId().longValue() != -1 ? trBasicInfo.getCreateId() : null);
|
|
Objects.requireNonNull(finalScoreDto, "未找到期末成绩分数信息");
|
|
Objects.requireNonNull(finalScoreDto, "未找到期末成绩分数信息");
|
|
|
|
|
|
if (finalScoreDto.getStudentCount() == 0) {
|
|
if (finalScoreDto.getStudentCount() == 0) {
|
|
@@ -186,7 +177,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
public Map<String, Object> getReportCalculateParams(TRBasicInfo trBasicInfo, List<PaperStructDimensionResult> paperStructDimensionResultList, ObeCourseWeightResult obeCourseWeightResult) {
|
|
public Map<String, Object> getReportCalculateParams(TRBasicInfo trBasicInfo, List<PaperStructDimensionResult> paperStructDimensionResultList, ObeCourseWeightResult obeCourseWeightResult) {
|
|
Map<String, Object> paramsMap = new HashMap<>();
|
|
Map<String, Object> paramsMap = new HashMap<>();
|
|
//查询考生数据
|
|
//查询考生数据
|
|
- List<FinalScoreResult> finalScoreResultList = tcFinalScoreService.examStudentOverview(trBasicInfo.getExamId(), trBasicInfo.getPaperNumber(), trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId(), trBasicInfo.getTeachClassName(), trBasicInfo.getCreateId());//考生成绩
|
|
|
|
|
|
+ List<FinalScoreResult> finalScoreResultList = tcFinalScoreService.examStudentOverview(trBasicInfo.getExamId(), trBasicInfo.getPaperNumber(), trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId(), trBasicInfo.getTeachClassName(), Objects.nonNull(trBasicInfo.getCreateId()) && trBasicInfo.getCreateId().longValue() != -1 ? trBasicInfo.getCreateId() : null);//考生成绩
|
|
if (CollectionUtils.isEmpty(finalScoreResultList)) {
|
|
if (CollectionUtils.isEmpty(finalScoreResultList)) {
|
|
throw ExceptionResultEnum.ERROR.exception("成绩数据异常,平时成绩与期末成绩里考生名单不一致,请检查");
|
|
throw ExceptionResultEnum.ERROR.exception("成绩数据异常,平时成绩与期末成绩里考生名单不一致,请检查");
|
|
}
|
|
}
|
|
@@ -885,12 +876,11 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
* @param courseId
|
|
* @param courseId
|
|
* @param paperNumber
|
|
* @param paperNumber
|
|
* @param examId
|
|
* @param examId
|
|
- * @param createId
|
|
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
@Transactional
|
|
@Transactional
|
|
- public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long createId) {
|
|
|
|
|
|
+ public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
|
|
QueryWrapper<TRBasicInfo> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<TRBasicInfo> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.lambda().eq(TRBasicInfo::getCultureProgramId, cultureProgramId)
|
|
queryWrapper.lambda().eq(TRBasicInfo::getCultureProgramId, cultureProgramId)
|
|
.eq(TRBasicInfo::getCourseId, courseId);
|
|
.eq(TRBasicInfo::getCourseId, courseId);
|
|
@@ -900,9 +890,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
if (Objects.nonNull(examId)) {
|
|
if (Objects.nonNull(examId)) {
|
|
queryWrapper.lambda().eq(TRBasicInfo::getExamId, examId);
|
|
queryWrapper.lambda().eq(TRBasicInfo::getExamId, examId);
|
|
}
|
|
}
|
|
- if (Objects.nonNull(createId)) {
|
|
|
|
- queryWrapper.lambda().eq(TRBasicInfo::getCreateId, createId);
|
|
|
|
- }
|
|
|
|
return trBasicInfoService.remove(queryWrapper);
|
|
return trBasicInfoService.remove(queryWrapper);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -978,8 +965,8 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
@Transactional
|
|
@Transactional
|
|
public void clearReportData(Long cultureProgramId, Long courseId, String paperNumber, Long examId, boolean clearDimension) {
|
|
public void clearReportData(Long cultureProgramId, Long courseId, String paperNumber, Long examId, boolean clearDimension) {
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
- trExamStudentService.remove(cultureProgramId, courseId, paperNumber, examId, null);
|
|
|
|
- trBasicInfoService.remove(cultureProgramId, courseId, paperNumber, examId, null);
|
|
|
|
|
|
+ trExamStudentService.remove(cultureProgramId, courseId, paperNumber, examId);
|
|
|
|
+ trBasicInfoService.remove(cultureProgramId, courseId, paperNumber, examId);
|
|
if (clearDimension) {
|
|
if (clearDimension) {
|
|
TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(cultureProgramId, courseId, paperNumber, examId);
|
|
TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(cultureProgramId, courseId, paperNumber, examId);
|
|
if (Objects.nonNull(tcPaperStruct)) {
|
|
if (Objects.nonNull(tcPaperStruct)) {
|
|
@@ -1242,7 +1229,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
protected ScoreRangeVo getScoreRangeVo(int toltal, Long examId, String paperNumber, Long cultureProgramId, Long courseId, Double start, Double end, String teachClassName, Long userId) {
|
|
protected ScoreRangeVo getScoreRangeVo(int toltal, Long examId, String paperNumber, Long cultureProgramId, Long courseId, Double start, Double end, String teachClassName, Long userId) {
|
|
- int count = tcFinalScoreService.getCountByScoreRange(examId, paperNumber, cultureProgramId, courseId, start, end, teachClassName, userId);
|
|
|
|
|
|
+ int count = tcFinalScoreService.getCountByScoreRange(examId, paperNumber, cultureProgramId, courseId, start, end, teachClassName, Objects.nonNull(userId) && userId.longValue() != -1 ? userId : null);
|
|
Double rate = null;
|
|
Double rate = null;
|
|
if (toltal != 0) {
|
|
if (toltal != 0) {
|
|
rate = new BigDecimal(count).divide(new BigDecimal(toltal), 4, BigDecimal.ROUND_HALF_UP).multiply(SystemConstant.PERCENT).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
rate = new BigDecimal(count).divide(new BigDecimal(toltal), 4, BigDecimal.ROUND_HALF_UP).multiply(SystemConstant.PERCENT).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|