|
@@ -17,6 +17,7 @@ import com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskVO;
|
|
import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.ReportEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.ReportEnum;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
@@ -35,6 +36,7 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -73,13 +75,36 @@ public class WmDeptTaskController {
|
|
|
|
|
|
List<Map<String, String>> results = new ArrayList<>();
|
|
List<Map<String, String>> results = new ArrayList<>();
|
|
if (CollUtil.isNotEmpty(packageList)) {
|
|
if (CollUtil.isNotEmpty(packageList)) {
|
|
|
|
+ Set<String> packageIdSet = packageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
|
|
|
|
+ // 校验是否超过积分包企业任务上限
|
|
|
|
+ List<WmTask> queryTaskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
|
|
|
|
+ .in(WmTask::getScorePackageId, packageIdSet)
|
|
|
|
+ .eq(WmTask::getEnableFlag, EnableEnum.ENABLE.val())
|
|
|
|
+ .eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
|
|
|
|
+ .eq(WmTask::getTaskStatus, TaskStatusEnum.APPROVED.val()));
|
|
|
|
+ Map<String, Integer> packageTasksScoreMap = new HashMap<>();
|
|
|
|
+ if (CollUtil.isNotEmpty(queryTaskList)) {
|
|
|
|
+ packageTasksScoreMap = queryTaskList.stream()
|
|
|
|
+ .collect(Collectors.groupingBy(WmTask::getScorePackageId,
|
|
|
|
+ Collectors.summingInt(WmTask::getScore)));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Map<String, Integer> finalPackageTasksScoreMap = packageTasksScoreMap;
|
|
packageList.stream()
|
|
packageList.stream()
|
|
.filter(wmScorePackage -> {
|
|
.filter(wmScorePackage -> {
|
|
- if (wmScorePackage.getKfpjf() > 0) {
|
|
|
|
|
|
+ Integer tasksScore = finalPackageTasksScoreMap.getOrDefault(wmScorePackage.getId(), 0);
|
|
|
|
+ // 是否超过企业任务上限
|
|
|
|
+ boolean deptLimitFlag = BigDecimal.valueOf(tasksScore)
|
|
|
|
+ .compareTo(BigDecimal.valueOf(wmScorePackage.getScore())
|
|
|
|
+ .multiply(wmScorePackage.getEntTaskLimit()).divide(new BigDecimal("100"))) <= 0;
|
|
|
|
+ // 同时满足以下条件:
|
|
|
|
+ // 1.可分配积分值大于0的
|
|
|
|
+ // 2.没有超过企业任务上限
|
|
|
|
+ if (wmScorePackage.getKfpjf() > 0 && deptLimitFlag
|
|
|
|
+ && wmScorePackage.getEntTaskLimit().compareTo(BigDecimal.ZERO) > 0) {
|
|
return true;
|
|
return true;
|
|
- } else {
|
|
|
|
- return false;
|
|
|
|
}
|
|
}
|
|
|
|
+ return false;
|
|
}).forEach(wmScorePackage -> {
|
|
}).forEach(wmScorePackage -> {
|
|
Map<String, String> result = new HashMap<>();
|
|
Map<String, String> result = new HashMap<>();
|
|
result.put("id", wmScorePackage.getId());
|
|
result.put("id", wmScorePackage.getId());
|