Pārlūkot izejas kodu

feat: 风控v4.1

shc 3 gadi atpakaļ
vecāks
revīzija
2185ed1627

+ 16 - 10
db/v2022/7single_member_without_such_task_types_in_several_months.sql

@@ -9,18 +9,24 @@ SET FOREIGN_KEY_CHECKS = 0;
 DROP TABLE IF EXISTS `single_member_without_such_task_types_in_several_months`;
 CREATE TABLE `single_member_without_such_task_types_in_several_months`
 (
-    `record_id`   INT UNSIGNED AUTO_INCREMENT COMMENT 'id',
-    `user_id`     INT UNSIGNED NULL COMMENT '用户id',
-    `realname`    VARCHAR(32)  NULL COMMENT '用户名称',
-    `username`    VARCHAR(11)  NULL COMMENT '用户名',
-    `dept_id`     INT          NULL COMMENT '结算企业id',
-    `dept_name`   VARCHAR(64)  NULL COMMENT '结算企业名称',
-    `period`      INT UNSIGNED NULL COMMENT '统计周期',
-    `type_list`   VARCHAR(255) NULL COMMENT '风控任务类型',
-    `create_time` DATETIME     NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `record_id`            INT UNSIGNED AUTO_INCREMENT COMMENT 'id',
+    `user_id`              INT UNSIGNED NULL COMMENT '用户id',
+    `package_id`           INT UNSIGNED NULL COMMENT '积分包id',
+    `package_name`         VARCHAR(32)  NULL COMMENT '积分包名称',
+    `status`               VARCHAR(11)  NULL COMMENT '积分包状态',
+    `realname`             VARCHAR(32)  NULL COMMENT '用户名称',
+    `username`             VARCHAR(11)  NULL COMMENT '用户名',
+    `dept_id`              INT          NULL COMMENT '结算企业id',
+    `dept_name`            VARCHAR(64)  NULL COMMENT '结算企业名称',
+    `period`               INT UNSIGNED NULL COMMENT '统计周期',
+    `type_list`            VARCHAR(255) NULL COMMENT '风控任务类型',
+    `package_create_time`  DATETIME     NULL COMMENT '积分包创建时间',
+    `package_pick_up_time` DATETIME     NULL COMMENT '积分包领取时间',
+    `first_task_time`      DATETIME     NULL COMMENT '首个任务时间',
+    `create_time`          DATETIME     NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
     PRIMARY KEY (`record_id`) USING BTREE
 ) ENGINE = InnoDB
   DEFAULT CHARSET = utf8mb4 COMMENT ='单人连续多月结算相同金额';
 
 
-SET FOREIGN_KEY_CHECKS = 1;
+SET FOREIGN_KEY_CHECKS = 1;

+ 37 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/SingleMemberWithoutSuchTaskTypesInSeveralMonths.java

@@ -23,6 +23,18 @@ public class SingleMemberWithoutSuchTaskTypesInSeveralMonths implements Serializ
 	@ExcelProperty("记录id")
 	private Integer recordId;
 
+	/**
+	 * 积分包id
+	 */
+	@ExcelProperty("积分包id")
+	private Integer packageId;
+
+	/**
+	 * 积分包名称
+	 */
+	@ExcelProperty("积分包名称")
+	private String packageName;
+
 	/**
 	 * 人员id
 	 */
@@ -71,4 +83,29 @@ public class SingleMemberWithoutSuchTaskTypesInSeveralMonths implements Serializ
 	@ExcelProperty("记录创建时间")
 	private LocalDateTime createTime;
 
+	/**
+	 * 积分包状态
+	 */
+	@ExcelProperty("积分包状态")
+	private String status;
+
+
+	/**
+	 * 积分包创建时间
+	 */
+	@ExcelProperty("积分包创建时间")
+	private LocalDateTime packageCreateTime;
+
+	/**
+	 * 积分包领取时间
+	 */
+	@ExcelProperty("积分包领取时间")
+	private LocalDateTime packagePickUpTime;
+
+	/**
+	 * 首个任务时间
+	 */
+	@ExcelProperty("首个任务时间")
+	private LocalDateTime firstTaskTime;
+
 }

