Browse Source

Merge branch 'feat-20230717-tasktypeconfig'

李学松 2 years ago
parent
commit
073733db22
16 changed files with 333 additions and 7 deletions
  1. 2 1
      hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/UpmsType.java
  2. 13 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java
  3. 5 1
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskSubmissionPercentRuleController.java
  4. 163 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskSubmissionRuleController.java
  5. 6 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmScorePackageStatus.java
  6. 5 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/input/WmScorePackageSettleOutput.java
  7. 9 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmTaskSubmissionRuleService.java
  8. 11 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaAgentServiceImpl.java
  9. 4 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageServiceImpl.java
  10. 13 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskContentServiceImpl.java
  11. 3 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskSubmissionPercentRuleServiceImpl.java
  12. 16 3
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskSubmissionRuleServiceImpl.java
  13. 1 1
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskTypeSubCate2ServiceImpl.java
  14. 14 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmUserSignServiceImpl.java
  15. 2 1
      hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageStatusMapper.xml
  16. 66 0
      hnqz-upms/hnqz-upms-biz/src/test/java/com/qunzhixinxi/hnqz/admin/WmTaskSubmissionRuleServiceTest.java

+ 2 - 1
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/UpmsType.java

@@ -86,7 +86,8 @@ public final class UpmsType {
 		CUSTOMER_VISIT("CUSTOMER_VISIT", TaskCategory.CUSTOMER_VISIT, "客户拜访"),
 		PRODUCT_PROMOTION("PRODUCT_PROMOTION", TaskCategory.FORWARD, "产品推广"),
 		MARKET_INFO_COLLECTION("MARKET_INFO_COLLECTION", TaskCategory.MARKET_INFO_COLLECTION, "市场信息搜集"),
-		SPECIAL_SERVICE("SPECIAL_SERVICE", null, "专项服务");
+		SPECIAL_SERVICE("SPECIAL_SERVICE", null, "专项服务"),
+		TASK_TYPE_CONFIG("TASK_TYPE_CONFIG", null, "任务类型配置");
 
 
 

+ 13 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -30,6 +30,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysRole;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmAdRecord;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
 import com.qunzhixinxi.hnqz.admin.api.vo.PersonalScoreRecordVO;
 import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
@@ -3776,6 +3777,18 @@ public class ApiController {
 					}
 				}
 
+				// 查询任务类型启用状态
+				List<WmTaskSubmissionPercentRule> rules = wmTaskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
+						.eq(WmTaskSubmissionPercentRule::getDeptId, sysUser.getDeptId())
+						.eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
+				if (CollUtil.isEmpty(rules)) {
+					throw new RuntimeException("当前企业未开启该任务!");
+				}
+				String[] taskTypeIds = rules.get(0).getRule().getTaskTypeIds();
+				if (!ArrayUtil.contains(taskTypeIds, wmTask.getTaskTypeId())) {
+					throw new RuntimeException("当前企业未开启该任务!");
+				}
+
 				WmTaskType _baseTaskType = wmTaskTypeService.getById(wmTask.getTaskTypeId());
 
 				// 校验任务类型是否启用

+ 5 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskSubmissionPercentRuleController.java

@@ -1,6 +1,8 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskSubmissionPercentRuleService;
@@ -64,7 +66,9 @@ public class WmTaskSubmissionPercentRuleController {
 				.eq(WmTaskSubmissionPercentRule::getDeptId, deptId)
 				.eq(WmTaskSubmissionPercentRule::getOptFlag, CommonFlag.OptFlag.OK));
 
-		Map<String, List<WmTaskSubmissionPercentRule>> collect = percentRules.stream().collect(Collectors.groupingBy(WmTaskSubmissionPercentRule::getBatchId));
+		Map<String, List<WmTaskSubmissionPercentRule>> collect = percentRules.stream()
+				.filter(rule -> StrUtil.isNotBlank(rule.getBatchId()) && !UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG.equals(rule.getSubCategory()))
+				.collect(Collectors.groupingBy(WmTaskSubmissionPercentRule::getBatchId));
 
 		// 查询taskType
 		List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()

