|
@@ -1,25 +1,24 @@
|
|
package cn.com.qmth.examcloud.core.oe.admin.api.provider;
|
|
package cn.com.qmth.examcloud.core.oe.admin.api.provider;
|
|
|
|
|
|
import cn.com.qmth.examcloud.api.commons.exchange.PageInfo;
|
|
import cn.com.qmth.examcloud.api.commons.exchange.PageInfo;
|
|
|
|
+import cn.com.qmth.examcloud.commons.exception.StatusException;
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.ExamStatisticsCloudService;
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.ExamStatisticsCloudService;
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamCompletionBean;
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamCompletionBean;
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.request.GetExamCompletionStatisticsReq;
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.request.GetExamCompletionStatisticsReq;
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.response.GetExamCompletionStatisticsResp;
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.response.GetExamCompletionStatisticsResp;
|
|
|
|
+import cn.com.qmth.examcloud.core.oe.common.entity.ExamStudentEntity;
|
|
|
|
+import cn.com.qmth.examcloud.core.oe.common.repository.ExamStudentRepo;
|
|
import cn.com.qmth.examcloud.web.support.ControllerSupport;
|
|
import cn.com.qmth.examcloud.web.support.ControllerSupport;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
-import org.springframework.data.domain.Page;
|
|
|
|
-import org.springframework.data.domain.Pageable;
|
|
|
|
-import org.springframework.data.domain.Sort;
|
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
-import java.util.Iterator;
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
-import java.util.function.Function;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description 考试统计类
|
|
* @Description 考试统计类
|
|
@@ -32,14 +31,43 @@ import java.util.function.Function;
|
|
@RequestMapping("${$rmp.cloud.oe}/examStatistics")
|
|
@RequestMapping("${$rmp.cloud.oe}/examStatistics")
|
|
public class ExamStatisticsCloudServiceProvider extends ControllerSupport implements ExamStatisticsCloudService {
|
|
public class ExamStatisticsCloudServiceProvider extends ControllerSupport implements ExamStatisticsCloudService {
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamStudentRepo examStudentRepo;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
@ApiOperation(value = "获取考试完成情况统计信息")
|
|
@ApiOperation(value = "获取考试完成情况统计信息")
|
|
@PostMapping("/getExamCompletionStatistics")
|
|
@PostMapping("/getExamCompletionStatistics")
|
|
public GetExamCompletionStatisticsResp getExamCompletionStatistics(@RequestBody GetExamCompletionStatisticsReq req) {
|
|
public GetExamCompletionStatisticsResp getExamCompletionStatistics(@RequestBody GetExamCompletionStatisticsReq req) {
|
|
|
|
+ if (req.getPageNo()==null){
|
|
|
|
+ throw new StatusException("100001","当前页码不允许为空");
|
|
|
|
+ }
|
|
|
|
+ if (req.getPageSize()==null){
|
|
|
|
+ throw new StatusException("100002","每页条数不允许为空");
|
|
|
|
+ }
|
|
|
|
+ if (req.getRootOrgId()==null){
|
|
|
|
+ throw new StatusException("100003","学校id不允许为空");
|
|
|
|
+ }
|
|
GetExamCompletionStatisticsResp resp = new GetExamCompletionStatisticsResp();
|
|
GetExamCompletionStatisticsResp resp = new GetExamCompletionStatisticsResp();
|
|
PageInfo<ExamCompletionBeanW> examCompletionInfo = null;//TODO 调王伟接口获取
|
|
PageInfo<ExamCompletionBeanW> examCompletionInfo = null;//TODO 调王伟接口获取
|
|
PageInfo<ExamCompletionBean> pagedList = getPageInfoFrom(examCompletionInfo);
|
|
PageInfo<ExamCompletionBean> pagedList = getPageInfoFrom(examCompletionInfo);
|
|
resp.setPagedExamCompletionList(pagedList);
|
|
resp.setPagedExamCompletionList(pagedList);
|
|
|
|
+ List<ExamCompletionBean> list = pagedList.getList();
|
|
|
|
+ for (ExamCompletionBean b : list) {
|
|
|
|
+
|
|
|
|
+ List<ExamStudentEntity> examStudentList = examStudentRepo.findByExamId(b.getExamId());
|
|
|
|
+ long completeCount = 0;
|
|
|
|
+ long planCount = 0;
|
|
|
|
+ long percent = 0;
|
|
|
|
+ if (examCompletionInfo != null && !examStudentList.isEmpty()) {
|
|
|
|
+ completeCount = examStudentList.stream().filter(p -> p.getFinished()).count();
|
|
|
|
+ planCount = examStudentList.size();
|
|
|
|
+ percent = completeCount * 100 / planCount;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ b.setPlanNum(planCount);
|
|
|
|
+ b.setCompleteNum(completeCount);
|
|
|
|
+ b.setCompletePercent(percent);
|
|
|
|
+ }
|
|
return resp;
|
|
return resp;
|
|
}
|
|
}
|
|
|
|
|