From fed3345b8a721a4ec1cc235ac1b66b3f355507dd Mon Sep 17 00:00:00 2001 From: chengjunwang <952621270@qq.com> Date: Thu, 8 May 2025 16:10:50 +0800 Subject: [PATCH] =?UTF-8?q?[add]=E6=B0=B4=E6=B3=B5=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=80=BB=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...gpaishuiPumpoperationrecordController.java | 29 ++++- ...mpoperationrecordReportByMonthCountVo.java | 32 +++++ ...umpoperationrecordReportByYearCountVo.java | 28 +++++ ...angpaishuiPumpoperationrecordReportVo.java | 29 +++++ .../FangpaishuiPumpoperationrecordMapper.java | 7 ++ .../FangpaishuiPumpoperationrecordMapper.xml | 34 ++++++ ...FangpaishuiPumpoperationrecordService.java | 9 ++ ...paishuiPumpoperationrecordServiceImpl.java | 110 ++++++++++++++++++ 8 files changed, 274 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportByMonthCountVo.java create mode 100644 src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportByYearCountVo.java create mode 100644 src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportVo.java diff --git a/src/main/java/com/jdc/jdcproject/controller/FangpaishuiPumpoperationrecordController.java b/src/main/java/com/jdc/jdcproject/controller/FangpaishuiPumpoperationrecordController.java index 0a93f66..ecc7dfe 100644 --- a/src/main/java/com/jdc/jdcproject/controller/FangpaishuiPumpoperationrecordController.java +++ b/src/main/java/com/jdc/jdcproject/controller/FangpaishuiPumpoperationrecordController.java @@ -2,20 +2,23 @@ package com.jdc.jdcproject.controller; import com.jdc.jdcproject.entity.FangpaishuiPumpoperationrecord; import com.jdc.jdcproject.entity.FangpaishuiUnit; -import com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordVo; -import com.jdc.jdcproject.entity.VO.FangpaishuiUnitVo; +import com.jdc.jdcproject.entity.FangpaishuiWatertreatmentrecord; +import com.jdc.jdcproject.entity.VO.*; import com.jdc.jdcproject.service.EquipmentService; import com.jdc.jdcproject.service.FangpaishuiPumpoperationrecordService; +import com.jdc.jdcproject.utils.LastDayOfMonth; import com.jdc.jdcproject.utils.Result; import io.swagger.v3.oas.annotations.Operation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.sql.SQLOutput; +import java.text.ParseException; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @RestController @RequestMapping("/FangpaishuiPumpoperationrecordController") @@ -78,4 +81,22 @@ public class FangpaishuiPumpoperationrecordController { return Result.errorResult(); } } + + @Operation(summary = "根据月查询排/倒水月报表") + @GetMapping("findFangpaishuiPumpoperationrecordByMonth/{date}") + public Result findWatertreatmentrecordByMonth(@PathVariable String date) throws ParseException { + String[] s = date.split("-"); + int year = Integer.parseInt(s[0]); + int month = Integer.parseInt(s[1]); + LastDayOfMonth lastDayOfMonth = new LastDayOfMonth(); + String upDay = lastDayOfMonth.getLastDayOfMonth(year, month-1); + String lastDay = lastDayOfMonth.getLastDayOfMonth(year, month); + upDay = lastDayOfMonth.dateCalculations(upDay,5); + lastDay = lastDayOfMonth.dateCalculations(lastDay,6); + FangpaishuiPumpoperationrecordReportByYearCountVo fangpaishuiPumpoperationrecordReportByYearCountVo =fangpaishuiPumpoperationrecordService.findAll(upDay,lastDay); + + + + return Result.successResult().data("fangpaishuiPumpoperationrecordReportByYearCountVo",fangpaishuiPumpoperationrecordReportByYearCountVo); + } } diff --git a/src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportByMonthCountVo.java b/src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportByMonthCountVo.java new file mode 100644 index 0000000..d09ae99 --- /dev/null +++ b/src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportByMonthCountVo.java @@ -0,0 +1,32 @@ +package com.jdc.jdcproject.entity.VO; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class FangpaishuiPumpoperationrecordReportByMonthCountVo implements Serializable { + + @Schema(description = "排/倒明细总") + private List fangpaishuiPumpoperationrecordReportVos; + + + @Schema(description = "所有泵站月总排和倒水量") + private int VolumeAllByMouth; + + @Schema(description = "所有泵站年总排和倒水量") + private int VolumeAllByYear; + + @Schema(description = "类型") + private String type; + + + + + + + + +} diff --git a/src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportByYearCountVo.java b/src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportByYearCountVo.java new file mode 100644 index 0000000..51ec3ad --- /dev/null +++ b/src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportByYearCountVo.java @@ -0,0 +1,28 @@ +package com.jdc.jdcproject.entity.VO; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; +@Data +public class FangpaishuiPumpoperationrecordReportByYearCountVo implements Serializable { + + @Schema(description = "合计报表") + private List fangpaishuiPumpoperationrecordReportByMonthCountVos; + + + @Schema(description = "月总排和倒水量") + private int VolumeByMouthCount; + + @Schema(description = "年总排和倒水量") + private int VolumeByYearCount; + + + + + + + + +} diff --git a/src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportVo.java b/src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportVo.java new file mode 100644 index 0000000..106a7d5 --- /dev/null +++ b/src/main/java/com/jdc/jdcproject/entity/VO/FangpaishuiPumpoperationrecordReportVo.java @@ -0,0 +1,29 @@ +package com.jdc.jdcproject.entity.VO; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +@Data +public class FangpaishuiPumpoperationrecordReportVo implements Serializable { + + @Schema(description = "泵站名称") + private String EquipmentName; + + @Schema(description = "日志数据") + private List fangpaishuiPumpoperationrecordVos; + + @Schema(description = "本泵站月总排/倒水量") + private int VolumeByMouth; + + + + + + + + + +} diff --git a/src/main/java/com/jdc/jdcproject/mapper/FangpaishuiPumpoperationrecordMapper.java b/src/main/java/com/jdc/jdcproject/mapper/FangpaishuiPumpoperationrecordMapper.java index ebab766..798b3f0 100644 --- a/src/main/java/com/jdc/jdcproject/mapper/FangpaishuiPumpoperationrecordMapper.java +++ b/src/main/java/com/jdc/jdcproject/mapper/FangpaishuiPumpoperationrecordMapper.java @@ -2,8 +2,10 @@ package com.jdc.jdcproject.mapper; import com.jdc.jdcproject.entity.FangpaishuiPumpoperationrecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordReportVo; import com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordVo; import com.jdc.jdcproject.entity.VO.FangpaishuiUnitVo; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -16,6 +18,11 @@ import java.util.List; public interface FangpaishuiPumpoperationrecordMapper extends BaseMapper { List findDetail(FangpaishuiPumpoperationrecordVo vo); + + List findAll(String upDate, String lastDate); + + int findCount(@Param("type")String type, @Param("upDate")String upDate, @Param("lastDate") String lastDate); + } diff --git a/src/main/java/com/jdc/jdcproject/mapper/xml/FangpaishuiPumpoperationrecordMapper.xml b/src/main/java/com/jdc/jdcproject/mapper/xml/FangpaishuiPumpoperationrecordMapper.xml index a012bc2..19a8451 100644 --- a/src/main/java/com/jdc/jdcproject/mapper/xml/FangpaishuiPumpoperationrecordMapper.xml +++ b/src/main/java/com/jdc/jdcproject/mapper/xml/FangpaishuiPumpoperationrecordMapper.xml @@ -26,5 +26,39 @@ + + + + diff --git a/src/main/java/com/jdc/jdcproject/service/FangpaishuiPumpoperationrecordService.java b/src/main/java/com/jdc/jdcproject/service/FangpaishuiPumpoperationrecordService.java index d5e3392..7fcd1bb 100644 --- a/src/main/java/com/jdc/jdcproject/service/FangpaishuiPumpoperationrecordService.java +++ b/src/main/java/com/jdc/jdcproject/service/FangpaishuiPumpoperationrecordService.java @@ -2,6 +2,8 @@ package com.jdc.jdcproject.service; import com.jdc.jdcproject.entity.FangpaishuiPumpoperationrecord; import com.baomidou.mybatisplus.extension.service.IService; +import com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordReportByYearCountVo; +import com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordReportVo; import com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordVo; import com.jdc.jdcproject.entity.VO.FangpaishuiUnitVo; @@ -13,5 +15,12 @@ import java.util.List; * @createDate 2025-05-07 13:37:49 */ public interface FangpaishuiPumpoperationrecordService extends IService { + //查询泵站操作明细 List findDetail(FangpaishuiPumpoperationrecordVo vo); + //查询泵站操作总报表 + FangpaishuiPumpoperationrecordReportByYearCountVo findAll(String upDate, String lastDate); + //查询操作时间节点查询年总量 + int findCount(String type,String lastDate); + + } diff --git a/src/main/java/com/jdc/jdcproject/service/impl/FangpaishuiPumpoperationrecordServiceImpl.java b/src/main/java/com/jdc/jdcproject/service/impl/FangpaishuiPumpoperationrecordServiceImpl.java index 1ad48d0..028af56 100644 --- a/src/main/java/com/jdc/jdcproject/service/impl/FangpaishuiPumpoperationrecordServiceImpl.java +++ b/src/main/java/com/jdc/jdcproject/service/impl/FangpaishuiPumpoperationrecordServiceImpl.java @@ -2,12 +2,19 @@ package com.jdc.jdcproject.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jdc.jdcproject.entity.FangpaishuiPumpoperationrecord; +import com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordReportByMonthCountVo; +import com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordReportByYearCountVo; +import com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordReportVo; import com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordVo; import com.jdc.jdcproject.service.FangpaishuiPumpoperationrecordService; import com.jdc.jdcproject.mapper.FangpaishuiPumpoperationrecordMapper; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; /** * @author 95262 @@ -22,6 +29,109 @@ public class FangpaishuiPumpoperationrecordServiceImpl extends ServiceImpl findDetail(FangpaishuiPumpoperationrecordVo vo) { return baseMapper.findDetail(vo); } + + @Override + public FangpaishuiPumpoperationrecordReportByYearCountVo findAll(String upDate, String lastDate) { + List fangpaishuiPumpoperationrecordVos = baseMapper.findAll(upDate,lastDate); + //根据类型分组(排水/倒水) + Map> stringListMap = fangpaishuiPumpoperationrecordVos.stream().collect(Collectors.groupingBy(FangpaishuiPumpoperationrecordVo::getOperationType)); + List fangpaishuiPumpoperationrecordVoPais = new ArrayList<>(); + List fangpaishuiPumpoperationrecordVoDao = new ArrayList<>(); + Set>> entries = stringListMap.entrySet(); + for(Map.Entry m : entries){ + if (m.getKey().equals("排水")){ + fangpaishuiPumpoperationrecordVoPais.addAll((List) m.getValue()); + }else { + fangpaishuiPumpoperationrecordVoDao.addAll((List) m.getValue()); + } + } + //排水根据机组合并数据 + fangpaishuiPumpoperationrecordVoPais = fangpaishuiPumpoperationrecordVoPais.stream().collect(Collectors.toMap(FangpaishuiPumpoperationrecordVo::getUnitID, a -> a, (o1,o2)-> { + o1.setOperationTime(o1.getOperationTime() + o2.getOperationTime()); + o1.setVolume(o1.getVolume () + o2.getVolume ()); + return o1; + })).values().stream().collect(Collectors.toList()); + + //倒水根据机组合并数据 + fangpaishuiPumpoperationrecordVoDao = fangpaishuiPumpoperationrecordVoDao.stream().collect(Collectors.toMap(FangpaishuiPumpoperationrecordVo::getUnitID, a -> a, (o1,o2)-> { + o1.setOperationTime(o1.getOperationTime() + o2.getOperationTime()); + o1.setVolume(o1.getVolume () + o2.getVolume ()); + return o1; + })).values().stream().collect(Collectors.toList()); + + //排水根据泵站分组 + Map> paiMap = fangpaishuiPumpoperationrecordVoPais.stream().collect(Collectors.groupingBy(FangpaishuiPumpoperationrecordVo::getEquipmentName)); + Set>> paiEntries = paiMap.entrySet(); + List fangpaishuiPumpoperationrecordReportVosPai = new ArrayList<>(); + for(Map.Entry m : paiEntries){ + + FangpaishuiPumpoperationrecordReportVo vo = new FangpaishuiPumpoperationrecordReportVo(); + vo.setEquipmentName((String) m.getKey()); + vo.setFangpaishuiPumpoperationrecordVos((List) m.getValue()); + int VolumeByMouth =0; + for (FangpaishuiPumpoperationrecordVo fangpaishuiPumpoperationrecordVo : (List) m.getValue()) { + VolumeByMouth+=fangpaishuiPumpoperationrecordVo.getVolume(); + } + vo.setVolumeByMouth(VolumeByMouth); + fangpaishuiPumpoperationrecordReportVosPai.add(vo); + } + + //倒水根据泵站分组 + Map> paiMap1 = fangpaishuiPumpoperationrecordVoDao.stream().collect(Collectors.groupingBy(FangpaishuiPumpoperationrecordVo::getEquipmentName)); + Set>> paiEntries1 = paiMap1.entrySet(); + List fangpaishuiPumpoperationrecordReportVosDao = new ArrayList<>(); + for(Map.Entry m : paiEntries1){ + + FangpaishuiPumpoperationrecordReportVo vo = new FangpaishuiPumpoperationrecordReportVo(); + vo.setEquipmentName((String) m.getKey()); + vo.setFangpaishuiPumpoperationrecordVos((List) m.getValue()); + int VolumeByMouth =0; + for (FangpaishuiPumpoperationrecordVo fangpaishuiPumpoperationrecordVo : (List) m.getValue()) { + VolumeByMouth+=fangpaishuiPumpoperationrecordVo.getVolume(); + } + vo.setVolumeByMouth(VolumeByMouth); + fangpaishuiPumpoperationrecordReportVosDao.add( vo); + } + + + FangpaishuiPumpoperationrecordReportByMonthCountVo fPai = new FangpaishuiPumpoperationrecordReportByMonthCountVo(); + fPai.setFangpaishuiPumpoperationrecordReportVos(fangpaishuiPumpoperationrecordReportVosPai); + int VolumeAllByMouth = 0; + for (FangpaishuiPumpoperationrecordReportVo fangpaishuiPumpoperationrecordReportVo : fangpaishuiPumpoperationrecordReportVosPai) { + VolumeAllByMouth+=fangpaishuiPumpoperationrecordReportVo.getVolumeByMouth(); + } + fPai.setVolumeAllByMouth(VolumeAllByMouth); + fPai.setType("排水"); + fPai.setVolumeAllByYear(findCount("排水",lastDate)); + + + + FangpaishuiPumpoperationrecordReportByMonthCountVo fDao = new FangpaishuiPumpoperationrecordReportByMonthCountVo(); + fDao.setFangpaishuiPumpoperationrecordReportVos(fangpaishuiPumpoperationrecordReportVosDao); + int VolumeAllByMouth1 = 0; + for (FangpaishuiPumpoperationrecordReportVo fangpaishuiPumpoperationrecordReportVo : fangpaishuiPumpoperationrecordReportVosDao) { + VolumeAllByMouth1+=fangpaishuiPumpoperationrecordReportVo.getVolumeByMouth(); + } + fDao.setVolumeAllByMouth(VolumeAllByMouth1); + fDao.setType("倒水"); + fDao.setVolumeAllByYear(findCount("倒水",lastDate)); + + FangpaishuiPumpoperationrecordReportByYearCountVo fangpaishuiPumpoperationrecordReportByYearCountVo = new FangpaishuiPumpoperationrecordReportByYearCountVo(); + List all = new ArrayList<>(); + all.add(fDao); + all.add(fPai); + fangpaishuiPumpoperationrecordReportByYearCountVo.setFangpaishuiPumpoperationrecordReportByMonthCountVos(all); + fangpaishuiPumpoperationrecordReportByYearCountVo.setVolumeByMouthCount(fDao.getVolumeAllByMouth()+fPai.getVolumeAllByMouth()); + fangpaishuiPumpoperationrecordReportByYearCountVo.setVolumeByYearCount(fDao.getVolumeAllByYear()+fPai.getVolumeAllByYear()); + return fangpaishuiPumpoperationrecordReportByYearCountVo; + } + + @Override + public int findCount(String type, String lastDate) { + int year = Integer.valueOf(lastDate.substring(0,4)).intValue()-1; + String update =String.valueOf(year)+"-12-26"; + return baseMapper.findCount(type,update,lastDate); + } }