From ef32ca8ced9c90e172fec9c876b0f122c47f222f Mon Sep 17 00:00:00 2001
From: yn147 <2270338776@qq.com>
Date: 星期四, 01 六月 2023 16:18:03 +0800
Subject: [PATCH] 问卷管理的多个查询

---
 src/main/java/com/qxueyou/scc/evaluate/service/impl/EvaluateService.java |  131 ++++++++++++++++++++++++++++---------------
 1 files changed, 84 insertions(+), 47 deletions(-)

diff --git a/src/main/java/com/qxueyou/scc/evaluate/service/impl/EvaluateService.java b/src/main/java/com/qxueyou/scc/evaluate/service/impl/EvaluateService.java
index 374a9fe..7fa99d3 100644
--- a/src/main/java/com/qxueyou/scc/evaluate/service/impl/EvaluateService.java
+++ b/src/main/java/com/qxueyou/scc/evaluate/service/impl/EvaluateService.java
@@ -2,13 +2,12 @@
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
+import com.querydsl.core.types.dsl.StringPath;
+import com.qxueyou.scc.admin.classes.model.ClsClass;
+import com.qxueyou.scc.teach.res.model.Res;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
@@ -102,7 +101,6 @@
 		QStuStudent stuStudent = QStuStudent.stuStudent;
 		// 鎼滅储鍚�
 		keyword = StringUtils.isBlank(keyword) ? null : "%"+keyword+"%";
-
 			// 鑾峰彇鏌ヨ缁撴灉闆嗗悎
 			QueryResults<Tuple> results = this.getQueryFactory()
 					.select(qEva, group, subject)
@@ -118,21 +116,20 @@
 					)
 					.orderBy(qEva.createTime.desc())
 					.fetchResults();
-			QueryResults<Tuple> results2 = this.getQueryFactory()
-					.select(qEva, group, clsClass)
-					.from(qEva, template, group, clsClass)
-					.where(new QueryDslOptionBuilder()
-							.and(qEva.evalTemplateId::eq, template.evaluateTemplateId)
-							.and(template.groupId::eq, group.groupId)
-							.and(qEva.evalRangeId::like, clsClass.classId)
-							.and(qEva.createId::eq, ClientUtils.getUserId())
-							.and(qEva.evaluateName::like, keyword)
-							.and(qEva.deleteFlag::eq, false)
-							.build()
-					)
-					.orderBy(qEva.createTime.desc())
-					.fetchResults();
-
+//		QueryResults<Tuple> results2 = this.getQueryFactory()
+//					.select(qEva, group, clsClass)
+//					.from(qEva, template, group, clsClass)
+//					.where(new QueryDslOptionBuilder()
+//							.and(qEva.evalTemplateId::eq, template.evaluateTemplateId)
+//							.and(template.groupId::eq, group.groupId)
+//							.and(qEva.evalRangeId::like,clsClass.classId)//qEva.evalRangeId::like, clsClass.classId
+//							.and(qEva.createId::eq, ClientUtils.getUserId())
+//							.and(qEva.evaluateName::like, keyword)
+//							.and(qEva.deleteFlag::eq, false)
+//							.build()
+//					)
+//					.orderBy(qEva.createTime.desc())
+//					.fetchResults();
 			QueryResults<Tuple> results3 = this.getQueryFactory()
 					.select(qEva, group, stuStudent)
 					.from(qEva, template, group, stuStudent)
@@ -147,7 +144,48 @@
 					)
 					.orderBy(qEva.createTime.desc())
 					.fetchResults();
-			// 灏佽鍙傛暟
+				Map<String, Object> args = null;
+				String hql = "select s.evaluateId,s.evaluateName,s.evalRangeId,s.evalRangeType,s.evalRangeName,s.evalRangeCount,s.evalObjectName,s.status,s.endTime,s.createTime,e.groupId,s.evaluateCount " +
+				"from SchEvaluate as s,SchEvaluateTemplate as t,ExerciseGroup as e,ClsClass as c  " +
+				"where s.evalTemplateId =t.evaluateTemplateId  and  e.groupId =t.groupId and find_in_set(c.classId,s.evalRangeId)>0";
+				if(keyword != null){
+					hql = hql+" and s.evaluateName like:evaluateName";
+					args = CollectionUtils.newObjectMap("evaluateName", keyword);
+				}
+				hql = hql+" and s.deleteFlag is false group by s.evaluateId";
+		List<Map<String, Object>> results2 = findListWithMapByHql(hql, args);
+		for (Map<String, Object> map: results2) {
+			map.put("evaluateId", map.get("0"));
+			map.put("evaluateName", map.get("1"));
+			map.put("evalRangeId", map.get("2"));
+			map.put("evalRangeType", map.get("3"));
+			map.put("evalRangeName", map.get("4"));
+			map.put("evalRangeCount", map.get("5"));
+			map.put("evalObjectName", map.get("6"));
+			map.put("status", map.get("7"));
+			map.put("endTime", map.get("8"));
+			map.put("createTime", map.get("9"));
+			map.put("groupId", map.get("10"));
+			map.put("exerCount", map.get("11"));
+			map.remove(map.get("1"));
+			map.remove("0");
+			map.remove("1");
+			map.remove("2");
+			map.remove("3");
+			map.remove("4");
+			map.remove("5");
+			map.remove("6");
+			map.remove("7");
+			map.remove("8");
+			map.remove("9");
+			map.remove("10");
+			map.remove("11");
+//			map.put("exerCount", tuple.get(group).getAllCount());
+//			map.put("evaluateCount", this.getEvaluateCount(tuple.get(qEva).getEvaluateId()));//宸茶瘎浼颁汉鏁�
+//			map.put("evaluateAllCount", this
+//					.queryEvaluateAllCount(tuple.get(qEva).getEvalRangeType(), tuple.get(qEva).getEvalRangeId().split(",")));//搴旇瘎浼颁汉鏁�
+		}
+		// 灏佽鍙傛暟
 			List<Map<String, Object>> resultLst =
 					results.getResults()
 							.stream()