+ 31 - 1
hnqz-visual/hnqz-daemon-quartz/src/main/java/com/qunzhixinxi/hnqz/daemon/quartz/entity/SingleMemberWithoutSuchTaskTypesInSeveralMonths.java

@@ -23,7 +23,12 @@ public class SingleMemberWithoutSuchTaskTypesInSeveralMonths implements Serializ
 	private Integer recordId;
 
 	/**
-	 * 人员id
+	 * 积分包id
+	 */
+	private Integer packageId;
+
+	/**
+	 * 用户id
 	 */
 	private Integer userId;
 
@@ -32,11 +37,21 @@ public class SingleMemberWithoutSuchTaskTypesInSeveralMonths implements Serializ
 	 */
 	private String realname;
 
+	/**
+	 * 积分包名称
+	 */
+	private String packageName;
+
 	/**
 	 * 用户名
 	 */
 	private String username;
 
+	/**
+	 * 积分包状态
+	 */
+	private String status;
+
 	/**
 	 * 结算企业id
 	 */
@@ -47,6 +62,21 @@ public class SingleMemberWithoutSuchTaskTypesInSeveralMonths implements Serializ
 	 */
 	private String deptName;
 
+	/**
+	 * 积分包创建时间
+	 */
+	private LocalDateTime packageCreateTime;
+
+	/**
+	 * 积分包领取时间
+	 */
+	private LocalDateTime packagePickUpTime;
+
+	/**
+	 * 首个任务时间
+	 */
+	private LocalDateTime firstTaskTime;
+
 	/**
 	 * 统计周期
 	 */

+ 8 - 0
hnqz-visual/hnqz-daemon-quartz/src/main/java/com/qunzhixinxi/hnqz/daemon/quartz/mapper/WmScorePackageMapper.java

@@ -19,7 +19,13 @@ package com.qunzhixinxi.hnqz.daemon.quartz.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qunzhixinxi.hnqz.daemon.quartz.entity.WmScorePackage;
+import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * 积分包
@@ -30,4 +36,6 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface WmScorePackageMapper extends BaseMapper<WmScorePackage> {
 
+	@MapKey(value = "packageId")
+    List<Map<String, Object>> listPackageInfo(@Param(value = "packageIds") Set<String> packageIds);
 }

+ 13 - 7
hnqz-visual/hnqz-daemon-quartz/src/main/java/com/qunzhixinxi/hnqz/daemon/quartz/service/impl/WmTaskServiceImpl.java

@@ -21,7 +21,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qunzhixinxi.hnqz.daemon.quartz.config.QuartzAppConfig;
+import com.qunzhixinxi.hnqz.daemon.quartz.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.daemon.quartz.entity.WmTask;
+import com.qunzhixinxi.hnqz.daemon.quartz.mapper.WmScorePackageMapper;
 import com.qunzhixinxi.hnqz.daemon.quartz.mapper.WmTaskMapper;
 import com.qunzhixinxi.hnqz.daemon.quartz.service.WmTaskService;
 import com.qunzhixinxi.hnqz.daemon.quartz.service.WmWkArticleService;
@@ -54,6 +56,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 
 	private final QuartzAppConfig quartzAppConfig;
 
