Browse Source

Merge remote-tracking branch 'origin/release-sy-v1.0.0' into release-sy-v1.0.0

master_tdsql
hxh 2 months ago
parent
commit
ae6a9f77da
  1. 55
      shuili-system/src/main/java/com/kms/yxgh/df/controller/DfYhStatisticsController.java
  2. 53
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhCharHiddenDangerDto.java
  3. 55
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhCharInfoDto.java
  4. 41
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhHiddenDangerDto.java
  5. 32
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhHiddenDangerQueDto.java
  6. 40
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhStatisticsDto.java
  7. 27
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhStatisticsQueDto.java
  8. 65
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfRecordMapper.java
  9. 20
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhRecordMapper.java
  10. 98
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java
  11. 62
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java
  12. 34
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhStatisticsService.java
  13. 34
      shuili-system/src/main/java/com/kms/yxgh/model/DfYhHiddenDangerModel.java
  14. 28
      shuili-system/src/main/java/com/kms/yxgh/model/DfYhStatisticsModelDto.java
  15. 5
      shuili-system/src/main/resources/mapper/yxgh/DfYhRecordMapper.xml

55
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<DfYhCharInfoDto> situation(@RequestBody DfYhStatisticsQueDto dto) {
return Response.ok(dfYhStatisticsService.situation(dto));
}
/**
* 获取巡查隐患概览统计
* @param dto
* @return
*/
@PostMapping("/hiddenDanger")
@ApiOperation("获取巡查情况概览统计")
public Response<DfYhCharHiddenDangerDto> hiddenDanger(@RequestBody DfYhHiddenDangerQueDto dto) {
return Response.ok(dfYhStatisticsService.hiddenDanger(dto));
}
}

53
shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhCharHiddenDangerDto.java

@ -0,0 +1,53 @@
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<String> xAxis = Collections.emptyList();
@ApiModelProperty(value = "y轴")
private List<YAxis> yAxis = Collections.emptyList();
;
@ApiModelProperty(value = "堤防数量")
private int dfNumber;
@ApiModelProperty(value = "一般隐患数量")
private int ybNumber;
@ApiModelProperty(value = "重大隐患数量")
private int zdNumber;
@ApiModelProperty(value = "处置状态数量")
private int czNumber;
@Data
@ApiModel("y轴")
public static class YAxis {
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "单位")
private String unit;
@ApiModelProperty(value = "数据")
private List<Series> series;
}
@ApiModel("y轴数据")
@Data
public static class Series {
@ApiModelProperty("次数")
private Integer count;
@ApiModelProperty("隐患数量对应的类型1,处理数量对应的是2")
private Integer type;
}
}

55
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<String> xAxis = Collections.emptyList();
@ApiModelProperty(value = "y轴")
private List<YAxis> yAxis = Collections.emptyList();
;
@ApiModelProperty(value = "标线")
private List<MarkLine> 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> 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;
}
}

41
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<String, Integer> HiddenDangerMap;
@ApiModelProperty("隐患概览统计表数据 key是地区,value是具体数据集")
private Map<String, List<HiddenDangerItem>> DfYhStatisticsItemMap;
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class HiddenDangerItem {
@ApiModelProperty("次数")
private Integer count;
@ApiModelProperty("隐患数量对应的类型1,处理数量对应的是2")
private Integer type;
}
}

32
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 String handleStatus;
}

40
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<String,List<DfYhStatisticsItem>> map= Collections.emptyMap();
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class DfYhStatisticsItem {
@ApiModelProperty("次数")
private Integer count;
@ApiModelProperty("负责人类型")
private String dutyHolderType;
}
}

27
shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhStatisticsQueDto.java

@ -0,0 +1,27 @@
package com.kms.yxgh.df.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kms.yxgh.common.dto.IAdcd;
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 implements IAdcd {
private static final long serialVersionUID = 1L;
@ApiModelProperty("查询开始时间 yyyy-MM-dd HH:mm:ss")
private String patrolStart;
@ApiModelProperty("查询结束时间 yyyy-MM-dd HH:mm:ss")
private String patrolEnd;
@ApiModelProperty("地区code")
private String adcd;
}

