diff --git a/shuili-system/src/main/java/com/kms/system/service/SysXzqhService.java b/shuili-system/src/main/java/com/kms/system/service/SysXzqhService.java index 08f22b2b..1453bd77 100644 --- a/shuili-system/src/main/java/com/kms/system/service/SysXzqhService.java +++ b/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 { private SysDeptService sysDeptService; + public Map get(List 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 { return sysXzqh.getXzqhdm().substring(0, 2); } else if (sysXzqh.getLayer() == 4) { return sysXzqh.getXzqhdm().substring(0, 4); - }else { + } else { return sysXzqh.getXzqhdm(); } diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/dto/CountDto.java b/shuili-system/src/main/java/com/kms/yxgh/common/dto/CountDto.java new file mode 100644 index 00000000..fa874706 --- /dev/null +++ b/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; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/dto/ObjectStatisticQueDto.java b/shuili-system/src/main/java/com/kms/yxgh/common/dto/ObjectStatisticQueDto.java index 5a91b281..9b8ff9cc 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/dto/ObjectStatisticQueDto.java +++ b/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; diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/enums/PatrolMaintenanceCategory.java b/shuili-system/src/main/java/com/kms/yxgh/common/enums/PatrolMaintenanceCategory.java new file mode 100644 index 00000000..338b7456 --- /dev/null +++ b/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; + } +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/enums/ProjectCharEnum.java b/shuili-system/src/main/java/com/kms/yxgh/common/enums/ProjectCharEnum.java index c5f5858c..95fc49e3 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/enums/ProjectCharEnum.java +++ b/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; diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/enums/StaticIndexEnum.java b/shuili-system/src/main/java/com/kms/yxgh/common/enums/StaticIndexEnum.java index 187687fe..f2ceee58 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/enums/StaticIndexEnum.java +++ b/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 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 list = mapper.count(sp); + return adcdGroup(list, sp); }, "个", "0"), DF_YH_ADCD_SUM("养护次数", sp -> { - Map 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 list = mapper.count(sp); + return adcdGroup(list, sp); }, "个", "0"), DF_PROJECT_ADCD_SUM("工程数量", sp -> { - Map 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 list = mapper.count(sp); + return adcdGroup(list, sp); }, "个", "0"), DF_CHECKING_ADCD_SUM("工程巡查", sp -> { - Map 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 list = mapper.count(sp, PatrolMaintenanceCategory.PROJECT_PATROL); + return adcdGroup(list, sp); }, "个", "0"), DF_JD_ADCD_SUM("机电巡查", sp -> { - Map 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 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 adcdGroup(List list, ObjectStatisticQueDto sp) { + if (CollectionUtil.isEmpty(list)) { + return Collections.emptyMap(); + } + String queryAdcd = sp.getAdcdQx(); + int index = queryAdcd.length(); + List adcds = list.stream() + .map(co -> fullAdcd(co.getCode(), index)) + .distinct() + .collect(Collectors.toList()); + SysXzqhService service = SpringUtils.getBean(SysXzqhService.class); + Map 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); + } + } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingProblemV2Mapper.java b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingProblemV2Mapper.java index 1e369be6..fa84119a 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingProblemV2Mapper.java +++ b/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 { - + @Select("") + List count(@Param("data") ObjectStatisticQueDto sp); } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingRecordV2Mapper.java b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingRecordV2Mapper.java index e53ffa44..5aeb9531 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingRecordV2Mapper.java +++ b/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 { - + @Select("") + List count(@Param("data") ObjectStatisticQueDto sp, @Param("category") PatrolMaintenanceCategory category); } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingV2Mapper.java b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingV2Mapper.java index 2ffeaa1f..0632c687 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfCheckingV2Mapper.java +++ b/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 { + @Select("" + ) + List count(@Param("data") ObjectStatisticQueDto sp); } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhV2Mapper.java b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhV2Mapper.java index ce98a2c1..63f7eab9 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhV2Mapper.java +++ b/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 { @Result(column = "approval_time", property = "approvalTime"), }) IPage> approvalSearchPage(Page page, @Param("dto") ApprovalSearchDto data); + + + @Select("") + List count(@Param("data") ObjectStatisticQueDto sp); }