+	private final WmScorePackageMapper wmScorePackageMapper;
 	private final List<Integer> taskTypeIdList = new ArrayList<>();
 
 	{
@@ -101,28 +104,31 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 
 		Map<String, Map<String, List<WmTask>>> collect = list.stream().collect(Collectors.groupingBy(WmTask::getTaskUserId, Collectors.groupingBy(WmTask::getTaskTypeId)));
 
-		List<Integer> userIds = new ArrayList<>(collect.size());
+		Set<String> packageIds = new HashSet<>(collect.size());
 
 		for (Map.Entry<String, Map<String, List<WmTask>>> entry : collect.entrySet()) {
 
-			String key = entry.getKey();
-
 			Set<String> typeIds = entry.getValue().keySet();
 
 			Set<String> result = new HashSet<>(typeList);
 			result.retainAll(typeIds);
 
 			if (result.isEmpty()) {
-				userIds.add(Integer.parseInt(key));
+				for (Map.Entry<String, List<WmTask>> e : entry.getValue().entrySet()){
+					Set<String> temp = e.getValue().stream().map(WmTask::getScorePackageId).collect(Collectors.toSet());
+					if (CollUtil.isNotEmpty(temp)){
+						packageIds.addAll(temp);
+					}
+				}
 			}
 		}
 
-		if (CollUtil.isEmpty(userIds)) {
+		if (CollUtil.isEmpty(packageIds)) {
 			return null;
 		}
 
-		List<Map<String, Object>> userInfo = this.baseMapper.listUserInfo(userIds);
-		return userInfo;
+		List<Map<String, Object>> packageInfo = wmScorePackageMapper.listPackageInfo(packageIds);
+		return packageInfo;
 
 
 	}

+ 7 - 0
hnqz-visual/hnqz-daemon-quartz/src/main/java/com/qunzhixinxi/hnqz/daemon/quartz/task/SpringBeanTaskDemo.java

@@ -27,6 +27,7 @@ import com.qunzhixinxi.hnqz.daemon.quartz.entity.SingleEnterpriseSettleSameAmoun
 import com.qunzhixinxi.hnqz.daemon.quartz.entity.SingleMemberSettleAmountOverrunInSeveralMonths;
 import com.qunzhixinxi.hnqz.daemon.quartz.entity.SingleMemberSettleSameAmountInSeveralMonths;
 import com.qunzhixinxi.hnqz.daemon.quartz.entity.SingleMemberWithoutSuchTaskTypesInSeveralMonths;
+import com.qunzhixinxi.hnqz.daemon.quartz.entity.WmTask;
 import com.qunzhixinxi.hnqz.daemon.quartz.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.daemon.quartz.mapper.SingleEnterpriseSettleSameAmountForSeveralMembersInCurrentMonthMapper;
 import com.qunzhixinxi.hnqz.daemon.quartz.mapper.SingleMemberSettleAmountOverrunInSeveralMonthsMapper;
@@ -359,6 +360,12 @@ public class SpringBeanTaskDemo {
 			result.forEach(e -> {
 				SingleMemberWithoutSuchTaskTypesInSeveralMonths singleMemberWithoutSuchTaskTypesInSeveralMonths
 						= BeanUtil.mapToBean(e, SingleMemberWithoutSuchTaskTypesInSeveralMonths.class,true, new CopyOptions());
+
+				List<WmTask> list = wmTaskService.list(Wrappers.<WmTask>lambdaQuery().eq(WmTask::getScorePackageId, e.get(singleMemberWithoutSuchTaskTypesInSeveralMonths.getPackageId())).orderByDesc(WmTask::getCreateTime));
+
+				if (CollUtil.isNotEmpty(list)){
+					singleMemberWithoutSuchTaskTypesInSeveralMonths.setFirstTaskTime(list.get(0).getCreateTime());
+				}
 				singleMemberWithoutSuchTaskTypesInSeveralMonths.setPeriod(period);
 				singleMemberWithoutSuchTaskTypesInSeveralMonths.setTypeList(types);
 				singleMemberWithoutSuchTaskTypesInSeveralMonths.setCreateTime(LocalDateTime.now());

+ 60 - 31
hnqz-visual/hnqz-daemon-quartz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -23,35 +23,64 @@
 
 <mapper namespace="com.qunzhixinxi.hnqz.daemon.quartz.mapper.WmScorePackageMapper">
 
-  <resultMap id="wmScorePackageMap" type="com.qunzhixinxi.hnqz.daemon.quartz.entity.WmScorePackage">
-                  <id property="id" column="id"/>
-                        <result property="taskRuleId" column="task_rule_id"/>
-                        <result property="drugEntId" column="drug_ent_id"/>
-                        <result property="scoreId" column="score_id"/>
-                        <result property="scoreName" column="score_name"/>
-                        <result property="score" column="score"/>
-                        <result property="agentTypeId" column="agent_type_id"/>
-                        <result property="level1Id" column="level1_id"/>
-                        <result property="level2Id" column="level2_id"/>
-                        <result property="zbId" column="zb_id"/>
-                        <result property="xxdbId" column="xxdb_id"/>
-                        <result property="typeid" column="typeid"/>
-                        <result property="packageStatus" column="package_status"/>
-                        <result property="packageFinishStatus" column="package_finish_status"/>
-                        <result property="sendPackageDeptId" column="send_package_dept_id"/>
-                        <result property="deptId" column="dept_id"/>
-                        <result property="delFlag" column="del_flag"/>
-                        <result property="enableFlag" column="enable_flag"/>
-                        <result property="tenantId" column="tenant_id"/>
-                        <result property="createTime" column="create_time"/>
-                        <result property="createUser" column="create_user"/>
-                        <result property="updateTime" column="update_time"/>
-                        <result property="updateUser" column="update_user"/>
-                        <result property="ytj" column="ytj"/>
-                        <result property="ysh" column="ysh"/>
-                        <result property="dsh" column="dsh"/>
-                        <result property="ytjtt" column="ytjtt"/>
-                        <result property="ywctt" column="ywctt"/>
-                        <result property="yshtt" column="yshtt"/>
-            </resultMap>
+	<resultMap id="wmScorePackageMap" type="com.qunzhixinxi.hnqz.daemon.quartz.entity.WmScorePackage">
+		<id property="id" column="id"/>
+		<result property="taskRuleId" column="task_rule_id"/>
+		<result property="drugEntId" column="drug_ent_id"/>
+		<result property="scoreId" column="score_id"/>
+		<result property="scoreName" column="score_name"/>
+		<result property="score" column="score"/>
+		<result property="agentTypeId" column="agent_type_id"/>
+		<result property="level1Id" column="level1_id"/>
+		<result property="level2Id" column="level2_id"/>
+		<result property="zbId" column="zb_id"/>
+		<result property="xxdbId" column="xxdb_id"/>
+		<result property="typeid" column="typeid"/>
+		<result property="packageStatus" column="package_status"/>
+		<result property="packageFinishStatus" column="package_finish_status"/>
+		<result property="sendPackageDeptId" column="send_package_dept_id"/>
+		<result property="deptId" column="dept_id"/>
+		<result property="delFlag" column="del_flag"/>
+		<result property="enableFlag" column="enable_flag"/>
+		<result property="tenantId" column="tenant_id"/>
+		<result property="createTime" column="create_time"/>
+		<result property="createUser" column="create_user"/>
+		<result property="updateTime" column="update_time"/>
+		<result property="updateUser" column="update_user"/>
+		<result property="ytj" column="ytj"/>
+		<result property="ysh" column="ysh"/>
+		<result property="dsh" column="dsh"/>
+		<result property="ytjtt" column="ytjtt"/>
+		<result property="ywctt" column="ywctt"/>
+		<result property="yshtt" column="yshtt"/>
+	</resultMap>
+
+	<select id="listPackageInfo" resultType="map">
+		SELECT sp.id AS `packageId`,
+		u.user_id AS `userId`,
+		u.username,
+		u.realname,
+		sp.score_package_name AS `packageName`,
+		CASE sp.score_package_status
+		WHEN 1 THEN '审核中'
+		WHEN 2 THEN '审核通过'
+		WHEN 3 THEN '审核不通过'
+		WHEN 4 THEN '终止'
+		END `status`,
+		sd.name AS `deptName`,
+		sd.dept_id AS `deptId`,
+		sp.create_time AS `packageCreateTime`,
+		sps.create_time AS `packagePickUpTime`
+		FROM wm_score_package sp
+		LEFT JOIN wm_score_package_status sps ON sp.id = sps.package_id
+		LEFT JOIN sys_user u ON sps.user_id = u.user_id
+		LEFT JOIN sys_dept sd ON sp.send_package_dept_id = sd.dept_id
+		<where>
+
+			sp.id IN
+			<foreach collection="packageIds" index="idx" item="id" separator="," open="(" close=")">
+				#{id}
+			</foreach>
+		</where>
+	</select>
 </mapper>

+ 1 - 1
pom.xml

@@ -317,7 +317,7 @@
 				<profiles.active>local</profiles.active>
 				<profiles.namespace>4f0d7def-4521-48aa-9357-fc970756c195</profiles.namespace>
 				<profiles.auth.port>3000</profiles.auth.port>
-				<profiles.gateway.port>9999</profiles.gateway.port>
+				<profiles.gateway.port>9010</profiles.gateway.port>
 				<prefiles.upms.biz.port>4000</prefiles.upms.biz.port>
 				<profiles.daemon.quartz.port>5007</profiles.daemon.quartz.port>
 			</properties>