Selaa lähdekoodia

fix: 发包查询上级关联积分包-查全部sql超时问题

lixuesong 1 vuosi sitten
vanhempi
commit
8635fee905

+ 12 - 10
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageServiceImpl.java

@@ -546,17 +546,19 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 
 		log.info("查询关联积分包值耗时:{}ms", System.currentTimeMillis() - start);
 
-		Set<String> packageIdSet = packageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
-		List<WmScoreTaskType> allTaskTypelist =
-				wmScoreTaskTypeMapper.getScoreTaskTypeByScoreId(CollUtil.join(packageIdSet, ","));
-		Map<String, List<WmScoreTaskType>> scoreTaskTypeMap = allTaskTypelist.stream()
-				.collect(Collectors.groupingBy(WmScoreTaskType::getScoreId));
-		for (WmScorePackage wmScorePackage1 : packageList) {
+		if (CollUtil.isNotEmpty(packageList)) {
+			Set<String> packageIdSet = packageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
+			List<WmScoreTaskType> allTaskTypelist =
+					wmScoreTaskTypeMapper.getScoreTaskTypeByScoreId(CollUtil.join(packageIdSet, ","));
+			Map<String, List<WmScoreTaskType>> scoreTaskTypeMap = allTaskTypelist.stream()
+					.collect(Collectors.groupingBy(WmScoreTaskType::getScoreId));
+			for (WmScorePackage wmScorePackage1 : packageList) {
 //			List<WmScoreTaskType> taskTypelist = wmScoreTaskTypeMapper.getScoreTaskTypeByScoreId(wmScorePackage1.getId());
-			List<WmScoreTaskType> taskTypelist = scoreTaskTypeMap.get(wmScorePackage1.getId());
-			wmScorePackage1.setTaskTypeList1(taskTypelist);
-			Set taskTypeSet = taskTypelist.stream().map(WmScoreTaskType::getTaskTypeId).collect(Collectors.toSet());
-			wmScorePackage1.setTaskTypeSet(taskTypeSet);
+				List<WmScoreTaskType> taskTypelist = scoreTaskTypeMap.get(wmScorePackage1.getId());
+				wmScorePackage1.setTaskTypeList1(taskTypelist);
+				Set taskTypeSet = taskTypelist.stream().map(WmScoreTaskType::getTaskTypeId).collect(Collectors.toSet());
+				wmScorePackage1.setTaskTypeSet(taskTypeSet);
+			}
 		}
 
 		//一个机构同时是一级cso和二级cso时,可以自己给自己发包

+ 6 - 5
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/wmScoreTaskTypeMapper.xml

@@ -123,15 +123,16 @@
 
 	<select id="getScoreTaskTypeByScoreId" resultMap="BaseResultMap">
 		select t.*,
-		CASE WHEN d.`value` is null THEN  tt.task_type_name ELSE d.label END as taskTypeName
+		CASE WHEN d.`value` is null THEN tt.task_type_name ELSE d.label END as taskTypeName
 		from
 		wm_score_task_type t
 		left join sys_dict_item d on d.`value`=t.task_type_id and d.type='score_task_type'
 		left join wm_task_type tt on tt.id=t.task_type_id
-		where 1=1
-		<if test="scoreId!=null and scoreId!=''">
-			AND t.score_id in(${scoreId})
-		</if>
+		<where>
+			<if test="scoreId != null and scoreId != ''">
+				AND t.score_id in (${scoreId})
+			</if>
+		</where>
 		order by t.id
 
 	</select>