|
@@ -35,12 +35,14 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysRole;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUserAgreementHistory;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDrugQuizRelation;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmPkgQuizRelation;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmPlatformQuizTestResult;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmQuiz;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.dto.UserUpdateInput;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.model.WmQuizResultModel;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.PersonalScoreRecordVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.UserBusinessCardVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
|
|
@@ -99,6 +101,7 @@ import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaPharmacyService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmDrugQuizRelationService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmFeedbackService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmPkgQuizRelationService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmPlatformQuizTestResultService;
|
|
@@ -252,6 +255,7 @@ public class ApiController {
|
|
|
private final WmPlatformQuizTestResultService platformQuizTestResultService;
|
|
|
private final ApplicationEventPublisher applicationEventPublisher;
|
|
|
private final SysUserAgreementHistoryService userAgreementHistoryService;
|
|
|
+ private final WmDrugQuizRelationService drugQuizRelationService;
|
|
|
|
|
|
/**
|
|
|
* 通过任务类型获取表单配置
|
|
@@ -389,18 +393,32 @@ public class ApiController {
|
|
|
map.put("value", wmScorePackage.getId());
|
|
|
String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrPool.COMMA, wmScorePackage.getDrugProducerList());
|
|
|
map.put("drugProducer", drugProducer);
|
|
|
- map.put("drugTableIds", wmScorePackage.getDrugtable());
|
|
|
- if (ArrayUtil.isNotEmpty(wmScorePackage.getDrugtable())) {
|
|
|
- List<WmDaDrugEntDrugtable> drugtables =
|
|
|
- wmDaDrugEntDrugtableService.list(Wrappers.<WmDaDrugEntDrugtable>lambdaQuery().in(WmDaDrugEntDrugtable::getId,
|
|
|
- Arrays.stream(wmScorePackage.getDrugtable()).collect(Collectors.toSet())));
|
|
|
+
|
|
|
+ List<String> drugIds = Arrays.stream(wmScorePackage.getDrugtable()).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ map.put("drugTableIds", drugIds);
|
|
|
+
|
|
|
+ List<Integer> pkgQuizIds = new LinkedList<>();
|
|
|
+ if (ArrayUtil.isNotEmpty(drugIds)) {
|
|
|
+
|
|
|
+ // 获取药品绑定的试卷
|
|
|
+ List<WmDrugQuizRelation> relations = drugQuizRelationService.list(Wrappers.<WmDrugQuizRelation>lambdaQuery().in(WmDrugQuizRelation::getDrugId, drugIds));
|
|
|
+
|
|
|
+ Map<Integer, List<WmDrugQuizRelation>> drugIdToQuizzes = relations.stream().collect(Collectors.groupingBy(WmDrugQuizRelation::getDrugId));
|
|
|
+
|
|
|
+
|
|
|
+ List<WmDaDrugEntDrugtable> drugtables = wmDaDrugEntDrugtableService.list(Wrappers.<WmDaDrugEntDrugtable>lambdaQuery().in(WmDaDrugEntDrugtable::getId, drugIds));
|
|
|
|
|
|
if (CollUtil.isNotEmpty(drugtables)) {
|
|
|
- List<Map<String, String>> drugMap = drugtables.stream().map(drug -> {
|
|
|
- Map<String, String> res = new HashMap<>(3);
|
|
|
+ List<Map<String, Object>> drugMap = drugtables.stream().map(drug -> {
|
|
|
+ Map<String, Object> res = new HashMap<>(3);
|
|
|
res.put("drugId", drug.getId());
|
|
|
res.put("drugName", drug.getDrugname());
|
|
|
res.put("drugPordName", drug.getDrugnameTy());
|
|
|
+ List<WmDrugQuizRelation> quizRelations = drugIdToQuizzes.get(Integer.valueOf(drug.getId()));
|
|
|
+ List<Integer> quizIds = CollUtil.isEmpty(quizRelations) ? Collections.emptyList() : quizRelations.stream().mapToInt(WmDrugQuizRelation::getQuizId).boxed().distinct().collect(Collectors.toList());
|
|
|
+ res.put("quizIds", quizIds);
|
|
|
+ pkgQuizIds.addAll(quizIds);
|
|
|
return res;
|
|
|
}).collect(Collectors.toList());
|
|
|
map.put("drugTable", drugMap);
|
|
@@ -411,7 +429,7 @@ public class ApiController {
|
|
|
} else {
|
|
|
map.put("drugTable", Collections.emptyMap());
|
|
|
}
|
|
|
-
|
|
|
+ map.put("pkgQuizIds", pkgQuizIds);
|
|
|
|
|
|
listMap.add(map);
|
|
|
}
|
|
@@ -3928,7 +3946,7 @@ public class ApiController {
|
|
|
.collect(Collectors.groupingBy(WmPlatformQuizTestResult::getQuizId));
|
|
|
LocalDate today = LocalDate.now();
|
|
|
for (WmQuiz quiz : quizzes) {
|
|
|
- Map<String, Object> history = new HashMap<>(3);
|
|
|
+ Map<String, Object> history = new HashMap<>(4);
|
|
|
|
|
|
// 存在历史答题记录
|
|
|
Integer finalMark = null;
|
|
@@ -3957,10 +3975,66 @@ public class ApiController {
|
|
|
vo.setTestResults(histories);
|
|
|
|
|
|
return R.ok(vo);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取当前用户的平台试题测试结果
|
|
|
+ *
|
|
|
+ * @return 平台测试结果信息
|
|
|
+ */
|
|
|
+ @GetMapping(value = "/quiz/plt/test/result/grouping")
|
|
|
+ public R<Map<String, List<Integer>>> checkPlatQuizTestResult1() {
|
|
|
+
|
|
|
+ // 获取用户信息
|
|
|
+ HnqzUser user = SecurityUtils.getUser();
|
|
|
+
|
|
|
+ // 获取平台的问卷 和 答题的情况
|
|
|
+ List<WmQuiz> quizzes = quizService.listEntQuizzes(upmsConfig.getPltEntId(), UpmsState.QuizState.RELEASE);
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(quizzes)) {
|
|
|
+ return R.ok(Collections.emptyMap());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ List<Integer> quizIds = quizzes.stream().mapToInt(WmQuiz::getQuizId).boxed().distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ Map<Integer, List<WmPlatformQuizTestResult>> collect =
|
|
|
+ platformQuizTestResultService.listPltQuizResults(user.getId(), quizIds).stream()
|
|
|
+ .collect(Collectors.groupingBy(WmPlatformQuizTestResult::getQuizId));
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, List<Integer>> histories = new HashMap<>(2);
|
|
|
+
|
|
|
+ List<Integer> passed = new LinkedList<>();
|
|
|
+ List<Integer> failed = new LinkedList<>();
|
|
|
+
|
|
|
+ quizIds.forEach(id -> {
|
|
|
+
|
|
|
+ List<WmPlatformQuizTestResult> wmPlatformQuizTestResults = collect.get(id);
|
|
|
+ if (CollUtil.isEmpty(wmPlatformQuizTestResults)) {
|
|
|
+ failed.add(id);
|
|
|
+ } else {
|
|
|
+ WmPlatformQuizTestResult wmPlatformQuizTestResult = wmPlatformQuizTestResults.get(0);
|
|
|
+ WmQuizResultModel quizResult = wmPlatformQuizTestResult.getQuizResult();
|
|
|
+
|
|
|
+ if (quizResult.getFinalMark() - quizResult.getPassingMark() >= 0) {
|
|
|
+ passed.add(id);
|
|
|
+ } else {
|
|
|
+ failed.add(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ histories.put("passed", passed);
|
|
|
+ histories.put("failed", failed);
|
|
|
+
|
|
|
+ return R.ok(histories);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 用户保存平台试卷测试结果
|
|
|
*
|