|
@@ -56,7 +56,6 @@ import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
-import java.util.Collection;
|
|
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
import java.util.Comparator;
|
|
import java.util.Comparator;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
@@ -261,6 +260,9 @@ public class SysImplementPlanManager {
|
|
}
|
|
}
|
|
|
|
|
|
private List<TreeNode<Integer>> getToPages(List<SysImplementPlan> records, Map<Integer, SysDept> consigneeMap, Map<Integer, Map<String, String>> skuMap) {
|
|
private List<TreeNode<Integer>> getToPages(List<SysImplementPlan> records, Map<Integer, SysDept> consigneeMap, Map<Integer, Map<String, String>> skuMap) {
|
|
|
|
+
|
|
|
|
+ Map<Integer, SysImplementPlan> planId2PlanMap = records.stream().collect(Collectors.toMap(SysImplementPlan::getPlanId, Function.identity(), (v1, v2) -> v1));
|
|
|
|
+
|
|
return records.stream().map(record -> {
|
|
return records.stream().map(record -> {
|
|
SysImplementPlanVO.ToPage p = BeanUtil.copyProperties(record, SysImplementPlanVO.ToPage.class);
|
|
SysImplementPlanVO.ToPage p = BeanUtil.copyProperties(record, SysImplementPlanVO.ToPage.class);
|
|
|
|
|
|
@@ -304,6 +306,28 @@ public class SysImplementPlanManager {
|
|
treeNode.setName(p.getPlanName());
|
|
treeNode.setName(p.getPlanName());
|
|
treeNode.setWeight(p.getPlanId());
|
|
treeNode.setWeight(p.getPlanId());
|
|
Map<String, Object> extra = BeanUtil.beanToMap(p);
|
|
Map<String, Object> extra = BeanUtil.beanToMap(p);
|
|
|
|
+ // 获取当前包的父级包
|
|
|
|
+ Integer parentId = record.getParentId();
|
|
|
|
+
|
|
|
|
+ long parentPlanScore;
|
|
|
|
+ long parentPlanAvailScore;
|
|
|
|
+ if (parentId == 0) {
|
|
|
|
+ parentPlanScore = record.getPlanScore();
|
|
|
|
+ parentPlanAvailScore = record.getAvailScore();
|
|
|
|
+ } else {
|
|
|
|
+ SysImplementPlan plan = planId2PlanMap.get(record.getParentId());
|
|
|
|
+ if (plan == null) {
|
|
|
|
+ parentPlanScore = 0L;
|
|
|
|
+ parentPlanAvailScore = 0L;
|
|
|
|
+ } else {
|
|
|
|
+ parentPlanScore = plan.getPlanScore();
|
|
|
|
+ parentPlanAvailScore = plan.getAvailScore();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ extra.put("parentPlanScore", parentPlanScore);
|
|
|
|
+ extra.put("parentPlanAvailScore", parentPlanAvailScore);
|
|
treeNode.setExtra(extra);
|
|
treeNode.setExtra(extra);
|
|
|
|
|
|
return treeNode;
|
|
return treeNode;
|
|
@@ -1366,9 +1390,28 @@ public class SysImplementPlanManager {
|
|
|
|
|
|
SysImplementPlan plan = implementPlanService.getById(resource.getPlanId());
|
|
SysImplementPlan plan = implementPlanService.getById(resource.getPlanId());
|
|
|
|
|
|
- // if (UpmsState.ImplementPlanState.PASSED.equals(plan.getPlanState())) {
|
|
|
|
- // throw new BizException("当前执行计划已经审核通过了,不能修改");
|
|
|
|
- // }
|
|
|
|
|
|
+ // 年度计划,只要是状态不为通过,就可以编辑
|
|
|
|
+ if (UpmsType.ImplementPlanType.ANN.equals(plan.getPlanType())) {
|
|
|
|
+ if (UpmsState.ImplementPlanState.PASSED.equals(plan.getPlanState())) {
|
|
|
|
+ throw new BizException("当前执行计划已经审核通过了,不能修改");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 季度计划
|
|
|
|
+ else {
|
|
|
|
+
|
|
|
|
+ // 其他下发的包 非通过才能编辑
|
|
|
|
+ if (plan.getParentId() != 0 && UpmsState.ImplementPlanState.PASSED.equals(plan.getPlanState())) {
|
|
|
|
+ throw new BizException("当前执行计划已经审核通过了,不能修改");
|
|
|
|
+ }
|
|
|
|
+ // 运营发放的,只要没有分解的就可以
|
|
|
|
+ else {
|
|
|
|
+ int count = implementPlanService.count(Wrappers.<SysImplementPlan>lambdaQuery().eq(SysImplementPlan::getParentId, resource.getPlanId()));
|
|
|
|
+
|
|
|
|
+ if (count > 0) {
|
|
|
|
+ throw new BizException("当前执行计划已经分发通过了,不能修改");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
boolean dump = implementPlanService.dupName(resource.getPlanName(), user.getDeptId(), Collections.singletonList(resource.getPlanId()));
|
|
boolean dump = implementPlanService.dupName(resource.getPlanName(), user.getDeptId(), Collections.singletonList(resource.getPlanId()));
|
|
@@ -1388,9 +1431,23 @@ public class SysImplementPlanManager {
|
|
targetState = currentState;
|
|
targetState = currentState;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ updated.setAvailScore(resource.getPlanScore());
|
|
updated.setPlanState(targetState);
|
|
updated.setPlanState(targetState);
|
|
updated.setUpdateBy(user.getUsername());
|
|
updated.setUpdateBy(user.getUsername());
|
|
updated.setUpdateTime(LocalDateTime.now());
|
|
updated.setUpdateTime(LocalDateTime.now());
|
|
- return implementPlanService.updatePlan(updated);
|
|
|
|
|
|
+ implementPlanService.updatePlan(updated);
|
|
|
|
+
|
|
|
|
+ // 更新父级包信息
|
|
|
|
+ if (plan.getParentId() != 0) {
|
|
|
|
+
|
|
|
|
+ implementPlanService.update(Wrappers.<SysImplementPlan>lambdaUpdate()
|
|
|
|
+ .eq(SysImplementPlan::getPlanId, plan.getParentId())
|
|
|
|
+ .setSql("avail_score = avail_score +" + plan.getPlanScore() + "-" + resource.getPlanScore())
|
|
|
|
+ .set(SysImplementPlan::getUpdateTime, LocalDateTime.now())
|
|
|
|
+ .set(SysImplementPlan::getUpdateBy, user.getUsername()));
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
}
|
|
}
|