Browse Source

feat: 统计逻辑

release-sy-tdsql
hxh 1 month ago
parent
commit
810c6124a6
  1. 13
      shuili-system/src/main/java/com/kms/system/service/SysXzqhService.java
  2. 10
      shuili-system/src/main/java/com/kms/yxgh/common/dto/CountDto.java
  3. 2
      shuili-system/src/main/java/com/kms/yxgh/common/dto/ObjectStatisticQueDto.java
  4. 17
      shuili-system/src/main/java/com/kms/yxgh/common/enums/PatrolMaintenanceCategory.java
  5. 2
      shuili-system/src/main/java/com/kms/yxgh/common/enums/ProjectCharEnum.java
  6. 90
      shuili-system/src/main/java/com/kms/yxgh/common/enums/StaticIndexEnum.java
  7. 20
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingProblemV2Mapper.java
  8. 24
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingRecordV2Mapper.java
  9. 18
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingV2Mapper.java
  10. 20
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhV2Mapper.java

13
shuili-system/src/main/java/com/kms/system/service/SysXzqhService.java

@ -10,6 +10,10 @@ import com.shuili.common.core.service.BaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -28,6 +32,13 @@ public class SysXzqhService extends BaseService<SysXzqhMapper, SysXzqh> {
private SysDeptService sysDeptService;
public Map<String, SysXzqh> get(List<String> adcd) {
return sysXzqhMapper.selectList(Wrappers.lambdaQuery(SysXzqh.class)
.in(SysXzqh::getXzqhdm, adcd))
.stream().collect(Collectors.toMap(SysXzqh::getXzqhdm, Function.identity(), (o1, o2) -> o1));
}
public String getSubString(String adcd) {
SysXzqh sysXzqh = sysXzqhMapper.selectOne(Wrappers.lambdaQuery(SysXzqh.class)
.eq(SysXzqh::getXzqhdm, adcd));
@ -41,7 +52,7 @@ public class SysXzqhService extends BaseService<SysXzqhMapper, SysXzqh> {
return sysXzqh.getXzqhdm().substring(0, 2);
} else if (sysXzqh.getLayer() == 4) {
return sysXzqh.getXzqhdm().substring(0, 4);
}else {
} else {
return sysXzqh.getXzqhdm();
}

10
shuili-system/src/main/java/com/kms/yxgh/common/dto/CountDto.java

@ -0,0 +1,10 @@
package com.kms.yxgh.common.dto;
import lombok.Data;
@Data
public class CountDto {
private String code;
private Integer sum;
}

2
shuili-system/src/main/java/com/kms/yxgh/common/dto/ObjectStatisticQueDto.java

@ -12,7 +12,7 @@ import java.util.Date;
@Data
@ApiModel("工程对象请求参数")
public class ObjectStatisticQueDto {
public class ObjectStatisticQueDto implements IAdcd {
@ApiModelProperty(value = "查询类型")
private ProjectCharEnum group;

17
shuili-system/src/main/java/com/kms/yxgh/common/enums/PatrolMaintenanceCategory.java

@ -0,0 +1,17 @@
package com.kms.yxgh.common.enums;
import lombok.Getter;
@Getter
public enum PatrolMaintenanceCategory {
PROJECT_PATROL("工程巡查", "1"),
JD_PATROL("机电巡查", "2");
private final String name;
private final String value;
PatrolMaintenanceCategory(String name, String value) {
this.name = name;
this.value = value;
}
}

2
shuili-system/src/main/java/com/kms/yxgh/common/enums/ProjectCharEnum.java

@ -16,7 +16,7 @@ public enum ProjectCharEnum {
C_14("缺陷养护对比分析", Arrays.asList(StaticIndexEnum.DF_YH_SUM, StaticIndexEnum.DF_QX_SUM), "问题个数", Collections.emptyList()),
C_1("工程分布", Collections.singletonList(StaticIndexEnum.DF_PROJECT_ADCD_SUM), "数量", Collections.emptyList()),
C_2("巡查分析", Arrays.asList(StaticIndexEnum.DF_CHECKING_ADCD_SUM, StaticIndexEnum.DF_JD_ADCD_SUM), "数量", Collections.emptyList()),
C_3("缺陷和养护对比", Collections.singletonList(StaticIndexEnum.DF_QX_ADCD_SUM), "缺陷数", Collections.singletonList(StaticIndexEnum.DF_YH_ADCD_SUM), "养护数"),
C_3("缺陷和养护对比", Arrays.asList(StaticIndexEnum.DF_QX_ADCD_SUM, StaticIndexEnum.DF_YH_ADCD_SUM), "数量", Collections.emptyList()),
;
private final String title;

90
shuili-system/src/main/java/com/kms/yxgh/common/enums/StaticIndexEnum.java

@ -1,10 +1,20 @@
package com.kms.yxgh.common.enums;
import cn.hutool.core.collection.CollectionUtil;
import com.kms.system.domain.SysXzqh;
import com.kms.system.service.SysXzqhService;
import com.kms.yxgh.common.dto.CountDto;
import com.kms.yxgh.common.dto.ObjectStatisticQueDto;
import com.kms.yxgh.common.service.Statistic;
import com.kms.yxgh.df.mapper.DfCheckingProblemV2Mapper;
import com.kms.yxgh.df.mapper.DfCheckingRecordV2Mapper;
import com.kms.yxgh.df.mapper.DfCheckingV2Mapper;
import com.kms.yxgh.df.mapper.DfYhV2Mapper;
import com.shuili.common.utils.SpringUtils;
import lombok.Getter;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Getter
public enum StaticIndexEnum {
@ -25,39 +35,29 @@ public enum StaticIndexEnum {
}, "个", "0"),
DF_QX_ADCD_SUM("缺陷数量", sp -> {
Map<String, String> map = new HashMap<>();
map.put("2024/05/20", "12");
map.put("2024/05/21", "15");
map.put("2024/05/22", "17");
return map;
DfCheckingProblemV2Mapper mapper = SpringUtils.getBean(DfCheckingProblemV2Mapper.class);
List<CountDto> list = mapper.count(sp);
return adcdGroup(list, sp);
}, "个", "0"),
DF_YH_ADCD_SUM("养护次数", sp -> {
Map<String, String> map = new HashMap<>();
map.put("2024/05/20", "12");
map.put("2024/05/21", "15");
map.put("2024/05/22", "17");
return map;
DfYhV2Mapper mapper = SpringUtils.getBean(DfYhV2Mapper.class);
List<CountDto> list = mapper.count(sp);
return adcdGroup(list, sp);
}, "个", "0"),
DF_PROJECT_ADCD_SUM("工程数量", sp -> {
Map<String, String> map = new HashMap<>();
map.put("2024/05/20", "12");
map.put("2024/05/21", "15");
map.put("2024/05/22", "17");
return map;
DfCheckingV2Mapper mapper = SpringUtils.getBean(DfCheckingV2Mapper.class);
List<CountDto> list = mapper.count(sp);
return adcdGroup(list, sp);
}, "个", "0"),
DF_CHECKING_ADCD_SUM("工程巡查", sp -> {
Map<String, String> map = new HashMap<>();
map.put("2024/05/20", "12");
map.put("2024/05/21", "15");
map.put("2024/05/22", "17");
return map;
DfCheckingRecordV2Mapper mapper = SpringUtils.getBean(DfCheckingRecordV2Mapper.class);
List<CountDto> list = mapper.count(sp, PatrolMaintenanceCategory.PROJECT_PATROL);
return adcdGroup(list, sp);
}, "个", "0"),
DF_JD_ADCD_SUM("机电巡查", sp -> {
Map<String, String> map = new HashMap<>();
map.put("2024/05/20", "12");
map.put("2024/05/21", "15");
map.put("2024/05/22", "17");
return map;
DfCheckingRecordV2Mapper mapper = SpringUtils.getBean(DfCheckingRecordV2Mapper.class);
List<CountDto> list = mapper.count(sp, PatrolMaintenanceCategory.JD_PATROL);
return adcdGroup(list, sp);
}, "个", "0"),
;
@ -74,4 +74,40 @@ public enum StaticIndexEnum {
this.defaultValue = defaultValue;
}
public static Map<String, String> adcdGroup(List<CountDto> list, ObjectStatisticQueDto sp) {
if (CollectionUtil.isEmpty(list)) {
return Collections.emptyMap();
}
String queryAdcd = sp.getAdcdQx();
int index = queryAdcd.length();
List<String> adcds = list.stream()
.map(co -> fullAdcd(co.getCode(), index))
.distinct()
.collect(Collectors.toList());
SysXzqhService service = SpringUtils.getBean(SysXzqhService.class);
Map<String, SysXzqh> map = service.get(adcds);
return list.stream().map(item -> {
String code = fullAdcd(item.getCode(), index);
SysXzqh sysXzqh = map.get(code);
if (sysXzqh != null) {
item.setCode(sysXzqh.getName());
return item;
} else {
return null;
}
}).filter(Objects::nonNull)
.collect(Collectors.groupingBy(CountDto::getCode,
Collectors.reducing("0", item -> item.getSum() + "", (a, b) -> {
int sum = Integer.parseInt(a);
int add = Integer.parseInt(b);
return String.valueOf(sum + add);
}
)));
}
public static String fullAdcd(String adcd, int index) {
return (adcd.substring(0, index + 2) + "0000000000000000").substring(0, 12);
}
}

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

@ -1,9 +1,15 @@
package com.kms.yxgh.df.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kms.yxgh.common.dto.CountDto;
import com.kms.yxgh.common.dto.ObjectStatisticQueDto;
import com.kms.yxgh.df.domain.DfCheckingProblemV2;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* DfCheckingProblemV2Mapper
*
@ -13,5 +19,17 @@ import org.springframework.stereotype.Repository;
@Repository
public interface DfCheckingProblemV2Mapper extends BaseMapper<DfCheckingProblemV2> {
@Select("<script> " +
"select base.adcd code ,count(1) sum " +
"from bs_sgc_df_xcqx xm " +
"left join att_dike_base base on base.dike_code=xm.dike_code " +
"where 1=1 " +
"<if test='data.startTime != null'> and xm.create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and xm.create_time &lt;= #{data.endTime} </if> " +
"<if test='data.adcdQx != null and data.adcdQx != \"\"'>" +
"and base.adcd like concat(#{data.adcdQx}, '%') " +
"</if>" +
"group by base.adcd " +
"</script>")
List<CountDto> count(@Param("data") ObjectStatisticQueDto sp);
}

24
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingRecordV2Mapper.java

@ -1,9 +1,16 @@
package com.kms.yxgh.df.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kms.yxgh.common.dto.CountDto;
import com.kms.yxgh.common.dto.ObjectStatisticQueDto;
import com.kms.yxgh.common.enums.PatrolMaintenanceCategory;
import com.kms.yxgh.df.domain.DfCheckingRecord;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 害堤动物防治计划Mapper接口
*
@ -13,5 +20,20 @@ import org.springframework.stereotype.Repository;
@Repository
public interface DfCheckingRecordV2Mapper extends BaseMapper<DfCheckingRecord> {
@Select("<script> " +
"select base.adcd code ,count(1) sum " +
"from bs_sgc_df_xsxcjl xm " +
"left join att_dike_base base on base.dike_code=xm.dike_code " +
"where 1=1 " +
"<if test='data.startTime != null'> and xm.create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and xm.create_time &lt;= #{data.endTime} </if> " +
"<if test='data.adcdQx != null and data.adcdQx != \"\"'>" +
"and base.adcd like concat(#{data.adcdQx}, '%') " +
"</if>" +
"<if test='category != null'>" +
"and xm.category = #{category.value} " +
"</if>" +
"group by base.adcd " +
"</script>")
List<CountDto> count(@Param("data") ObjectStatisticQueDto sp, @Param("category") PatrolMaintenanceCategory category);
}

18
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingV2Mapper.java

@ -1,9 +1,15 @@
package com.kms.yxgh.df.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kms.yxgh.common.dto.CountDto;
import com.kms.yxgh.common.dto.ObjectStatisticQueDto;
import com.kms.yxgh.df.domain.DfCheckingV2ProjectManage;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 害堤动物防治计划Mapper接口
*
@ -13,5 +19,17 @@ import org.springframework.stereotype.Repository;
@Repository
public interface DfCheckingV2Mapper extends BaseMapper<DfCheckingV2ProjectManage> {
@Select("<script> " +
"select base.adcd code ,count(1) sum " +
"from bs_sgc_df_xmgl xm " +
"left join att_dike_base base on base.dike_code=xm.dike_code " +
"where 1=1 " +
"<if test='data.adcdQx != null and data.adcdQx != \"\"'>" +
"and base.adcd like concat(#{data.adcdQx}, '%') " +
"</if>" +
"group by base.adcd " +
"</script>"
)
List<CountDto> count(@Param("data") ObjectStatisticQueDto sp);
}

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

@ -1,11 +1,12 @@
package com.kms.yxgh.df.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kms.yxgh.df.domain.DfYhV2;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.common.dto.ApprovalDetailDto;
import com.kms.yxgh.common.dto.ApprovalSearchDto;
import com.kms.yxgh.common.dto.CountDto;
import com.kms.yxgh.common.dto.ObjectStatisticQueDto;
import com.kms.yxgh.common.mapper.handler.DocHandler;
import com.kms.yxgh.common.mapper.handler.OperatorHandler;
import com.kms.yxgh.df.domain.DfYhV2;
@ -17,6 +18,8 @@ import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* DfYhV2Mapper
*
@ -72,4 +75,19 @@ public interface DfYhV2Mapper extends BaseMapper<DfYhV2> {
@Result(column = "approval_time", property = "approvalTime"),
})
IPage<ApprovalDetailDto<DfYhApproveDto>> approvalSearchPage(Page<DfRecordSearchV2Dto> page, @Param("dto") ApprovalSearchDto<DfRecordSearchV2Dto> data);
@Select("<script> " +
"select base.adcd code ,count(1) sum " +
"from bs_sgc_df_xcyj xm " +
"left join att_dike_base base on base.dike_code=xm.dike_code " +
"where 1=1 " +
"<if test='data.startTime != null'> and xm.create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and xm.create_time &lt;= #{data.endTime} </if> " +
"<if test='data.adcdQx != null and data.adcdQx != \"\"'>" +
"and base.adcd like concat(#{data.adcdQx}, '%') " +
"</if>" +
"group by base.adcd " +
"</script>")
List<CountDto> count(@Param("data") ObjectStatisticQueDto sp);
}

Loading…
Cancel
Save