@@ -170,29 +208,28 @@
 										.queryEvaluateAllCount(tuple.get(qEva).getEvalRangeType(), tuple.get(qEva).getEvalRangeId().split(",")));//搴旇瘎浼颁汉鏁�
 								return map;
 							}).collect(Collectors.toList());
-
-			resultLst.addAll(
-					results2.getResults()
-							.stream()
-							.map(tuple -> {
-								Map<String, Object> map = new HashMap<String, Object>(2);
-								map.put("evaluateId", tuple.get(qEva).getEvaluateId());
-								map.put("evaluateName", tuple.get(qEva).getEvaluateName());
-								map.put("evalRangeId", tuple.get(qEva).getEvalRangeId());
-								map.put("evalRangeType", tuple.get(qEva).getEvalRangeType());
-								map.put("evalRangeName", tuple.get(clsClass).getName());
-								map.put("evalRangeCount", tuple.get(qEva).getEvalRangeCount());
-								map.put("evalObjectName", tuple.get(qEva).getEvalObjectName());
-								map.put("status", tuple.get(qEva).getStatus());
-								map.put("endTime", tuple.get(qEva).getEndTime());
-								map.put("createTime", tuple.get(qEva).getCreateTime());
-								map.put("groupId", tuple.get(group).getGroupId());
-								map.put("exerCount", tuple.get(group).getAllCount());
-								map.put("evaluateCount", this.getEvaluateCount(tuple.get(qEva).getEvaluateId()));//宸茶瘎浼颁汉鏁�
-								map.put("evaluateAllCount", this
-										.queryEvaluateAllCount(tuple.get(qEva).getEvalRangeType(), tuple.get(qEva).getEvalRangeId().split(",")));//搴旇瘎浼颁汉鏁�
-								return map;
-							}).collect(Collectors.toList()));
+//			resultLst.addAll(
+//					results2.getResults()
+//							.stream()
+//							.map(tuple -> {
+//								Map<String, Object> map = new HashMap<String, Object>(2);
+//									map.put("evaluateId", tuple.get(qEva).getEvaluateId());
+//									map.put("evaluateName", tuple.get(qEva).getEvaluateName());
+//									map.put("evalRangeId", tuple.get(qEva).getEvalRangeId());
+//									map.put("evalRangeType", tuple.get(qEva).getEvalRangeType());
+//									map.put("evalRangeName", tuple.get(clsClass).getName());
+//									map.put("evalRangeCount", tuple.get(qEva).getEvalRangeCount());
+//									map.put("evalObjectName", tuple.get(qEva).getEvalObjectName());
+//									map.put("status", tuple.get(qEva).getStatus());
+//									map.put("endTime", tuple.get(qEva).getEndTime());
+//									map.put("createTime", tuple.get(qEva).getCreateTime());
+//									map.put("groupId", tuple.get(group).getGroupId());
+//									map.put("exerCount", tuple.get(group).getAllCount());
+//									map.put("evaluateCount", this.getEvaluateCount(tuple.get(qEva).getEvaluateId()));//宸茶瘎浼颁汉鏁�
+//									map.put("evaluateAllCount", this
+//											.queryEvaluateAllCount(tuple.get(qEva).getEvalRangeType(), tuple.get(qEva).getEvalRangeId().split(",")));//搴旇瘎浼颁汉鏁�
+//								return map;
+//							}).collect(Collectors.toList()));
 			resultLst.addAll(
 					results3.getResults()
 							.stream()
@@ -215,9 +252,9 @@
 										.queryEvaluateAllCount(tuple.get(qEva).getEvalRangeType(), tuple.get(qEva).getEvalRangeId().split(",")));//搴旇瘎浼颁汉鏁�
 								return map;
 							}).collect(Collectors.toList()));
-
+		resultLst = results2.stream().collect(Collectors.toList());
 		return new ResultJson(true, "success",
-				CollectionUtils.newObjectMap("allCount",results.getTotal()+results2.getTotal()+results3.getTotal(),"datas",resultLst));
+				CollectionUtils.newObjectMap("allCount",results.getTotal()+results2.stream().count()+results3.getTotal(),"datas",resultLst));
 	}
 
 	/**

--
Gitblit v1.8.0