[add]水泵运行日志总报表
This commit is contained in:
parent
e429032a14
commit
fed3345b8a
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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<FangpaishuiPumpoperationrecordReportVo> fangpaishuiPumpoperationrecordReportVos;
|
||||
|
||||
|
||||
@Schema(description = "所有泵站月总排和倒水量")
|
||||
private int VolumeAllByMouth;
|
||||
|
||||
@Schema(description = "所有泵站年总排和倒水量")
|
||||
private int VolumeAllByYear;
|
||||
|
||||
@Schema(description = "类型")
|
||||
private String type;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -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<FangpaishuiPumpoperationrecordReportByMonthCountVo> fangpaishuiPumpoperationrecordReportByMonthCountVos;
|
||||
|
||||
|
||||
@Schema(description = "月总排和倒水量")
|
||||
private int VolumeByMouthCount;
|
||||
|
||||
@Schema(description = "年总排和倒水量")
|
||||
private int VolumeByYearCount;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -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<FangpaishuiPumpoperationrecordVo> fangpaishuiPumpoperationrecordVos;
|
||||
|
||||
@Schema(description = "本泵站月总排/倒水量")
|
||||
private int VolumeByMouth;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -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<FangpaishuiPumpoperationrecord> {
|
||||
|
||||
List<FangpaishuiPumpoperationrecordVo> findDetail(FangpaishuiPumpoperationrecordVo vo);
|
||||
|
||||
List<FangpaishuiPumpoperationrecordVo> findAll(String upDate, String lastDate);
|
||||
|
||||
int findCount(@Param("type")String type, @Param("upDate")String upDate, @Param("lastDate") String lastDate);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -26,5 +26,39 @@
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="findAll" parameterType="com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordVo" resultType="com.jdc.jdcproject.entity.VO.FangpaishuiPumpoperationrecordVo">
|
||||
SELECT
|
||||
fp.RecordID,
|
||||
e.EquipmentId,
|
||||
e.EquipmentName,
|
||||
fn.UnitId,
|
||||
fn.UnitCode,
|
||||
fn.RatedCapacity,
|
||||
fp.OperationType,
|
||||
fp.Sailings,
|
||||
fp.StartupTime,
|
||||
fp.EndTime,
|
||||
fp.OperationTime,
|
||||
fp.Volume,
|
||||
fp.MONTH
|
||||
FROM
|
||||
fangpaishui_pumpoperationrecord fp
|
||||
LEFT JOIN fangpaishui_unit fn ON fn.UnitID = fp.UnitID
|
||||
JOIN equipment e ON fn.EquipmentId = e.EquipmentId
|
||||
WHERE
|
||||
fp.Month BETWEEN '${upDate}' AND '${lastDate}'
|
||||
</select>
|
||||
|
||||
<select id="findCount" resultType="int">
|
||||
SELECT
|
||||
SUM(Volume)
|
||||
FROM
|
||||
fangpaishui_pumpoperationrecord
|
||||
WHERE
|
||||
Month BETWEEN '${upDate}' AND '${lastDate}'
|
||||
and
|
||||
OperationType = '${type}'
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
@ -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<FangpaishuiPumpoperationrecord> {
|
||||
//查询泵站操作明细
|
||||
List<FangpaishuiPumpoperationrecordVo> findDetail(FangpaishuiPumpoperationrecordVo vo);
|
||||
//查询泵站操作总报表
|
||||
FangpaishuiPumpoperationrecordReportByYearCountVo findAll(String upDate, String lastDate);
|
||||
//查询操作时间节点查询年总量
|
||||
int findCount(String type,String lastDate);
|
||||
|
||||
|
||||
}
|
||||
|
@ -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<Fangp
|
||||
public List<FangpaishuiPumpoperationrecordVo> findDetail(FangpaishuiPumpoperationrecordVo vo) {
|
||||
return baseMapper.findDetail(vo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FangpaishuiPumpoperationrecordReportByYearCountVo findAll(String upDate, String lastDate) {
|
||||
List<FangpaishuiPumpoperationrecordVo> fangpaishuiPumpoperationrecordVos = baseMapper.findAll(upDate,lastDate);
|
||||
//根据类型分组(排水/倒水)
|
||||
Map<String, List<FangpaishuiPumpoperationrecordVo>> stringListMap = fangpaishuiPumpoperationrecordVos.stream().collect(Collectors.groupingBy(FangpaishuiPumpoperationrecordVo::getOperationType));
|
||||
List<FangpaishuiPumpoperationrecordVo> fangpaishuiPumpoperationrecordVoPais = new ArrayList<>();
|
||||
List<FangpaishuiPumpoperationrecordVo> fangpaishuiPumpoperationrecordVoDao = new ArrayList<>();
|
||||
Set<Map.Entry<String, List<FangpaishuiPumpoperationrecordVo>>> entries = stringListMap.entrySet();
|
||||
for(Map.Entry m : entries){
|
||||
if (m.getKey().equals("排水")){
|
||||
fangpaishuiPumpoperationrecordVoPais.addAll((List<FangpaishuiPumpoperationrecordVo>) m.getValue());
|
||||
}else {
|
||||
fangpaishuiPumpoperationrecordVoDao.addAll((List<FangpaishuiPumpoperationrecordVo>) 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<String, List<FangpaishuiPumpoperationrecordVo>> paiMap = fangpaishuiPumpoperationrecordVoPais.stream().collect(Collectors.groupingBy(FangpaishuiPumpoperationrecordVo::getEquipmentName));
|
||||
Set<Map.Entry<String, List<FangpaishuiPumpoperationrecordVo>>> paiEntries = paiMap.entrySet();
|
||||
List<FangpaishuiPumpoperationrecordReportVo> fangpaishuiPumpoperationrecordReportVosPai = new ArrayList<>();
|
||||
for(Map.Entry m : paiEntries){
|
||||
|
||||
FangpaishuiPumpoperationrecordReportVo vo = new FangpaishuiPumpoperationrecordReportVo();
|
||||
vo.setEquipmentName((String) m.getKey());
|
||||
vo.setFangpaishuiPumpoperationrecordVos((List<FangpaishuiPumpoperationrecordVo>) m.getValue());
|
||||
int VolumeByMouth =0;
|
||||
for (FangpaishuiPumpoperationrecordVo fangpaishuiPumpoperationrecordVo : (List<FangpaishuiPumpoperationrecordVo>) m.getValue()) {
|
||||
VolumeByMouth+=fangpaishuiPumpoperationrecordVo.getVolume();
|
||||
}
|
||||
vo.setVolumeByMouth(VolumeByMouth);
|
||||
fangpaishuiPumpoperationrecordReportVosPai.add(vo);
|
||||
}
|
||||
|
||||
//倒水根据泵站分组
|
||||
Map<String, List<FangpaishuiPumpoperationrecordVo>> paiMap1 = fangpaishuiPumpoperationrecordVoDao.stream().collect(Collectors.groupingBy(FangpaishuiPumpoperationrecordVo::getEquipmentName));
|
||||
Set<Map.Entry<String, List<FangpaishuiPumpoperationrecordVo>>> paiEntries1 = paiMap1.entrySet();
|
||||
List<FangpaishuiPumpoperationrecordReportVo> fangpaishuiPumpoperationrecordReportVosDao = new ArrayList<>();
|
||||
for(Map.Entry m : paiEntries1){
|
||||
|
||||
FangpaishuiPumpoperationrecordReportVo vo = new FangpaishuiPumpoperationrecordReportVo();
|
||||
vo.setEquipmentName((String) m.getKey());
|
||||
vo.setFangpaishuiPumpoperationrecordVos((List<FangpaishuiPumpoperationrecordVo>) m.getValue());
|
||||
int VolumeByMouth =0;
|
||||
for (FangpaishuiPumpoperationrecordVo fangpaishuiPumpoperationrecordVo : (List<FangpaishuiPumpoperationrecordVo>) 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<FangpaishuiPumpoperationrecordReportByMonthCountVo> 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user