能耗目标

liweidong
maxiangong 4 days ago
parent b5a27b73ba
commit 5b2f8367cb
  1. 31
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsEnergyTargetController.java
  2. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EnergyTargetMapper.xml
  3. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/vo/BsEnergyTargetVO.java

@ -124,18 +124,19 @@ public class BsEnergyTargetController extends BladeController {
/** /**
* 能耗目标 修改 * 能耗目标 修改
* @param bsEnergyTargetList * @param bsEnergyTargetVO
* @return * @return
*/ */
@PostMapping("/update") @PostMapping("/update")
@Operation(summary = "修改", description = "传入bsEnergyTargetList") @Operation(summary = "修改", description = "传入bsEnergyTarget")
public R update(@Valid @RequestBody List<BsEnergyTargetVO> bsEnergyTargetList) { public R update(@Valid @RequestBody BsEnergyTargetVO bsEnergyTargetVO) {
List<String> years = bsEnergyTargetList.stream().map(BsEnergyTargetVO::getYear).collect(Collectors.toList()); String originalYear = bsEnergyTargetVO.getOriginalYear();
String type = bsEnergyTargetList.get(0).getType(); String year = bsEnergyTargetVO.getYear();
List<BsEnergyTargetEntity> existList = bsEnergyTargetService.list(new LambdaQueryWrapper<BsEnergyTargetEntity>().in(BsEnergyTargetEntity::getYear, years).eq(BsEnergyTargetEntity::getType, type)); String type = bsEnergyTargetVO.getType();
Map<String, Long> existMap = existList.stream().collect(Collectors.toMap(e -> e.getYear() + "-" + e.getMonth(), BsEnergyTargetEntity::getId, (oldValue, newValue) -> oldValue)); List<BsEnergyTargetEntity> existList = bsEnergyTargetService.list(new LambdaQueryWrapper<BsEnergyTargetEntity>().eq(BsEnergyTargetEntity::getYear, year).eq(BsEnergyTargetEntity::getType, type));
List<BsEnergyTargetEntity> saves = new ArrayList<>(); List<BsEnergyTargetEntity> saves = new ArrayList<>();
for (BsEnergyTargetVO bsEnergyTargetVO : bsEnergyTargetList) { if(originalYear.equals(year)){
Map<String, Long> existMap = existList.stream().collect(Collectors.toMap(e -> e.getYear() + "-" + e.getMonth(), BsEnergyTargetEntity::getId, (oldValue, newValue) -> oldValue));
List<BsEnergyTargetEntity> bsEnergyTargetEntities = bsEnergyTargetVO.parseEntities(); List<BsEnergyTargetEntity> bsEnergyTargetEntities = bsEnergyTargetVO.parseEntities();
for (BsEnergyTargetEntity bsEnergyTarget : bsEnergyTargetEntities) { for (BsEnergyTargetEntity bsEnergyTarget : bsEnergyTargetEntities) {
String key = bsEnergyTarget.getYear() + "-" + bsEnergyTarget.getMonth(); String key = bsEnergyTarget.getYear() + "-" + bsEnergyTarget.getMonth();
@ -144,6 +145,20 @@ public class BsEnergyTargetController extends BladeController {
} }
} }
saves.addAll(bsEnergyTargetEntities); saves.addAll(bsEnergyTargetEntities);
} else {
if(CollectionUtils.isNotEmpty(existList)){
return R.fail(year + "年份目标已存在,请勿重复添加");
}
List<BsEnergyTargetEntity> existOriginalList = bsEnergyTargetService.list(new LambdaQueryWrapper<BsEnergyTargetEntity>().eq(BsEnergyTargetEntity::getYear, originalYear).eq(BsEnergyTargetEntity::getType, type));
Map<String, Long> existOriginalMap = existOriginalList.stream().collect(Collectors.toMap(e -> e.getYear() + "-" + e.getMonth(), BsEnergyTargetEntity::getId, (oldValue, newValue) -> oldValue));
List<BsEnergyTargetEntity> 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)); return R.status(bsEnergyTargetService.saveOrUpdateBatch(saves));
} }

@ -23,6 +23,7 @@
<select id="selectBsEnergyTargetPage" resultType="org.springblade.desk.energy.pojo.vo.BsEnergyTargetVO"> <select id="selectBsEnergyTargetPage" resultType="org.springblade.desk.energy.pojo.vo.BsEnergyTargetVO">
SELECT * FROM ( SELECT * FROM (
SELECT SELECT
year as originalYear,
year, year,
TYPE, TYPE,
MAX(CASE WHEN month = '01' THEN target ELSE NULL END ) AS m01Target, MAX(CASE WHEN month = '01' THEN target ELSE NULL END ) AS m01Target,

@ -47,6 +47,9 @@ public class BsEnergyTargetVO extends BsEnergyTargetEntity {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Schema(description = "原年份")
private String originalYear;
@Schema(description = "1月") @Schema(description = "1月")
private BigDecimal m01Target; private BigDecimal m01Target;

Loading…
Cancel
Save