+ 163 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskSubmissionRuleController.java

@@ -1,12 +1,26 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.map.MapUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskTypeSubCate2;
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskSubmissionPercentRuleService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskSubmissionRuleService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeSubCate2Service;
+import com.qunzhixinxi.hnqz.common.core.constant.enums.CommonFlag;
 import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.http.MediaType;
 import org.springframework.transaction.annotation.Transactional;
@@ -18,6 +32,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.validation.constraints.NotEmpty;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -37,6 +54,9 @@ public class WmTaskSubmissionRuleController {
 
 	private final WmTaskSubmissionRuleService taskSubmissionRuleService;
 	private final SysDeptService deptService;
+	private final WmTaskTypeSubCate2Service wmTaskTypeSubCate2Service;
+	private final WmTaskSubmissionPercentRuleService taskSubmissionPercentRuleService;
+	private final WmTaskTypeService wmTaskTypeService;
 
 
 	/**
@@ -50,6 +70,149 @@ public class WmTaskSubmissionRuleController {
 		return R.ok(taskSubmissionRuleService.listDeptTaskSubmissionRules(deptId));
 	}
 
+	/**
+	 * 获取企业的任务类型
+	 *
+	 * @param deptId 企业id
+	 * @return 任务类型列表
+	 */
+	@GetMapping("/list-task-type")
+	public R<?> listTaskType(@RequestParam(value = "deptId") Integer deptId) {
+
+		// 查询基础任务类型
+		List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
+				.eq(WmTaskType::getTaskTypeLevel, "1")
+				.eq(WmTaskType::getDelFlag, DelEnum.NOT_DEL.val()));
+		Map<String, String> baseTaskTypeMap = taskTypeList.stream()
+				.collect(Collectors.toMap(WmTaskType::getTaskTypeName, WmTaskType::getId));
+
+		// 查询任务类型分类表
+		List<WmTaskTypeSubCate2> list = wmTaskTypeSubCate2Service.list();
+		// key-任务类型父类型, value-任务类型名称列表
+		Map<String, List<String>> listMap = list.stream()
+				.collect(
+						Collectors.groupingBy(
+								WmTaskTypeSubCate2::getSubCate, Collectors.mapping(WmTaskTypeSubCate2::getTypeName, Collectors.toList())
+						)
+				);
+
+		List<Map<String, Object>> resultList = new ArrayList<>();
+		if (CollectionUtil.isNotEmpty(taskTypeList)) {
+			// 根据任务类型分类表,给企业任务类型分类
+			listMap.forEach((key, val) -> {
+				List<Map<String, String>> childTypeList = taskTypeList.stream()
+						.filter(wmTaskType -> val.contains(wmTaskType.getTaskTypeName())).map(wmTaskType -> {
+							Map<String, String> typeMap = new HashMap<>();
+							typeMap.put("taskTypeName", wmTaskType.getTaskTypeName());
+							typeMap.put("taskTypeId", baseTaskTypeMap.get(wmTaskType.getTaskTypeName()));
+							return typeMap;
+						})
+						.collect(Collectors.toList());
+				if (CollectionUtil.isNotEmpty(childTypeList)) {
+					Map<String, Object> taskTypeMap = MapUtil.newHashMap(2);
+					taskTypeMap.put("category", key);
+					taskTypeMap.put("categoryName", UpmsType.TaskSubCategory2.valueOf(key).getDescription());
+					taskTypeMap.put("children", childTypeList);
+					resultList.add(taskTypeMap);
+				}
+			});
+		}
+
+
+		if (CollectionUtil.isNotEmpty(resultList)) {
+			// 查询任务类型启用状态
+			List<WmTaskSubmissionPercentRule> rules = taskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
+					.eq(WmTaskSubmissionPercentRule::getDeptId, deptId)
+					.eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
+			String[] taskTypeIds;
+			if (CollUtil.isNotEmpty(rules)) {
+				taskTypeIds = rules.get(0).getRule().getTaskTypeIds();
+			} else {
+				taskTypeIds = new String[0];
+			}
+
+			// 设置任务类型是否启用状态
+			resultList.forEach(map -> {
+				List<Map<String, Object>> children = (List<Map<String, Object>>) map.get("children");
+				if (CollUtil.isNotEmpty(children)) {
+					// child添加是否启用标记
+					children.forEach(childMap -> {
+						String taskTypeId = (String) childMap.get("taskTypeId");
+						childMap.put("enableFlag", ArrayUtil.contains(taskTypeIds, taskTypeId));
+					});
+					// 父级添加是否启用标记
+					map.put("enableFlag", children.stream().anyMatch(childMap -> Boolean.TRUE.equals(childMap.get("enableFlag"))));
+				} else {
+					map.put("enableFlag", Boolean.FALSE);
+				}
+			});
+		}
+
+		return R.ok(resultList);
+	}
+
+	/**
+	 * 获取企业的任务类型id
+	 *
+	 * @param deptId 企业id
+	 * @return 任务类型列表
+	 */
+	@GetMapping("/list-task-type-ids")
+	public R<?> listTaskTypeIds(@RequestParam(value = "deptId") Integer deptId) {
+		// 查询任务类型启用状态
+		List<WmTaskSubmissionPercentRule> rules = taskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
+				.eq(WmTaskSubmissionPercentRule::getDeptId, deptId)
+				.eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
+		String[] taskTypeIds;
+		if (CollUtil.isNotEmpty(rules)) {
+			taskTypeIds = rules.get(0).getRule().getTaskTypeIds();
+		} else {
+			taskTypeIds = new String[0];
+		}
+
+		return R.ok(taskTypeIds);
+	}
+
+	/**
+	 * 更新启用的任务类型
+	 *
+	 * @param requestMap 请求参数
+	 * @return 结果
+	 */
+	@PostMapping("/update-task-type")
+	public R<Boolean> updateEnableTaskType(@RequestBody Map<String, Object> requestMap) {
+		List<String> taskTypeIds = (List<String>) requestMap.get("taskTypeIds");
+		Integer deptId = (Integer) requestMap.get("deptId");
+		if (ArrayUtil.isEmpty(taskTypeIds) || deptId == null) {
+			return R.failed("必填参数为空");
+		}
+
+		WmTaskSubmissionPercentRule.PercentRule rule = new WmTaskSubmissionPercentRule.PercentRule();
+		rule.setLimitPercent("");
+		rule.setStartScore(0);
+		rule.setTaskTypeIds(taskTypeIds.toArray(new String[0]));
+
+		// 查询待修改企业的规则
+		List<WmTaskSubmissionPercentRule> queryRules = taskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
+				.eq(WmTaskSubmissionPercentRule::getDeptId, deptId)
+				.eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
+		if (CollUtil.isEmpty(queryRules)) {
+			WmTaskSubmissionPercentRule percentRule = new WmTaskSubmissionPercentRule();
+			percentRule.setDeptId(deptId);
+			percentRule.setRule(rule);
+			percentRule.setSubCategory(UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG);
+			percentRule.setOptFlag(CommonFlag.OptFlag.OK);
+			taskSubmissionPercentRuleService.save(percentRule);
+		} else {
+			taskSubmissionPercentRuleService.update(Wrappers.<WmTaskSubmissionPercentRule>lambdaUpdate()
+					.eq(WmTaskSubmissionPercentRule::getDeptId, deptId)
+					.eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG)
+					.set(WmTaskSubmissionPercentRule::getRule, JSONUtil.toJsonStr(rule)));
+		}
+
+		return R.ok(Boolean.TRUE);
+	}
+
 	/**
 	 * 初始化企业限制
 	 *

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmScorePackageStatus.java

@@ -176,4 +176,10 @@ public class WmScorePackageStatus extends Model<WmScorePackageStatus> {
 	 */
 	@TableField(exist = false)
 	private List<String> teamIdList;
