diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfYhStatisticsController.java b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfYhStatisticsController.java new file mode 100644 index 00000000..adb19b73 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfYhStatisticsController.java @@ -0,0 +1,55 @@ +package com.kms.yxgh.df.controller; +import com.kms.yxgh.base.Response; +import com.kms.yxgh.df.dto.DfYhCharHiddenDangerDto; +import com.kms.yxgh.df.dto.DfYhCharInfoDto; +import com.kms.yxgh.df.dto.DfYhHiddenDangerQueDto; +import com.kms.yxgh.df.dto.DfYhStatisticsQueDto; +import com.kms.yxgh.df.service.DfYhStatisticsService; +import com.shuili.common.core.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +/** + * 堤防维修养护记录统计 + * + * @author lyd + * @date 2025/03/04 + */ +@RestController +@RequestMapping("/run/df/yh/statistics") +@Api(tags = "堤防维修养护记录统计") +public class DfYhStatisticsController extends BaseController { + + @Autowired + private DfYhStatisticsService dfYhStatisticsService; + + + /** + * 获取巡查情况概览统计 + * @param dto + * @return + */ + @PostMapping("/situation") + @ApiOperation("获取巡查情况概览统计") + public Response situation(@RequestBody DfYhStatisticsQueDto dto) { + return Response.ok(dfYhStatisticsService.situation(dto)); + } + + + /** + * 获取巡查隐患概览统计 + * @param dto + * @return + */ + @PostMapping("/hiddenDanger") + @ApiOperation("获取巡查情况概览统计") + public Response hiddenDanger(@RequestBody DfYhHiddenDangerQueDto dto) { + return Response.ok(dfYhStatisticsService.hiddenDanger(dto)); + } + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhCharHiddenDangerDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhCharHiddenDangerDto.java new file mode 100644 index 00000000..a4cb4692 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhCharHiddenDangerDto.java @@ -0,0 +1,55 @@ +package com.kms.yxgh.df.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Collections; +import java.util.List; + +@ApiModel("获取巡查情况概览统计图表信息") +@Data +public class DfYhCharHiddenDangerDto { + @ApiModelProperty(value = "x轴") + private List xAxis = Collections.emptyList(); + + @ApiModelProperty(value = "y轴") + private List yAxis = Collections.emptyList(); + ; + + @ApiModelProperty(value = "标线") + private List markLine = Collections.emptyList(); + ; + + @Data + @ApiModel("y轴") + public static class YAxis { + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "单位") + private String unit; + + @ApiModelProperty(value = "数据") + private List series; + } + + @ApiModel("y轴数据") + @Data + public static class Series { + @ApiModelProperty("次数") + private Integer count; + @ApiModelProperty("隐患数量对应的类型1,处理数量对应的是2") + private Integer type; + } + + @ApiModel("标线") + @Data + public static class MarkLine { + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "值") + private String value; + } +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhCharInfoDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhCharInfoDto.java new file mode 100644 index 00000000..696a0d3b --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhCharInfoDto.java @@ -0,0 +1,55 @@ +package com.kms.yxgh.df.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Collections; +import java.util.List; + +@ApiModel("获取巡查情况概览统计图表信息") +@Data +public class DfYhCharInfoDto { + @ApiModelProperty(value = "x轴") + private List xAxis = Collections.emptyList(); + + @ApiModelProperty(value = "y轴") + private List yAxis = Collections.emptyList(); + ; + + @ApiModelProperty(value = "标线") + private List markLine = Collections.emptyList(); + ; + + @Data + @ApiModel("y轴") + public static class YAxis { + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "单位") + private String unit; + + @ApiModelProperty(value = "数据") + private List series; + } + + @ApiModel("y轴数据") + @Data + public static class Series { + @ApiModelProperty("次数") + private Integer count; + @ApiModelProperty("负责人类型") + private String dutyHolderType; + } + + @ApiModel("标线") + @Data + public static class MarkLine { + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "值") + private String value; + } +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhHiddenDangerDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhHiddenDangerDto.java new file mode 100644 index 00000000..98d9946e --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhHiddenDangerDto.java @@ -0,0 +1,41 @@ +package com.kms.yxgh.df.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.Map; + +/** + * @ClassName: DfYhHiddenDangerDto + * @Description: 巡查隐患概览统计 + * @Date: 2024/3/5 上午10:51 + * * + * @author: lyd + * @version: 1.0 + */ + +@ApiModel("巡查隐患概览统计") +@Data +public class DfYhHiddenDangerDto { + + @ApiModelProperty("隐患类别和数量") + private Map HiddenDangerMap; + + @ApiModelProperty("隐患概览统计表数据 key是地区,value是具体数据集") + private Map> DfYhStatisticsItemMap; + + @Data + @AllArgsConstructor + @NoArgsConstructor + public static class HiddenDangerItem { + @ApiModelProperty("次数") + private Integer count; + @ApiModelProperty("隐患数量对应的类型1,处理数量对应的是2") + private Integer type; + } + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhHiddenDangerQueDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhHiddenDangerQueDto.java new file mode 100644 index 00000000..d2736eea --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhHiddenDangerQueDto.java @@ -0,0 +1,32 @@ +package com.kms.yxgh.df.dto; + +import com.kms.yxgh.common.dto.IAdcd; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName: DfYhHiddenDangerQueDto + * @Description: 巡查隐患概览统计 + * @Date: 2024/3/5 上午10:18 + * * + * @author: lyd + * @version: 1.0 + */ + +@Data +@ApiModel("巡查隐患概览统计") +public class DfYhHiddenDangerQueDto implements IAdcd { + + @ApiModelProperty("查询开始时间") + private String patrolStart; + @ApiModelProperty("查询结束时间") + private String patrolEnd; + @ApiModelProperty("隐患类型 无:0、一般隐患:1、较大至重大:2、重大隐患:3 ") + private String problem; + @ApiModelProperty("地区code") + private String adcd; + @ApiModelProperty("处置状态") + private Integer handleStatus; + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhStatisticsDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhStatisticsDto.java new file mode 100644 index 00000000..9eca43cd --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhStatisticsDto.java @@ -0,0 +1,40 @@ +package com.kms.yxgh.df.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * @ClassName: DfYhStatisticsDto + * @Description: 巡查情况概览 + * @Date: 2024/3/5 上午10:51 + * * + * @author: lyd + * @version: 1.0 + */ + +@ApiModel("巡查情况概览") +@Data +public class DfYhStatisticsDto { + + @ApiModelProperty("数据集") + private Map> map= Collections.emptyMap(); + + @Data + @AllArgsConstructor + @NoArgsConstructor + public static class DfYhStatisticsItem { + @ApiModelProperty("次数") + private Integer count; + @ApiModelProperty("负责人类型") + private String dutyHolderType; + } + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhStatisticsQueDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhStatisticsQueDto.java new file mode 100644 index 00000000..5ca86d57 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhStatisticsQueDto.java @@ -0,0 +1,24 @@ +package com.kms.yxgh.df.dto; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +/** + * @ClassName: DfYqExceedIndexDto + * @Description: TODO + * @Date: 2024/3/5 上午10:18 + * * + * @author: hxh + * @version: 1.0 + */ + +@Data +@ApiModel("责任人巡查情况概览统计") +public class DfYhStatisticsQueDto { + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private String patrolStart; + + @ApiModelProperty("查询结束时间 yyyy-MM-dd HH:mm:ss") + private String patrolEnd; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfRecordMapper.java b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfRecordMapper.java index b3527917..17bdb612 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfRecordMapper.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfRecordMapper.java @@ -5,11 +5,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.kms.yxgh.df.domain.DfRecord; import com.kms.yxgh.df.dto.DfRecordSearchDto; import com.kms.yxgh.df.dto.DfRecordSimpleDto; +import com.kms.yxgh.df.dto.DfYhHiddenDangerQueDto; +import com.kms.yxgh.model.DfYhHiddenDangerModel; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.util.Date; +import java.util.List; /** * 堤防巡视检查记录Mapper接口 @@ -23,6 +26,68 @@ public interface DfRecordMapper extends BaseMapper { @Select("SELECT MAX(create_time) FROM bs_sgc_df_xsjhjl WHERE dike_code = #{dikeCode} ") Date getLastInsertTimeByDikeCode(@Param("dikeCode") String dikeCode); + @Select("") + int dfNumber(@Param("dto") DfYhHiddenDangerQueDto dto); + + + @Select("") + DfYhHiddenDangerModel yhNumberData(@Param("dto") DfYhHiddenDangerQueDto dto); + + @Select("") + DfYhHiddenDangerModel clfNumberData(@Param("dto") DfYhHiddenDangerQueDto dto); @Select("") + List situation (@Param("dto") DfYhStatisticsQueDto data); + } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java index bd0cc761..eafebf7f 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java @@ -16,10 +16,13 @@ import com.kms.yxgh.df.dto.DfRecordDetailDto.DfRecordItemDto; import com.kms.yxgh.df.dto.DfRecordDetailExportDto; import com.kms.yxgh.df.dto.DfRecordSearchDto; import com.kms.yxgh.df.dto.DfRecordSimpleDto; +import com.kms.yxgh.df.dto.DfYhCharHiddenDangerDto; +import com.kms.yxgh.df.dto.DfYhHiddenDangerQueDto; import com.kms.yxgh.df.mapper.DfCheckingItemMapper; import com.kms.yxgh.df.mapper.DfCheckingLineMapper; import com.kms.yxgh.df.mapper.DfPlanOperatorMapper; import com.kms.yxgh.df.mapper.DfRecordMapper; +import com.kms.yxgh.model.DfYhHiddenDangerModel; import com.kms.yxgh.util.BeanCopyUtils; import com.kms.yxgh.util.StreamUtils; import com.shuili.common.core.domain.AjaxResult; @@ -30,7 +33,6 @@ import com.shuili.common.utils.poi.ExcelUtil; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -53,6 +55,27 @@ public class DfRecordService extends BaseService { private final DfPlanOperatorMapper planOperatorMapper; private final DfCheckingItemMapper dfCheckingItemMapper; + + public DfYhCharHiddenDangerDto hiddenDanger(DfYhHiddenDangerQueDto dto) { + DfYhCharHiddenDangerDto dfYhCharHiddenDangerDto=new DfYhCharHiddenDangerDto(); + // 堤防数量 + Integer dfNumber = this.baseMapper.dfNumber(dto); + // 一般隐患数量 + dto.setProblem("1"); + Integer ybNumber = this.baseMapper.dfNumber(dto); + // 重大隐患数量 + dto.setProblem("2"); + Integer zdNumber = this.baseMapper.dfNumber(dto); + + // 隐患数量数据 + DfYhHiddenDangerModel yhModel = baseMapper.yhNumberData(dto); + // 处理数量数据 + dto.setHandleStatus(2); + DfYhHiddenDangerModel clModel = baseMapper.clfNumberData(dto); + + return dfYhCharHiddenDangerDto; + } + public IPage search(SearchParam sp) { IPage page = new Page<>(sp.getPageNum(), sp.getPageSize()); DfRecordSearchDto searchDto = sp.getData(); diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java index ed241466..41fbc2f2 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java @@ -12,20 +12,28 @@ import com.kms.yxgh.common.ApprovalStatusEnum; import com.kms.yxgh.common.dto.*; import com.kms.yxgh.common.service.DefaultApprovalBusinessService; import com.kms.yxgh.df.domain.DfYhRecord; +import com.kms.yxgh.df.dto.DfYhCharInfoDto; import com.kms.yxgh.df.dto.DfYhRecordApprovalDto; import com.kms.yxgh.df.dto.DfYhRecordDetailDto; import com.kms.yxgh.df.dto.DfYhRecordSearchDto; +import com.kms.yxgh.df.dto.DfYhStatisticsDto; +import com.kms.yxgh.model.DfYhStatisticsModelDto; +import com.kms.yxgh.df.dto.DfYhStatisticsQueDto; import com.kms.yxgh.df.mapper.DfYhRecordMapper; import com.kms.yxgh.util.BeanCopyUtils; import com.shuili.common.core.domain.SearchParam; -import com.shuili.common.core.domain.entity.SysUser; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; /** * 堤防维修养护记录Service接口 @@ -40,6 +48,37 @@ public class DfYhRecordService extends DefaultApprovalBusinessService list = baseMapper.situation(dto); + DfYhCharInfoDto dtoInfo=new DfYhCharInfoDto(); + if (CollectionUtil.isEmpty(list)){ + return dtoInfo; + } + Map> groupingByList = list.stream() + .collect(Collectors.groupingBy(DfYhStatisticsModelDto::getAdcd)); + + List xList =new ArrayList<>(); + DfYhCharInfoDto.YAxis yAxisInfo=new DfYhCharInfoDto.YAxis(); + yAxisInfo.setName("次数"); + yAxisInfo.setUnit("个"); + for (Map.Entry> entry : groupingByList.entrySet()) { + // 设置 x轴 + xList.add(entry.getKey()); + List seriesList =new ArrayList<>(); + for (DfYhStatisticsModelDto it : entry.getValue()) { + DfYhCharInfoDto.Series series=new DfYhCharInfoDto.Series(); + series.setCount(it.getCount()); + series.setDutyHolderType(it.getDutyHolderType()); + seriesList.add(series); + } + // 设置 y轴 + yAxisInfo.setSeries(seriesList); + } + return dtoInfo; + } + + public DfYhRecordDetailDto getDetailById(String id) { DfYhRecord record = this.getBaseMapper().selectById(id); if (record != null) { diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhStatisticsService.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhStatisticsService.java new file mode 100644 index 00000000..b37d1443 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhStatisticsService.java @@ -0,0 +1,34 @@ +package com.kms.yxgh.df.service; +import com.kms.yxgh.df.dto.DfYhCharHiddenDangerDto; +import com.kms.yxgh.df.dto.DfYhCharInfoDto; +import com.kms.yxgh.df.dto.DfYhHiddenDangerQueDto; +import com.kms.yxgh.df.dto.DfYhStatisticsQueDto; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * @ClassName: DfYhStatisticsService + * @Description: 工程巡查概况统计 + * @Date: 2024/3/5 上午10:12 + * * + * @author: lyd + * @version: 1.0 + */ +@AllArgsConstructor +@Service +public class DfYhStatisticsService { + + + private final DfYhRecordService dfYhRecordService; + + private final DfRecordService dfRecordService; + + public DfYhCharInfoDto situation(DfYhStatisticsQueDto dto){ + return dfYhRecordService.situation(dto); + } + + public DfYhCharHiddenDangerDto hiddenDanger(DfYhHiddenDangerQueDto dto){ + return dfRecordService.hiddenDanger(dto); + } + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/model/DfYhHiddenDangerModel.java b/shuili-system/src/main/java/com/kms/yxgh/model/DfYhHiddenDangerModel.java new file mode 100644 index 00000000..63ac4742 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/model/DfYhHiddenDangerModel.java @@ -0,0 +1,34 @@ +package com.kms.yxgh.model; + +import com.kms.yxgh.df.dto.DfYhHiddenDangerDto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +/** + * @ClassName: DfYhHiddenDangerModel + * @Description: 巡查隐患概览统计 + * @Date: 2024/3/5 上午10:51 + * * + * @author: lyd + * @version: 1.0 + */ + +@ApiModel("巡查隐患概览统计") +@Data +public class DfYhHiddenDangerModel { + + @ApiModelProperty("地区code") + private String adcd; + + @ApiModelProperty("隐患类型") + private Integer problem; + + @ApiModelProperty("数量") + private Integer count; + + @ApiModelProperty("处置状态") + private Integer handleStatus; + + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/model/DfYhStatisticsModelDto.java b/shuili-system/src/main/java/com/kms/yxgh/model/DfYhStatisticsModelDto.java new file mode 100644 index 00000000..4db06b8f --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/model/DfYhStatisticsModelDto.java @@ -0,0 +1,28 @@ +package com.kms.yxgh.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName: DfYhStatisticsModelDto + * @Date: 2024/3/5 上午10:51 + * * + * @author: lyd + * @version: 1.0 + */ + +@ApiModel("巡查情况概览") +@Data +public class DfYhStatisticsModelDto { + + @ApiModelProperty("次数") + private Integer count; + @ApiModelProperty("堤防代码") + private String adcd; + @ApiModelProperty("巡查责任人类型") + private String dutyHolderType; + + + +} diff --git a/shuili-system/src/main/resources/mapper/yxgh/DfYhRecordMapper.xml b/shuili-system/src/main/resources/mapper/yxgh/DfYhRecordMapper.xml index 562cda05..3e38267c 100644 --- a/shuili-system/src/main/resources/mapper/yxgh/DfYhRecordMapper.xml +++ b/shuili-system/src/main/resources/mapper/yxgh/DfYhRecordMapper.xml @@ -28,6 +28,9 @@ + + + - \ No newline at end of file +