Explorar el Código

feat: 积分包结算管理-增加接单对象范围

lixuesong hace 1 año
padre
commit
11c36cc8d2

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

@@ -133,4 +133,9 @@ public class WmScorePackageSettleInput implements Serializable {
 	 * 提交到零工时间(下发时间)
 	 */
 	private LocalDateTime[] subToGigTime;
+
+	/**
+	 * 接单对象范围
+	 */
+	private String packageUserScope;
 }

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

@@ -137,4 +137,14 @@ public class WmScorePackageSettleOutput {
 	 */
 	private List<WmScorePackage.FileUrlObj> invoiceFile;
 
+	/**
+	 * 接单对象范围
+	 */
+	private String packageUserScope;
+
+	/**
+	 * 接单对象范围名称
+	 */
+	private String packageUserScopeName;
+
 }

+ 13 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmReportServiceImpl.java

@@ -1078,7 +1078,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 			return R.ok();
 		}
 		List<WmTask> taskList=pages.getRecords();
-		if(!taskList.isEmpty()){
+		if(CollUtil.isNotEmpty(taskList)) {
 			List<WmScorePackage> taskScorePackages = wmScorePackageService.listByIds(taskList.stream().map(WmTask::getScorePackageId).collect(Collectors.toSet()));
 			Map<String, WmScorePackage> scorePackageMap = taskScorePackages.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
 			List<Map> resList =taskList.stream().map(wmtask -> {
@@ -1114,6 +1114,18 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 				return map;
 			}).collect(Collectors.toList());
 
+			// 查询审核人用户信息
+			Set<Integer> approvalUserIds = taskList.stream()
+					.filter(r -> r.getApprovalUserId() != null)
+					.map(WmTask::getApprovalUserId).collect(Collectors.toSet());
+			if (CollUtil.isNotEmpty(approvalUserIds)) {
+				List<SysUser> users = sysUserService.listByIds(approvalUserIds);
+				Map<Integer, String> userMap = users.stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getRealname));
+				taskList.stream()
+						.filter(r -> r.getDeptApprovalUserId() != null)
+						.forEach(r -> r.setDeptApprovalUserName(userMap.get(r.getDeptApprovalUserId())));
+			}
+
 			page.setRecords(resList);
 		}
 		return R.ok(pages);

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

@@ -1902,7 +1902,24 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 			deptMap.putAll(depts.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getName)));
 		}
 
-		this.settleDetail(settleList, statusMap, users, settleNoteMap, relationPackageMap, deptMap);
+		// 查询接单对象范围名称
+		Map<Integer, String> packageUserScopeMap = new HashMap<>();
+		Set<Integer> packageUserScopes = settleList.stream()
+				.filter(p -> StrUtil.isNotBlank(p.getPackageUserScope()) && Integer.parseInt(p.getPackageUserScope()) > 1000)
+				.map(p -> Integer.parseInt(p.getPackageUserScope())).collect(Collectors.toSet());
+		if (CollUtil.isNotEmpty(packageUserScopes)) {
+			List<WmTeam> teams = wmTeamService.listByIds(packageUserScopes);
+			packageUserScopeMap.putAll(teams.stream().collect(Collectors.toMap(WmTeam::getId, WmTeam::getName)));
+		}
+		// 拼接字典中的数据
+		List<SysDictItem> packageUserScoreItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
+				.eq(SysDictItem::getType, "package_user_scope")
+				.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
+		packageUserScopeMap.putAll(packageUserScoreItems.stream()
+				.collect(Collectors.toMap(item -> Integer.parseInt(item.getValue()), SysDictItem::getLabel)));
+
+		this.settleDetail(settleList, statusMap, users, settleNoteMap, relationPackageMap, deptMap, packageUserScopeMap);
+
 		return settleListPage;
 	}
 
@@ -3805,16 +3822,17 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 	/**
 	 * 结算数据字段拼接转换
 	 *
-	 * @param settleList         数据列表
-	 * @param statusMap          领包记录map
-	 * @param userList           用户信息
-	 * @param settleNoteMap      结算信息map
-	 * @param relationPackageMap 关联上级积分包名称map
-	 * @param deptMap			 企业名称map
+	 * @param settleList          数据列表
+	 * @param statusMap           领包记录map
+	 * @param userList            用户信息
+	 * @param settleNoteMap       结算信息map
+	 * @param relationPackageMap  关联上级积分包名称map
+	 * @param deptMap             企业名称map
+	 * @param packageUserScopeMap 接单对象范围map
 	 */
 	private void settleDetail(List<WmScorePackageSettleOutput> settleList, Map<String, List<WmScorePackageStatus>> statusMap,
 							  List<SysUser> userList, Map<String, List<WmScorePackageSettleNote>> settleNoteMap,
-							  Map<String, String> relationPackageMap, Map<Integer, String> deptMap) {
+							  Map<String, String> relationPackageMap, Map<Integer, String> deptMap, Map<Integer, String> packageUserScopeMap) {
 		for (WmScorePackageSettleOutput ouPut : settleList) {
 			List<WmScorePackageStatus> statusList = statusMap.get(ouPut.getId());
 
@@ -3881,6 +3899,11 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 			if (StrUtil.isNotBlank(ouPut.getSettleStatus())) {
 				ouPut.setSettleStatusName(SettleStatusEnum.resolve(ouPut.getSettleStatus()).getName2());
 			}
+
+			// 接单对象范围
+			if (StrUtil.isNotBlank(ouPut.getPackageUserScope())) {
+				ouPut.setPackageUserScopeName(packageUserScopeMap.get(Integer.parseInt(ouPut.getPackageUserScope())));
+			}
 		}
 	}
 }

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskServiceImpl.java

@@ -1478,7 +1478,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 			}
 		}
 
-		return R.ok();
+		return R.ok(taskPage);
 	}
 
 	// /**

+ 6 - 1
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -121,6 +121,7 @@
 		<result property="omsOrderSn" column="oms_order_sn"/>
 		<result property="invoiceNumber" column="invoice_number"/>
 		<result property="invoiceFile" column="invoice_file" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
+		<result property="packageUserScope" column="package_user_scope"/>
 	</resultMap>
 
 	<select id="listWmScorePackageAndTask" resultMap="wmScorePackageMap">
@@ -1501,7 +1502,8 @@
 			p.invoice_number,
 			p.invoice_file,
 			p.relation_score_id,
-			p.send_package_dept_id
+			p.send_package_dept_id,
+			p.package_user_scope
 		FROM wm_score_package p
 		<if test="query.packageEntName != null and query.packageEntName != ''">
 			left join sys_dept d on p.send_package_dept_id = d.dept_id
@@ -1574,6 +1576,9 @@
 			<if test="query.subToGigTime != null and query.subToGigTime.length == 2">
 				AND sn.sub_to_gig_time between #{query.subToGigTime[0]} and #{query.subToGigTime[1]}
 			</if>
+			<if test="query.packageUserScope != null and query.packageUserScope != ''">
+				AND p.package_user_scope = #{query.packageUserScope}
+			</if>
 		</where>
 		ORDER BY
 		<if test="query.mahSettleStep != null">