diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsEnergyTargetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsEnergyTargetController.java index 9502da3f9..560793768 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsEnergyTargetController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsEnergyTargetController.java @@ -124,18 +124,19 @@ public class BsEnergyTargetController extends BladeController { /** * 能耗目标 修改 - * @param bsEnergyTargetList + * @param bsEnergyTargetVO * @return */ @PostMapping("/update") - @Operation(summary = "修改", description = "传入bsEnergyTargetList") - public R update(@Valid @RequestBody List bsEnergyTargetList) { - List years = bsEnergyTargetList.stream().map(BsEnergyTargetVO::getYear).collect(Collectors.toList()); - String type = bsEnergyTargetList.get(0).getType(); - List existList = bsEnergyTargetService.list(new LambdaQueryWrapper().in(BsEnergyTargetEntity::getYear, years).eq(BsEnergyTargetEntity::getType, type)); - Map existMap = existList.stream().collect(Collectors.toMap(e -> e.getYear() + "-" + e.getMonth(), BsEnergyTargetEntity::getId, (oldValue, newValue) -> oldValue)); + @Operation(summary = "修改", description = "传入bsEnergyTarget") + public R update(@Valid @RequestBody BsEnergyTargetVO bsEnergyTargetVO) { + String originalYear = bsEnergyTargetVO.getOriginalYear(); + String year = bsEnergyTargetVO.getYear(); + String type = bsEnergyTargetVO.getType(); + List existList = bsEnergyTargetService.list(new LambdaQueryWrapper().eq(BsEnergyTargetEntity::getYear, year).eq(BsEnergyTargetEntity::getType, type)); List saves = new ArrayList<>(); - for (BsEnergyTargetVO bsEnergyTargetVO : bsEnergyTargetList) { + if(originalYear.equals(year)){ + Map existMap = existList.stream().collect(Collectors.toMap(e -> e.getYear() + "-" + e.getMonth(), BsEnergyTargetEntity::getId, (oldValue, newValue) -> oldValue)); List bsEnergyTargetEntities = bsEnergyTargetVO.parseEntities(); for (BsEnergyTargetEntity bsEnergyTarget : bsEnergyTargetEntities) { String key = bsEnergyTarget.getYear() + "-" + bsEnergyTarget.getMonth(); @@ -144,6 +145,20 @@ public class BsEnergyTargetController extends BladeController { } } saves.addAll(bsEnergyTargetEntities); + } else { + if(CollectionUtils.isNotEmpty(existList)){ + return R.fail(year + "年份目标已存在,请勿重复添加"); + } + List existOriginalList = bsEnergyTargetService.list(new LambdaQueryWrapper().eq(BsEnergyTargetEntity::getYear, originalYear).eq(BsEnergyTargetEntity::getType, type)); + Map existOriginalMap = existOriginalList.stream().collect(Collectors.toMap(e -> e.getYear() + "-" + e.getMonth(), BsEnergyTargetEntity::getId, (oldValue, newValue) -> oldValue)); + List bsEnergyTargetEntities = bsEnergyTargetVO.parseEntities(); + for (BsEnergyTargetEntity bsEnergyTarget : bsEnergyTargetEntities) { + String key = originalYear + "-" + bsEnergyTarget.getMonth(); + if (existOriginalMap.containsKey(key)) { + bsEnergyTarget.setId(existOriginalMap.get(key)); + } + } + saves.addAll(bsEnergyTargetEntities); } return R.status(bsEnergyTargetService.saveOrUpdateBatch(saves)); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EnergyTargetMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EnergyTargetMapper.xml index 99c757c6a..8e385d843 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EnergyTargetMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EnergyTargetMapper.xml @@ -23,6 +23,7 @@