+
+	/**
+	 * 积分包编号
+	 */
+	@TableField(exist = false)
+	private String packageSn;
 }

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

@@ -58,6 +58,11 @@ public class WmScorePackageSettleOutput {
 
 	private String userPhones;
 
+	/**
+	 * 身份证号
+	 */
+	private String idCardNums;
+
 	private String subType;
 
 	private SubjectLocation subjectLocation;

+ 9 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmTaskSubmissionRuleService.java

@@ -33,4 +33,13 @@ public interface WmTaskSubmissionRuleService extends IService<WmTaskSubmissionRu
 	 * @return 初始化结果
 	 */
 	Boolean initDeptTaskSubmissionRule(Collection<Integer> deptIds);
+
+	/**
+	 * 初始化企业限制信息(基于前企业数据)
+	 *
+	 * @param deptIds 企业id集合
+	 * @param sourceDeptId 源数据企业id
+	 * @return 初始化结果
+	 */
+	Boolean initDeptTaskSubmissionRule(Collection<Integer> deptIds, Integer sourceDeptId);
 }

+ 11 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaAgentServiceImpl.java

@@ -118,6 +118,8 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
 	 * sysDept.setTaxCode(wmDaAgent.getZjNumber());
 	*/
 	public boolean saveAgent(WmDaAgent wmDaAgent) {
+		Integer deptId = SecurityUtils.getUser().getDeptId();
+
 		wmDaAgent.setCreateTime(LocalDateTime.now());
 		boolean isSave = super.save(wmDaAgent);
 		List<SysDept> list = sysDeptMapper.selectByName(wmDaAgent.getGsmc());
@@ -136,6 +138,10 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
 					wmDaAgent.setDeptId(String.valueOf(list.get(0).getDeptId()));
 					wmDaAgentMapper.updateById(wmDaAgent);
 				}
