gunshi-project-ss/src/main/java/com/gunshi/project/xyt/controller/StWaterRController.java

170 lines
8.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.gunshi.project.xyt.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gunshi.core.result.R;
import com.gunshi.db.dto.DateTimeRangeSo;
import com.gunshi.project.xyt.entity.vo.StWaterRVo;
import com.gunshi.project.xyt.model.ResMonthEcoFlow;
import com.gunshi.project.xyt.model.StStbprpB;
import com.gunshi.project.xyt.model.StWaterR;
import com.gunshi.project.xyt.service.ResMonthEcoFlowService;
import com.gunshi.project.xyt.service.StStbprpBService;
import com.gunshi.project.xyt.service.StWaterRService;
import com.gunshi.project.xyt.util.ConvertUtil;
import com.gunshi.project.xyt.util.DateUtil;
import com.gunshi.project.xyt.util.ExcelUtil;
import com.gunshi.project.xyt.validate.markers.Insert;
import com.gunshi.project.xyt.validate.markers.Update;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 描述: 供水量表
* author: xusan
* date: 2024-07-08 17:40:37
*/
@Tag(name = "供水量表")
@RestController
@RequestMapping(value="/stWaterR")
public class StWaterRController {
@Autowired
private StWaterRService service;
@Autowired
private ResMonthEcoFlowService resMonthEcoFlowService;
@Autowired
private StStbprpBService stStbprpBService;
@Operation(summary = "新增")
@PostMapping("/insert")
public R<StWaterR> insert(@Validated(Insert.class) @RequestBody StWaterR dto) {
boolean result = service.save(dto);
return R.ok(result ? dto : null);
}
@Operation(summary = "修改")
@PostMapping("/update")
public R<StWaterR> update(@Validated(Update.class) @RequestBody StWaterR dto) {
boolean result = service.updateById(dto);
return R.ok(result ? dto : null);
}
@Operation(summary = "删除")
@GetMapping("/del/{id}")
public R<Boolean> del(@Schema(name = "id") @PathVariable("id") Serializable id) {
return R.ok(service.removeById(id));
}
@Operation(summary = "列表")
@PostMapping("/list")
public R<List<StWaterR>> list(@RequestBody @Validated StWaterR stWaterR) {
QueryWrapper<StWaterR> wrapper = new QueryWrapper<StWaterR>()
.eq(StringUtils.isNotBlank(stWaterR.getStcd()), "stcd", stWaterR.getStcd())
.ge(ObjectUtils.isNotNull(stWaterR.getStartTime()), "tm", stWaterR.getStartTime())
.le(ObjectUtils.isNotNull(stWaterR.getEndTime()), "tm", stWaterR.getEndTime());
if(StringUtils.isNotBlank(stWaterR.getOrderField())){
wrapper.orderBy(true, ObjectUtils.isEmpty(stWaterR.getIsAsc()) ? false : stWaterR.getIsAsc(), stWaterR.getOrderField());
}
return R.ok(service.list(wrapper));
}
@Operation(summary = "获取月核定流量")
@GetMapping("/getResMonthEcoFlow")
public R<Map<Integer, Object>> getResMonthEcoFlow(@Schema(name = "startTime", description = "开始时间") @RequestParam("startTime") String startTime, @Schema(name = "endTime", description = "开始时间") @RequestParam("endTime") String endTime) {
Map<Integer, Object> resMap = new HashMap<>();
QueryWrapper<ResMonthEcoFlow> wrapper = new QueryWrapper<ResMonthEcoFlow>()
.ge(StringUtils.isNotEmpty(startTime), "month", Integer.valueOf(startTime.substring(5, 7)))
.le(StringUtils.isNotEmpty(endTime), "month", Integer.valueOf(endTime.substring(5, 7)));
List<ResMonthEcoFlow> list = resMonthEcoFlowService.list(wrapper);
if(CollectionUtils.isNotEmpty(list)){
resMap = list.stream().collect(Collectors.toMap(ResMonthEcoFlow::getMonth, ResMonthEcoFlow::getValue));
}
return R.ok(resMap);
}
@Operation(summary = "分页")
@PostMapping("/page")
public R<Page<StWaterR>> page(@RequestBody @Validated StWaterR stWaterR) {
QueryWrapper<StWaterR> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(stWaterR.getStcd()), "stcd", stWaterR.getStcd())
.ge(ObjectUtils.isNotNull(stWaterR.getStartTime()), "tm", stWaterR.getStartTime())
.le(ObjectUtils.isNotNull(stWaterR.getEndTime()), "tm", stWaterR.getEndTime());
if(StringUtils.isNotBlank(stWaterR.getOrderField())){
wrapper.orderBy(true, ObjectUtils.isEmpty(stWaterR.getIsAsc()) ? false : stWaterR.getIsAsc(), stWaterR.getOrderField());
}
return R.ok(service.page(stWaterR.getPageSo().toPage(), wrapper));
}
@Operation(summary = "导出")
@PostMapping("/exportWaterRDataExcel")
@CrossOrigin
public void exportWaterRDataExcel(@RequestBody @Validated StWaterR stWaterR, HttpServletResponse response) {
String filename = "供水流量表" + DateUtil.convertDateToString(stWaterR.getStartTime()) + "_" + DateUtil.convertDateToString(stWaterR.getEndTime());
List<StWaterRVo> vos = ConvertUtil.entityToVoList(this.list(stWaterR).getData(), StWaterRVo.class);
ExcelUtil.exportExcel(vos, filename, StWaterRVo.class, response, "供水流量表");
}
@Operation(summary = "闸阀总览-供水统计")
@PostMapping("/stat")
public R<Map<String, BigDecimal>> stat(@RequestBody @Validated DateTimeRangeSo dateTimeRangeSo) {
return R.ok(service.stat(dateTimeRangeSo));
}
@Operation(summary = "生态流量监控-列表")
@PostMapping("/ecologyFlowList")
public R<List<StWaterR>> ecologyFlowList(@RequestBody @Validated StWaterR stWaterR) {
// 查询生态放水管流量站QQ
StStbprpB stStbprpB = stStbprpBService.getOne(new QueryWrapper<StStbprpB>().eq("sttp", "QQ").last(" limit 1"));
if(ObjectUtils.isEmpty(stStbprpB) || StringUtils.isEmpty(stStbprpB.getStcd())){
return R.ok(new ArrayList<>());
}
QueryWrapper<StWaterR> wrapper = new QueryWrapper<StWaterR>()
.eq("stcd", stStbprpB.getStcd())
.ge(ObjectUtils.isNotNull(stWaterR.getStartTime()), "tm", stWaterR.getStartTime())
.le(ObjectUtils.isNotNull(stWaterR.getEndTime()), "tm", stWaterR.getEndTime());
if(StringUtils.isNotBlank(stWaterR.getOrderField())){
wrapper.orderBy(true, ObjectUtils.isEmpty(stWaterR.getIsAsc()) ? false : stWaterR.getIsAsc(), stWaterR.getOrderField());
}
return R.ok(service.list(wrapper));
}
@Operation(summary = "生态流量监控-分页")
@PostMapping("/ecologyFlowPage")
public R<Page<StWaterR>> ecologyFlowPage(@RequestBody @Validated StWaterR stWaterR) {
// 查询生态放水管流量站QQ
StStbprpB stStbprpB = stStbprpBService.getOne(new QueryWrapper<StStbprpB>().eq("sttp", "QQ").last(" limit 1"));
if(ObjectUtils.isEmpty(stStbprpB) || StringUtils.isEmpty(stStbprpB.getStcd())){
return R.ok(new Page<>());
}
QueryWrapper<StWaterR> wrapper = new QueryWrapper<StWaterR>()
.eq("stcd", stStbprpB.getStcd())
.ge(ObjectUtils.isNotNull(stWaterR.getStartTime()), "tm", stWaterR.getStartTime())
.le(ObjectUtils.isNotNull(stWaterR.getEndTime()), "tm", stWaterR.getEndTime());
if(StringUtils.isNotBlank(stWaterR.getOrderField())){
wrapper.orderBy(true, ObjectUtils.isEmpty(stWaterR.getIsAsc()) ? false : stWaterR.getIsAsc(), stWaterR.getOrderField());
}
return R.ok(service.page(stWaterR.getPageSo().toPage(), wrapper));
}
}