Эх сурвалжийг харах

fix: 积分包结算管理/结算复核页面sql查询优化2

lixuesong 1 жил өмнө
parent
commit
3a51a3d283

+ 5 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/input/WmScorePackageSettleOutput.java

@@ -55,6 +55,11 @@ public class WmScorePackageSettleOutput {
 
 	private String scorePackageName;
 
+	/**
+	 * 关联积分包id
+	 */
+	private String relationScoreId;
+
 	/**
 	 * 关联积分包名称
 	 */

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

@@ -1884,7 +1884,25 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		Map<String, List<WmScorePackageSettleNote>> settleNoteMap = packageSettleNoteList.stream()
 				.collect(Collectors.groupingBy(WmScorePackageSettleNote::getPackageId));
 
-		this.settleDetail(settleList, statusMap, users, settleNoteMap);
+		Map<String, String> relationPackageMap = new HashMap<>();
+		// 查询关联上级积分包名称
+		Set<String> relationScoreIds = settleList.stream()
+				.filter(output -> StrUtil.isNotBlank(output.getRelationScoreId()))
+				.map(WmScorePackageSettleOutput::getRelationScoreId).collect(Collectors.toSet());
+		if (CollUtil.isNotEmpty(relationScoreIds)) {
+			List<WmScorePackage> relationPackageList = wmScorePackageMapper.selectBatchIds(relationScoreIds);
+			relationPackageMap.putAll(relationPackageList.stream().collect(Collectors.toMap(WmScorePackage::getId, WmScorePackage::getScorePackageName)));
+		}
+
+		Map<Integer, String> deptMap = new HashMap<>();
+		// 查询企业名称
+		Set<String> deptIds = settleList.stream().map(WmScorePackageSettleOutput::getSendPackageDeptId).collect(Collectors.toSet());
+		List<SysDept> depts = sysDeptMapper.selectBatchIds(deptIds);
+		if (CollUtil.isNotEmpty(deptIds)) {
+			deptMap.putAll(depts.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getName)));
+		}
+
+		this.settleDetail(settleList, statusMap, users, settleNoteMap, relationPackageMap, deptMap);
 		return settleListPage;
 	}
 
@@ -3763,7 +3781,23 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		Map<String, List<WmScorePackageSettleNote>> settleNoteMap = packageSettleNoteList.stream()
 				.collect(Collectors.groupingBy(WmScorePackageSettleNote::getPackageId));
 
-		this.settleDetail(settleList, statusMap, users, settleNoteMap);
+		Map<String, String> relationPackageMap = new HashMap<>();
+		// 查询关联上级积分包名称
+		Set<String> relationScoreIds = settleList.stream()
+				.filter(output -> StrUtil.isNotBlank(output.getRelationScoreId()))
+				.map(WmScorePackageSettleOutput::getRelationScoreId).collect(Collectors.toSet());
+		if (CollUtil.isNotEmpty(relationScoreIds)) {
+			List<WmScorePackage> relationPackageList = wmScorePackageMapper.selectBatchIds(relationScoreIds);
+			relationPackageMap.putAll(relationPackageList.stream().collect(Collectors.toMap(WmScorePackage::getId, WmScorePackage::getScorePackageName)));
+		}
+
+		Map<Integer, String> deptMap = new HashMap<>();
+		// 查询企业名称
+		Set<String> deptIds = settleList.stream().map(WmScorePackageSettleOutput::getSendPackageDeptId).collect(Collectors.toSet());
+		List<SysDept> depts = sysDeptMapper.selectBatchIds(deptIds);
+		if (CollUtil.isNotEmpty(deptIds)) {
+			deptMap.putAll(depts.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getName)));
+		}
 
 		return detailPage;
 	}
@@ -3771,13 +3805,16 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 	/**
 	 * 结算数据字段拼接转换
 	 *
-	 * @param settleList    数据列表
-	 * @param statusMap     领包记录map
-	 * @param userList      用户信息
-	 * @param settleNoteMap 结算信息map
+	 * @param settleList         数据列表
+	 * @param statusMap          领包记录map
+	 * @param userList           用户信息
+	 * @param settleNoteMap      结算信息map
+	 * @param relationPackageMap 关联上级积分包名称map
+	 * @param deptMap			 企业名称map
 	 */
 	private void settleDetail(List<WmScorePackageSettleOutput> settleList, Map<String, List<WmScorePackageStatus>> statusMap,
-							  List<SysUser> userList, Map<String, List<WmScorePackageSettleNote>> settleNoteMap) {
+							  List<SysUser> userList, Map<String, List<WmScorePackageSettleNote>> settleNoteMap,
+							  Map<String, String> relationPackageMap, Map<Integer, String> deptMap) {
 		for (WmScorePackageSettleOutput ouPut : settleList) {
 			List<WmScorePackageStatus> statusList = statusMap.get(ouPut.getId());
 
@@ -3794,6 +3831,13 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 				ouPut.setUserNames(userNames);
 			}
 
+			// 关联积分包名称
+			if (StrUtil.isNotBlank(ouPut.getRelationScoreId())) {
+				ouPut.setRelationScoreName(relationPackageMap.get(ouPut.getRelationScoreId()));
+			}
+			// 企业名称
+			ouPut.setPackageEntName(deptMap.get(Integer.parseInt(ouPut.getSendPackageDeptId())));
+
 			// 查询结算信息
 			List<WmScorePackageSettleNote> packageSettleNoteList = settleNoteMap.get(ouPut.getId());
 			if (CollectionUtil.isNotEmpty(packageSettleNoteList)) {

+ 3 - 5
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -1484,7 +1484,6 @@
 		SELECT distinct
 		    p.id,
 		    p.pkg_sn,
-			d.name,
 			p.score_package_name,
 			p.create_time,
 			p.settlement_date,
@@ -1501,11 +1500,10 @@
 			p.oms_order_sn,
 			p.invoice_number,
 			p.invoice_file,
-			p2.score_package_name as relation_score_name
+			p.relation_score_id,
+			p.send_package_dept_id
 		FROM wm_score_package p
-			left join wm_score_package p2 on p.relation_score_id = p2.id
-		    left join sys_dept d on p.send_package_dept_id = d.dept_id
-		<if test="query.userNames != null">
+		<if test="query.userNames != null and query.userNames != ''">
 			left join wm_score_package_status ps on p.id = ps.package_id
 			left join sys_user su on ps.user_id = su.user_id
 		</if>