+
+				// 初始化企业限制信息
+				taskSubmissionRuleService.initDeptTaskSubmissionRule(Collections.singleton(Integer.valueOf(wmDaAgent.getDeptId())), deptId);
+
 				List<SysDeptRelation> newList = new ArrayList<>();
 				SysDeptRelation sysDeptRelation = new SysDeptRelation();
 				sysDeptRelation.setAncestor(SecurityUtils.getUser().getDeptId());
@@ -160,6 +166,10 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
 					wmDaAgent.setDeptId(String.valueOf(list.get(0).getDeptId()));
 					wmDaAgentMapper.updateById(wmDaAgent);
 				}
+
+				// 初始化企业限制信息
+				taskSubmissionRuleService.initDeptTaskSubmissionRule(Collections.singleton(Integer.valueOf(wmDaAgent.getDeptId())), deptId);
+
 				List<SysDeptRelation> newList = new ArrayList<>();
 				SysDeptRelation sysDeptRelation = new SysDeptRelation();
 				sysDeptRelation.setAncestor(SecurityUtils.getUser().getDeptId());
@@ -171,6 +181,7 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
 				newList.add(sysDeptRelation1);
 				return sysDeptRelationService.saveBatch(newList);
 			}
+
 		}
 		return false;
 	}

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

@@ -19,6 +19,7 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.DesensitizedUtil;
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.csp.sentinel.util.StringUtil;
@@ -1745,6 +1746,9 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 				List<SysUser> users = sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, userIds));
 				String userPhones = users.stream().map(SysUser::getUsername).collect(Collectors.joining(","));
 				ouPut.setUserPhones(userPhones);
