Prechádzať zdrojové kódy

fix: 任务类型配置-保存报错

李学松 2 rokov pred
rodič
commit
511d959421

+ 14 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskSubmissionRuleController.java

@@ -3,6 +3,7 @@ package com.qunzhixinxi.hnqz.admin.controller;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 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;
@@ -105,17 +106,25 @@ public class WmTaskSubmissionRuleController {
 	/**
 	 * 更新启用的任务类型
 	 *
-	 * @param rule 任务类型
+	 * @param requestMap 请求参数
 	 * @return 结果
 	 */
 	@PostMapping("/update-task-type")
-	public R<Boolean> updateEnableTaskType(@RequestBody WmTaskSubmissionPercentRule.PercentRule rule) {
+	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);
-		Integer deptId = SecurityUtils.getUser().getDeptId();
+		rule.setTaskTypeIds(taskTypeIds.toArray(new String[0]));
+		Integer currentDeptId = SecurityUtils.getUser().getDeptId();
 
 		List<WmTaskSubmissionPercentRule> rules = taskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
-				.eq(WmTaskSubmissionPercentRule::getDeptId, deptId)
+				.eq(WmTaskSubmissionPercentRule::getDeptId, currentDeptId)
 				.eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
 		if (CollUtil.isEmpty(rules)) {
 			WmTaskSubmissionPercentRule percentRule = new WmTaskSubmissionPercentRule();
@@ -128,7 +137,7 @@ public class WmTaskSubmissionRuleController {
 			taskSubmissionPercentRuleService.update(Wrappers.<WmTaskSubmissionPercentRule>lambdaUpdate()
 					.eq(WmTaskSubmissionPercentRule::getDeptId, deptId)
 					.eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG)
-					.set(WmTaskSubmissionPercentRule::getRule, rule));
+					.set(WmTaskSubmissionPercentRule::getRule, JSONUtil.toJsonStr(rule)));
 		}
 
 		return R.ok(Boolean.TRUE);

+ 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());