65
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<DfRecord> {
@Select("SELECT MAX(create_time) FROM bs_sgc_df_xsjhjl WHERE dike_code = #{dikeCode} ")
Date getLastInsertTimeByDikeCode(@Param("dikeCode") String dikeCode);
@Select("<script>" +
"select count(*) from bs_sgc_df_xsjhjlz where RECORD_ID " +
"in ( "+
"select jl.id from bs_sgc_df_xsjhjl as jl "+
"<if test='dto.adcdQx != null and dto.adcdQx != \"\"'> "+
"left join att_dike_base base on base.dike_code=jl.dike_code and df.adcd like concat(#{dto.adcdQx}, '%') "+
"</if> "+
"group by jl.DIKE_CODE,jl.id "+
") "+
"where 1=1 "+
"<if test='dto.patrolStart != null and dto.patrolEnd != \"\"'> "+
"AND (DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') &gt;= DATE_FORMAT(#{dto.patrolStart} , '%Y-%m-%d %H:%i:%s') "+
"AND DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') &lt;= DATE_FORMAT(#{dto.patrolEnd} , '%Y-%m-%d %H:%i:%s')) "+
"</if> " +
"<if test='dto.problem != null and dto.problem != \"\"'> " +
"AND problem=#{dto.problem} "+
"</if> " +
"<if test='dto.handleStatus != null and dto.handleStatus != \"\"'> " +
"AND handle_status=#{dto.handleStatus} "+
"</if> " +
"</script>")
int dfNumber(@Param("dto") DfYhHiddenDangerQueDto dto);
@Select("<script>" +
"select adb.adcd,lz.problem,count(1) as count from bs_sgc_df_xsjhjlz as lz "+
"left join bs_sgc_df_xsjhjl hj on hj.id=lz.RECORD_ID "+
"<if test='dto.adcdQx != null and dto.adcdQx != \"\"'> "+
"left join att_dike_base base on base.dike_code=hj.dike_code and base.adcd like concat(#{dto.adcdQx}, '%') "+
"</if> "+
"where 1=1 "+
"<if test='dto.patrolStart != null and dto.patrolEnd != \"\"'> "+
"AND (DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') &gt;= DATE_FORMAT(#{dto.patrolStart} , '%Y-%m-%d %H:%i:%s') "+
"AND DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') &lt;= DATE_FORMAT(#{dto.patrolEnd} , '%Y-%m-%d %H:%i:%s')) "+
"</if> " +
"<if test='dto.problem != null and dto.problem != \"\"'> " +
"AND lz.problem=#{dto.problem} "+
"</if> " +
"group by adb.adcd ,lz.problem "+
"</script>")
List<DfYhHiddenDangerModel> yhNumberData(@Param("dto") DfYhHiddenDangerQueDto dto);
@Select("<script>" +
"select adb.adcd,lz.handle_status,count(1) as count from bs_sgc_df_xsjhjlz as lz "+
"left join bs_sgc_df_xsjhjl hj on hj.id=lz.RECORD_ID "+
"<if test='dto.adcdQx != null and dto.adcdQx != \"\"'> "+
"left join att_dike_base base on base.dike_code=hj.dike_code and base.adcd like concat(#{dto.adcdQx}, '%') "+
"</if>"+
"<if test='dto.handleStatus != null and dto.handleStatus != \"\"'> " +
"AND hj.handle_status=#{dto.handleStatus} "+
"</if> " +
"where 1=1 "+
"<if test='dto.patrolStart != null and dto.patrolEnd != \"\"'> "+
"AND (DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') &gt;= DATE_FORMAT(#{dto.patrolStart} , '%Y-%m-%d %H:%i:%s') "+
"AND DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') &lt;= DATE_FORMAT(#{dto.patrolEnd} , '%Y-%m-%d %H:%i:%s')) "+
"</if> " +
"<if test='dto.problem != null and dto.problem != \"\"'> "+
"AND lz.problem=#{dto.problem} "+
"</if> " +
"group by adb.adcd ,lz.handle_status "+
"</script>")
List<DfYhHiddenDangerModel> clfNumberData(@Param("dto") DfYhHiddenDangerQueDto dto);
@Select("<script>" +
"SELECT " +

20
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhRecordMapper.java

@ -12,6 +12,9 @@ import com.kms.yxgh.df.domain.DfYhRecord;
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 org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
@ -19,6 +22,7 @@ import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
/**
* 堤防维修养护记录Mapper接口
@ -77,4 +81,20 @@ public interface DfYhRecordMapper extends BaseMapper<DfYhRecord> {
Date getLastInsertTimeByDikeCode(@Param("dikeCode") String dikeCode);
IPage<ApprovalDetailDto<DfYhRecordApprovalDto>> approvalSearchPage(Page<DfYhRecordSearchDto> page, @Param("dto") ApprovalSearchDto<DfYhRecordSearchDto> data);
@Select("<script>" +
"select adb.adcd,bsdx.duty_holder_type,count(1) as count from bs_sgc_df_xsjhjl bsdx "+
"left join att_dike_base adb on adb.dike_CODE = bsdx.DIKE_CODE "+
" where 1=1 "+
"<if test='dto.patrolStart != null and dto.patrolEnd != \"\"'> "+
"AND (DATE_FORMAT(bsdx.create_time, '%Y-%m-%d %H:%i:%s') &gt;= DATE_FORMAT(#{dto.patrolStart} , '%Y-%m-%d %H:%i:%s') "+
"AND DATE_FORMAT(bsdx.create_time, '%Y-%m-%d %H:%i:%s') &lt;= DATE_FORMAT(#{dto.patrolEnd} , '%Y-%m-%d %H:%i:%s')) "+
"</if> " +
"<if test='dto.adcdQx != null and dto.adcdQx != \"\"'> "+
"AND adb.adcd like concat(#{dto.adcdQx}, '%') "+
"</if> "+
"group by adb.adcd ,bsdx.duty_holder_type "+
"</script>")
List<DfYhStatisticsModelDto> situation (@Param("dto") DfYhStatisticsQueDto data);
}

98
shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java

@ -2,10 +2,13 @@ package com.kms.yxgh.df.service;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.system.domain.SysXzqh;
import com.kms.system.service.SysUserService;
import com.kms.system.service.SysXzqhService;
import com.kms.yxgh.base.DfException;
import com.kms.yxgh.df.domain.DfCheckingItem;
import com.kms.yxgh.df.domain.DfCheckingLine;
@ -16,10 +19,15 @@ 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.DfYhCharInfoDto;
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.model.DfYhStatisticsModelDto;
import com.kms.yxgh.util.BeanCopyUtils;
import com.kms.yxgh.util.StreamUtils;
import com.shuili.common.core.domain.AjaxResult;
@ -30,7 +38,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;
@ -52,6 +59,95 @@ public class DfRecordService extends BaseService<DfRecordMapper, DfRecord> {
private final SysUserService userService;
private final DfPlanOperatorMapper planOperatorMapper;
private final DfCheckingItemMapper dfCheckingItemMapper;
private final SysXzqhService sysXzqhService;
public DfYhCharHiddenDangerDto hiddenDanger(DfYhHiddenDangerQueDto dto) {
DfYhCharHiddenDangerDto dfYhCharHiddenDangerDto=new DfYhCharHiddenDangerDto();
// 堤防数量
int dfNumber = this.baseMapper.dfNumber(dto);
// 一般隐患数量
dto.setProblem("1");
int ybNumber = this.baseMapper.dfNumber(dto);
// 重大隐患数量
dto.setProblem("2");
int zdNumber = this.baseMapper.dfNumber(dto);
// 处置数量
dto.setHandleStatus("2");
int czNumber = this.baseMapper.dfNumber(dto);
dfYhCharHiddenDangerDto.setDfNumber(dfNumber);
dfYhCharHiddenDangerDto.setYbNumber(ybNumber);
dfYhCharHiddenDangerDto.setZdNumber(zdNumber);
dfYhCharHiddenDangerDto.setCzNumber(czNumber);
List<DfYhHiddenDangerModel> list =new ArrayList<>();
// 隐患数量数据
dto.setProblem("1");
List<DfYhHiddenDangerModel> yhModel = baseMapper.yhNumberData(dto);
if (!CollectionUtil.isEmpty(yhModel)) {
list.addAll(yhModel);
}
dto.setProblem("2");
List<DfYhHiddenDangerModel> jdModel = baseMapper.yhNumberData(dto);
if (!CollectionUtil.isEmpty(jdModel)) {
list.addAll(jdModel);
}
dto.setProblem("3");
List<DfYhHiddenDangerModel> zdModel = baseMapper.yhNumberData(dto);
if (!CollectionUtil.isEmpty(zdModel)) {
list.addAll(zdModel);
}
// 处理数量数据
dto.setHandleStatus("2");
List<DfYhHiddenDangerModel> clModel = baseMapper.clfNumberData(dto);
if (!CollectionUtil.isEmpty(clModel)) {
list.addAll(clModel);
}
Map<String, List<DfYhHiddenDangerModel>> groupingByList = list.stream()
.collect(Collectors.groupingBy(DfYhHiddenDangerModel::getAdcd));
if (!CollectionUtil.isEmpty(groupingByList)) {
List<String> xList =new ArrayList<>();
List<DfYhCharHiddenDangerDto.YAxis>yAxisList=new ArrayList<>();
for (Map.Entry<String, List<DfYhHiddenDangerModel>> entry : groupingByList.entrySet()) {
// 设置 x轴
// 转换名称
SysXzqh xzqhdm = sysXzqhService.getOne(new QueryWrapper<SysXzqh>().likeRight("XZQHDM", entry.getKey()));
if (null != xzqhdm) {
xList.add(xzqhdm.getName());
}
DfYhCharHiddenDangerDto.YAxis yAxisInfo = getyAxis(entry);
yAxisList.add(yAxisInfo);
}
dfYhCharHiddenDangerDto.setYAxis(yAxisList);
dfYhCharHiddenDangerDto.setXAxis(xList);
}
return dfYhCharHiddenDangerDto;
}
private DfYhCharHiddenDangerDto.YAxis getyAxis(Map.Entry<String, List<DfYhHiddenDangerModel>> entry) {
List<DfYhCharHiddenDangerDto.Series> seriesList =new ArrayList<>();
for (DfYhHiddenDangerModel it : entry.getValue()) {
DfYhCharHiddenDangerDto.Series series=new DfYhCharHiddenDangerDto.Series();
series.setCount(it.getCount());
if (it != null) {
// 如果非处置状态即全部为隐患状态
series.setType(Objects.equals(it.getHandleStatus(),2)?2:1);
}
seriesList.add(series);
}
// 设置 y轴
DfYhCharHiddenDangerDto.YAxis yAxisInfo=new DfYhCharHiddenDangerDto.YAxis();
yAxisInfo.setName("次数");
yAxisInfo.setUnit("个");
yAxisInfo.setSeries(seriesList);
return yAxisInfo;
}
public IPage<DfRecordSimpleDto> search(SearchParam<DfRecordSearchDto> sp) {
IPage<DfRecord> page = new Page<>(sp.getPageNum(), sp.getPageSize());

62
shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java

@ -3,29 +3,42 @@ package com.kms.yxgh.df.service;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Objects;
import com.kms.system.domain.SysXzqh;
import com.kms.system.service.SysUserService;
import com.kms.system.service.SysXzqhService;
import com.kms.yxgh.base.DfException;
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.beans.factory.annotation.Autowired;
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接口
@ -38,7 +51,52 @@ import java.util.Optional;
public class DfYhRecordService extends DefaultApprovalBusinessService<DfYhRecordMapper, DfYhRecord, DfYhRecordSearchDto, DfYhRecordApprovalDto> {
private final DfYhPlanService dfYhPlanService;
private final SysUserService sysUserService;
private final SysXzqhService sysXzqhService;
public DfYhCharInfoDto situation (DfYhStatisticsQueDto dto){
List<DfYhStatisticsModelDto> list = baseMapper.situation(dto);
DfYhCharInfoDto dtoInfo=new DfYhCharInfoDto();
if (CollectionUtil.isEmpty(list)){
return dtoInfo;
}
Map<String, List<DfYhStatisticsModelDto>> groupingByList = list.stream()
.collect(Collectors.groupingBy(DfYhStatisticsModelDto::getAdcd));
List<String> xList =new ArrayList<>();
List<DfYhCharInfoDto.YAxis>yAxisList=new ArrayList<>();
for (Map.Entry<String, List<DfYhStatisticsModelDto>> entry : groupingByList.entrySet()) {
// 设置 x轴
// 转换名称
SysXzqh xzqhdm = sysXzqhService.getOne(new QueryWrapper<SysXzqh>()
.likeRight("XZQHDM", entry.getKey()).last(" limit 1"));
if (null != xzqhdm) {
xList.add(xzqhdm.getName());
}
DfYhCharInfoDto.YAxis yAxisInfo = getyAxis(entry);
yAxisList.add(yAxisInfo);
}
dtoInfo.setYAxis(yAxisList);
dtoInfo.setXAxis(xList);
return dtoInfo;
}
private DfYhCharInfoDto.YAxis getyAxis(Map.Entry<String, List<DfYhStatisticsModelDto>> entry) {
List<DfYhCharInfoDto.Series> 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轴
DfYhCharInfoDto.YAxis yAxisInfo=new DfYhCharInfoDto.YAxis();
yAxisInfo.setName("次数");
yAxisInfo.setUnit("个");
yAxisInfo.setSeries(seriesList);
return yAxisInfo;
}
public DfYhRecordDetailDto getDetailById(String id) {
DfYhRecord record = this.getBaseMapper().selectById(id);

34
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);
}
}

34
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 String problem;
@ApiModelProperty("数量")
private Integer count;
@ApiModelProperty("处置状态")
private Integer handleStatus;
}

28
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;
}

5
shuili-system/src/main/resources/mapper/yxgh/DfYhRecordMapper.xml

@ -28,6 +28,9 @@
</association>
</resultMap>
<select id="approvalSearchPage" resultMap="approvalMap">
SELECT ts.id id, ts.form_id formId, ts.create_time submit_time, ts.approval_time approval_time, ts.status
status,
@ -73,4 +76,4 @@
</select>
</mapper>
</mapper>

Loading…
Cancel
Save