diff --git a/src/main/java/com/gunshi/project/hsz/controller/HisWaterDataController.java b/src/main/java/com/gunshi/project/hsz/controller/HisWaterDataController.java index 78a63e8..025a376 100644 --- a/src/main/java/com/gunshi/project/hsz/controller/HisWaterDataController.java +++ b/src/main/java/com/gunshi/project/hsz/controller/HisWaterDataController.java @@ -6,6 +6,7 @@ import com.gunshi.project.hsz.common.model.JcskSlB; import com.gunshi.project.hsz.common.model.so.JcskSlBPageSo; import com.gunshi.project.hsz.common.validate.markers.Insert; import com.gunshi.project.hsz.common.validate.markers.Update; +import com.gunshi.project.hsz.entity.dto.ExportCommonDto; import com.gunshi.project.hsz.entity.so.HisWaterDataPageSo; import com.gunshi.project.hsz.entity.vo.HisWaterDataVo; import com.gunshi.project.hsz.mapper.HisWaterDataMapper; @@ -63,10 +64,14 @@ public class HisWaterDataController { @Operation(summary = "导出") @PostMapping("/export") - public void export(@RequestBody @Validated HisWaterDataPageSo pageSo, HttpServletResponse response) { - pageSo.getPageSo().setPageSize(99999); - Page hisWaterDataPage = hisWaterDataService.pageQuery(pageSo); - List records = hisWaterDataPage.getRecords(); + public void export(@RequestBody ExportCommonDto dto, HttpServletResponse response) { + List records = hisWaterDataService.selectList(dto); hisWaterDataService.export(records,response); } + + @Operation(summary = "年份列表") + @GetMapping("/year/list") + public R> yearList(){ + return R.ok(hisWaterDataService.yearList()); + } } diff --git a/src/main/java/com/gunshi/project/hsz/entity/vo/HisWaterDataVo.java b/src/main/java/com/gunshi/project/hsz/entity/vo/HisWaterDataVo.java index 70aa89a..4aee677 100644 --- a/src/main/java/com/gunshi/project/hsz/entity/vo/HisWaterDataVo.java +++ b/src/main/java/com/gunshi/project/hsz/entity/vo/HisWaterDataVo.java @@ -10,5 +10,5 @@ import java.util.List; @Data public class HisWaterDataVo extends HisWaterData{ - private List list; + private List children; } diff --git a/src/main/java/com/gunshi/project/hsz/mapper/HisWaterDataMapper.java b/src/main/java/com/gunshi/project/hsz/mapper/HisWaterDataMapper.java index 95eb39c..16e7841 100644 --- a/src/main/java/com/gunshi/project/hsz/mapper/HisWaterDataMapper.java +++ b/src/main/java/com/gunshi/project/hsz/mapper/HisWaterDataMapper.java @@ -3,6 +3,7 @@ package com.gunshi.project.hsz.mapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.gunshi.project.hsz.entity.dto.ExportCommonDto; import com.gunshi.project.hsz.entity.so.HisWaterDataPageSo; import com.gunshi.project.hsz.entity.vo.HisWaterDataVo; import com.gunshi.project.hsz.model.HisWaterData; @@ -10,6 +11,8 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + @Mapper public interface HisWaterDataMapper extends BaseMapper { @@ -19,4 +22,18 @@ public interface HisWaterDataMapper extends BaseMapper { """) Page queryPage(Page page, @Param("obj") HisWaterDataPageSo queryWrapper); + @Select(""" + +""") + List selectYearList(@Param("dto") ExportCommonDto dto); + } diff --git a/src/main/java/com/gunshi/project/hsz/model/HisWaterData.java b/src/main/java/com/gunshi/project/hsz/model/HisWaterData.java index a8af5ba..df1fe6c 100644 --- a/src/main/java/com/gunshi/project/hsz/model/HisWaterData.java +++ b/src/main/java/com/gunshi/project/hsz/model/HisWaterData.java @@ -30,9 +30,6 @@ public class HisWaterData { @Schema(description = "月份平均蓄水量") private BigDecimal avgWater; - @TableField(exist = false) - @Schema(description = "年度总蓄水量") - private BigDecimal totalWater; /** diff --git a/src/main/java/com/gunshi/project/hsz/service/HisWaterDataService.java b/src/main/java/com/gunshi/project/hsz/service/HisWaterDataService.java index 2faa86d..b86b701 100644 --- a/src/main/java/com/gunshi/project/hsz/service/HisWaterDataService.java +++ b/src/main/java/com/gunshi/project/hsz/service/HisWaterDataService.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.project.hsz.entity.dto.ExportCommonDto; import com.gunshi.project.hsz.entity.so.HisWaterDataPageSo; import com.gunshi.project.hsz.entity.vo.HisWaterDataVo; import com.gunshi.project.hsz.mapper.HisWaterDataMapper; @@ -48,9 +49,9 @@ public class HisWaterDataService extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(HisWaterData::getYear, record.getYear()) - .eq(HisWaterData::getType,record.getType()) + .eq(HisWaterData::getType,2) .orderByAsc(HisWaterData::getMonth); - record.setList(this.list(queryWrapper)); + record.setChildren(this.list(queryWrapper)); } } @@ -58,7 +59,11 @@ public class HisWaterDataService extends ServiceImpl list = dto.getList(); + List list = dto.getChildren(); + list.stream().forEach(o ->{ + o.setId(null); + }); + hisWaterData.setId(null); list.add(hisWaterData); boolean flag = saveBatch(list); return flag; @@ -75,8 +80,8 @@ public class HisWaterDataService extends ServiceImpl 0){ throw new IllegalArgumentException("该年份已存在历史降雨资料"); } - Long len = dto.getList().stream().map(HisWaterData::getMonth).distinct().collect(Collectors.counting()); - if(dto.getList().size() != len.intValue()){ + Long len = dto.getChildren().stream().map(HisWaterData::getMonth).distinct().collect(Collectors.counting()); + if(dto.getChildren().size() != len.intValue()){ throw new IllegalArgumentException("月份不可重复"); } } @@ -88,7 +93,7 @@ public class HisWaterDataService extends ServiceImpl list = dto.getList(); + List list = dto.getChildren(); return saveBatch(list); } @@ -139,8 +144,8 @@ public class HisWaterDataService extends ServiceImpl monthRow = new ArrayList<>(); monthRow.add(monthData.getMonth() + "月"); monthRow.add(monthData.getAvgWater()); @@ -151,7 +156,7 @@ public class HisWaterDataService extends ServiceImpl totalRow = new ArrayList<>(); totalRow.add("年度总蓄水量"); - totalRow.add(yearData.getTotalWater()); + totalRow.add(yearData.getAvgWater()); dataList.add(totalRow); // 添加空行分隔 @@ -174,4 +179,18 @@ public class HisWaterDataService extends ServiceImpl yearList() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(HisWaterData::getType,1); + return this.baseMapper.selectList(queryWrapper); + } + + public List selectList(ExportCommonDto dto) { + List hisWaterDataVos = this.baseMapper.selectYearList(dto); + if(!hisWaterDataVos.isEmpty()){ + queryChild(hisWaterDataVos); + } + return hisWaterDataVos; + } }