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

feat: 任务类型百分比限制-完成联调

李学松 2 жил өмнө
parent
commit
329671fc54

+ 7 - 11
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskSubmissionPercentRuleController.java

@@ -7,13 +7,13 @@ import com.qunzhixinxi.hnqz.admin.service.WmTaskSubmissionPercentRuleService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
 import com.qunzhixinxi.hnqz.common.core.constant.enums.CommonFlag;
 import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.springframework.http.MediaType;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.constraints.NotEmpty;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -103,6 +103,7 @@ public class WmTaskSubmissionPercentRuleController {
 	 * @param rules
 	 * @return
 	 */
+	@SysLog("保存百分比规则")
 	@PostMapping
 	public R<Boolean> save(@Validated @RequestBody List<WmTaskSubmissionPercentRule> rules) {
 
@@ -123,23 +124,17 @@ public class WmTaskSubmissionPercentRuleController {
 	 * @param rules
 	 * @return
 	 */
+	@SysLog("更新百分比规则")
 	@PutMapping
 	public R<Boolean> update(@RequestBody List<WmTaskSubmissionPercentRule> rules) {
 
-		List<WmTaskSubmissionPercentRule> updateRules = new ArrayList<>();
 		for (WmTaskSubmissionPercentRule rule : rules) {
-			if (rule.getRuleId() == null) {
-				return R.failed("ruleId不能为空");
+			if (rule.getBatchId() == null) {
+				return R.failed("batchId不能为空");
 			}
-
-			WmTaskSubmissionPercentRule updateRule = new WmTaskSubmissionPercentRule();
-			updateRule.setRuleId(rule.getRuleId());
-			updateRule.setRule(rule.getRule());
-			updateRules.add(updateRule);
 		}
 
-
-		return R.ok(wmTaskSubmissionPercentRuleService.updateBatchById(updateRules));
+		return R.ok(wmTaskSubmissionPercentRuleService.updateRule(rules));
 	}
 
 	/**
@@ -148,6 +143,7 @@ public class WmTaskSubmissionPercentRuleController {
 	 * @param batchId
 	 * @return
 	 */
+	@SysLog("删除百分比规则")
 	@DeleteMapping("/{batchId}")
 	public R<Boolean> delete(@PathVariable("batchId") String batchId) {
 

+ 10 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmTaskSubmissionPercentRuleService.java

@@ -5,6 +5,8 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 
+import java.util.List;
+
 /**
  * 任务提交百分比规则
  *
@@ -20,4 +22,12 @@ public interface WmTaskSubmissionPercentRuleService extends IService<WmTaskSubmi
 	 * @return
 	 */
 	R<?> checkPercentRule(WmScorePackage scorePackage, Integer deptId);
+
+	/**
+	 * 更新
+	 *
+	 * @param rules
+	 * @return
+	 */
+	Boolean updateRule(List<WmTaskSubmissionPercentRule> rules);
 }

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

@@ -16,7 +16,9 @@ import com.qunzhixinxi.hnqz.common.core.constant.enums.CommonFlag;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -102,4 +104,39 @@ public class WmTaskSubmissionPercentRuleServiceImpl
 
 		return failFlag.get() ? R.failed(null, message.get()) : R.ok();
 	}
+
+	/**
+	 * 更新
+	 *
+	 * @param rules
+	 * @return
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean updateRule(List<WmTaskSubmissionPercentRule> rules) {
+
+		// 先删除,后新增
+		String batchId = rules.get(0).getBatchId();
+		List<WmTaskSubmissionPercentRule> queryRules = this.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
+				.eq(WmTaskSubmissionPercentRule::getBatchId, batchId));
+		WmTaskSubmissionPercentRule percentRule = queryRules.get(0);
+
+		this.update(Wrappers.<WmTaskSubmissionPercentRule>lambdaUpdate()
+				.eq(WmTaskSubmissionPercentRule::getBatchId, batchId)
+				.set(WmTaskSubmissionPercentRule::getOptFlag, CommonFlag.OptFlag.DELETED));
+
+		List<WmTaskSubmissionPercentRule> updateRules = new ArrayList<>();
+		for (WmTaskSubmissionPercentRule rule : rules) {
+
+			WmTaskSubmissionPercentRule insertRule = new WmTaskSubmissionPercentRule();
+			insertRule.setRule(rule.getRule());
+			insertRule.setBatchId(percentRule.getBatchId());
+			insertRule.setDeptId(percentRule.getDeptId());
+			insertRule.setSubCategory(rule.getSubCategory());
+			insertRule.setOptFlag(CommonFlag.OptFlag.OK);
+			updateRules.add(insertRule);
+		}
+
+		return this.saveBatch(updateRules);
+	}
 }