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.project.xyt.entity.vo.StWaterRVo; import com.gunshi.project.xyt.model.ResMonthEcoFlow; import com.gunshi.project.xyt.model.StWaterR; import com.gunshi.project.xyt.service.ResMonthEcoFlowService; 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; /** * 描述: 供水量表 * author: xusan * date: 2024-07-08 17:40:37 */ @Tag(name = "供水量表") @RestController @RequestMapping(value="/stWaterR") public class StWaterRController { @Autowired private StWaterRService service; @Operation(summary = "新增") @PostMapping("/insert") public R insert(@Validated(Insert.class) @RequestBody StWaterR dto) { boolean result = service.save(dto); return R.ok(result ? dto : null); } @Operation(summary = "修改") @PostMapping("/update") public R 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 del(@Schema(name = "id") @PathVariable("id") Serializable id) { return R.ok(service.removeById(id)); } @Operation(summary = "列表") @PostMapping("/list") public R> list(@RequestBody @Validated StWaterR stWaterR) { QueryWrapper wrapper = new QueryWrapper() .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.getSortField())){ wrapper.orderBy(true, ObjectUtils.isEmpty(stWaterR.getIsAsc()) ? false : stWaterR.getIsAsc(), stWaterR.getSortField()); } return R.ok(service.list(wrapper)); } @Operation(summary = "获取月核定流量") @GetMapping("/getResMonthEcoFlow") public R> getResMonthEcoFlow(@Schema(name = "startTime", description = "开始时间") @RequestParam("startTime") String startTime, @Schema(name = "endTime", description = "开始时间") @RequestParam("endTime") String endTime) { Map resMap = new HashMap<>(); QueryWrapper wrapper = new QueryWrapper() .ge(StringUtils.isNotEmpty(startTime), "month", Integer.valueOf(startTime.substring(5, 7))) .le(StringUtils.isNotEmpty(endTime), "month", Integer.valueOf(endTime.substring(5, 7))); List 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(@RequestBody @Validated StWaterR stWaterR) { QueryWrapper 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.getSortField())){ wrapper.orderBy(true, ObjectUtils.isEmpty(stWaterR.getIsAsc()) ? false : stWaterR.getIsAsc(), stWaterR.getSortField()); } 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 vos = ConvertUtil.entityToVoList(this.list(stWaterR).getData(), StWaterRVo.class); ExcelUtil.exportExcel(vos, filename, StWaterRVo.class, response, "供水流量表"); } }