+				// 脱敏的身份证号
+				String idCardNums = users.stream().map(user -> DesensitizedUtil.idCardNum(user.getIdCardNumber(), 5, 4)).collect(Collectors.joining(","));
+				ouPut.setIdCardNums(idCardNums);
 			}
 			// 查询结算成功时间
 			List<WmScorePackageSettleNote> packageSettleNoteList = settleNoteMapper.selectList(Wrappers.<WmScorePackageSettleNote>lambdaQuery()

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

@@ -27,6 +27,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.ImmutableList;
 import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskTypeSubCategory;
 import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
@@ -541,6 +542,18 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 
 		List<WmScorePackageStatus> statusList = checkPackageStatus(sysU.getUserId(), tWmScorePackage.getId());
 
+		// 查询任务类型启用状态
+		List<WmTaskSubmissionPercentRule> rules = wmTaskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
+				.eq(WmTaskSubmissionPercentRule::getDeptId, user.getDeptId())
+				.eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
+		if (CollUtil.isEmpty(rules)) {
+			throw new RuntimeException("当前企业未开启该任务!");
+		}
+		String[] taskTypeIds = rules.get(0).getRule().getTaskTypeIds();
+		if (!ArrayUtil.contains(taskTypeIds, wmTaskContent.getTemp30())) {
+			throw new RuntimeException("当前企业未开启该任务!");
+		}
+
 		// 检验分值 3W
 		this.limitScore(sysU.getUserId(), sysU.getDeptId(), tWmScorePackage.getPackageType1());
 

+ 3 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskSubmissionPercentRuleServiceImpl.java

@@ -2,9 +2,11 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
 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.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
@@ -68,6 +70,7 @@ public class WmTaskSubmissionPercentRuleServiceImpl
 
 		// 根据deptId分组,再根据batchId分组
 		Map<Integer, Map<String, List<WmTaskSubmissionPercentRule>>> deptsMap = percentRules.stream()
+				.filter(rule -> StrUtil.isNotBlank(rule.getBatchId()) && !UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG.equals(rule.getSubCategory()))
 				.collect(Collectors.groupingBy(WmTaskSubmissionPercentRule::getDeptId, Collectors.groupingBy(WmTaskSubmissionPercentRule::getBatchId)));
 
 		log.info("积分校验规则:{}, \n积分校验规则分组:{}", percentRules, deptsMap);

+ 16 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskSubmissionRuleServiceImpl.java

@@ -75,10 +75,23 @@ public class WmTaskSubmissionRuleServiceImpl extends ServiceImpl<WmTaskSubmissio
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public Boolean initDeptTaskSubmissionRule(Collection<Integer> deptIds) {
+		// 基于平台数据初始化
+		return this.initDeptTaskSubmissionRule(deptIds, CommonConstants.TENANT_ID_1);
+	}
 
-		// 查询平台的配置
-		List<WmTaskSubmissionRule> platformRules = this.list(Wrappers.<WmTaskSubmissionRule>lambdaQuery().eq(WmTaskSubmissionRule::getDeptId, CommonConstants.TENANT_ID_1)
-				.eq(WmTaskSubmissionRule::getSubCategory, UpmsType.TaskSubCategory.SCORE_LIMIT));
+	/**
+	 * 初始化企业限制信息(基于前企业数据)
+	 *
+	 * @param deptIds 企业id集合
+	 * @param sourceDeptId 源数据企业id
+	 * @return 初始化结果
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean initDeptTaskSubmissionRule(Collection<Integer> deptIds, Integer sourceDeptId) {
+		// 查询源数据企业的配置
+		List<WmTaskSubmissionRule> platformRules = this.list(Wrappers.<WmTaskSubmissionRule>lambdaQuery()
+				.eq(WmTaskSubmissionRule::getDeptId, sourceDeptId));
 
 
 		if (CollUtil.isEmpty(platformRules)) {

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

@@ -84,7 +84,7 @@ public class WmTaskTypeSubCate2ServiceImpl extends ServiceImpl<WmTaskTypeSubCate
 		// 查询基础任务类型
 		List<WmTaskType> baseTaskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
 				.eq(WmTaskType::getTaskTypeLevel, "1")
-				.eq(WmTaskType::getEnableFlag, EnableEnum.ENABLE.val())
+//				.eq(WmTaskType::getEnableFlag, EnableEnum.ENABLE.val())
 				.eq(WmTaskType::getDelFlag, DelEnum.NOT_DEL.val()));
 		Map<String, String> baseTaskTypeMap = baseTaskTypeList.stream()
 				.collect(Collectors.toMap(WmTaskType::getTaskTypeName, WmTaskType::getId));

+ 14 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmUserSignServiceImpl.java

@@ -3,11 +3,13 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.copier.CopyOptions;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
 import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
 import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
@@ -106,6 +108,18 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 		}
 		wmUserSign.setTaskTypeId(taskTypeId);
 
+		// 查询任务类型启用状态
+		List<WmTaskSubmissionPercentRule> taskTypeRules = wmTaskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
+				.eq(WmTaskSubmissionPercentRule::getDeptId, sysU.getDeptId())
+				.eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
+		if (CollUtil.isEmpty(taskTypeRules)) {
+			throw new RuntimeException("当前企业未开启该任务!");
+		}
+		String[] taskTypeIds = taskTypeRules.get(0).getRule().getTaskTypeIds();
+		if (!ArrayUtil.contains(taskTypeIds, taskTypeId)) {
+			throw new RuntimeException("当前企业未开启该任务!");
+		}
+
 		// 校验任务类型是否启用
 		WmTaskType _baseTaskType = wmTaskTypeService.getById(taskTypeId);
 		WmTaskType queryTaskType = new WmTaskType();

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageStatusMapper.xml

@@ -39,6 +39,7 @@
 	  					<result property="phone" column="phone"/>
 	  					<result property="userScore" column="user_score"/>
 	 				 	<result property="enableType" column="enable_type"/>
+	 				 	<result property="packageSn" column="package_sn"/>
 	  <result property="taskAddFlag" column="task_add_flag"/>
 	  <result property="taskNum" column="task_num"/>
 
@@ -149,7 +150,7 @@
 
 
 	<select id="getWmScorePackageStatusPage" resultMap="wmScorePackageStatusMap">
-		select distinct s.*,p.score_package_name from wm_score_package_status s
+		select distinct s.*,p.score_package_name, p.pkg_sn as package_sn, u1.username as phone from wm_score_package_status s
 		left join  wm_score_package p on p.id=s.package_id
 		left join sys_user u on u.dept_id=p.send_package_dept_id
 		left join sys_user u1 on u1.user_id = s.user_id

+ 66 - 0
hnqz-upms/hnqz-upms-biz/src/test/java/com/qunzhixinxi/hnqz/admin/WmTaskSubmissionRuleServiceTest.java

@@ -0,0 +1,66 @@
+package com.qunzhixinxi.hnqz.admin;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
+import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskSubmissionPercentRuleService;
+import com.qunzhixinxi.hnqz.common.core.constant.enums.CommonFlag;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import java.util.List;
+
+/**
+ * @author snows
+ * @date 2023/7/18 17:00
+ */
+@Slf4j
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringBootTest(classes = {HnqzAdminApplication.class, Test.class})
+public class WmTaskSubmissionRuleServiceTest {
+
+    @Autowired
+    private WmTaskSubmissionPercentRuleService taskSubmissionPercentRuleService;
+    @Autowired
+    private SysDeptService deptService;
+
+//    @Test
+    public void initTaskTypeConfig() {
+
+        // 查询所有企业
+        List<SysDept> depts = deptService.list();
+
+        // 查询平台企业的规则
+        List<WmTaskSubmissionPercentRule> baseRules = taskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
+                .eq(WmTaskSubmissionPercentRule::getDeptId, 1)
+                .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
+        WmTaskSubmissionPercentRule.PercentRule rule = baseRules.get(0).getRule();
+
+
+        depts.forEach(sysDept -> {
+            // 查询待修改企业的规则
+            List<WmTaskSubmissionPercentRule> queryRules = taskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
+                    .eq(WmTaskSubmissionPercentRule::getDeptId, sysDept.getDeptId())
+                    .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
+            if (CollUtil.isEmpty(queryRules)) {
+                log.info("初始化deptId={}", sysDept.getDeptId());
+                WmTaskSubmissionPercentRule percentRule = new WmTaskSubmissionPercentRule();
+                percentRule.setDeptId(sysDept.getDeptId());
+                percentRule.setRule(rule);
+                percentRule.setSubCategory(UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG);
+                percentRule.setOptFlag(CommonFlag.OptFlag.OK);
+                taskSubmissionPercentRuleService.save(percentRule);
+            }
+        });
+
+
+    }
+}