diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/lingshan/LingShanSpecialCrowdStatsByOrgResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/lingshan/LingShanSpecialCrowdStatsByOrgResultDTO.java new file mode 100644 index 0000000000..726bd63450 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/lingshan/LingShanSpecialCrowdStatsByOrgResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.result.lingshan; + +import lombok.Data; + +@Data +public class LingShanSpecialCrowdStatsByOrgResultDTO { + + private String orgId; + + private String orgIdPath; + /** + * 组织层级。agency:行政组织。grid:网格 + */ + private String orgType; + /** + * 组织名称 + */ + private String orgName; + /** + * 数量 + */ + private Integer quantity = 0; + + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/lingshan/LingShanSpecialCrowdStatsBySpecialTypeResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/lingshan/LingShanSpecialCrowdStatsBySpecialTypeResultDTO.java new file mode 100644 index 0000000000..8b33d96e07 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/lingshan/LingShanSpecialCrowdStatsBySpecialTypeResultDTO.java @@ -0,0 +1,16 @@ +package com.epmet.dto.result.lingshan; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class LingShanSpecialCrowdStatsBySpecialTypeResultDTO { + + private String specialType; + private String specialTypeName; + private Integer quantity; + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/LingShanScreenController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/LingShanScreenController.java new file mode 100644 index 0000000000..91a30760f7 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/LingShanScreenController.java @@ -0,0 +1,52 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO; +import com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsBySpecialTypeResultDTO; +import com.epmet.service.LingShanScreenService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 灵山大屏 + */ +@RestController +@RequestMapping("lingshanScreen") +public class LingShanScreenController { + + @Autowired + private LingShanScreenService lingShanScreenService; + + /** + * @description: 特殊人群-按组织分组统计数量 + * @param parentAgencyId: + * @return + * @author: WangXianZhang + * @date: 2023/4/27 10:20 AM + */ + @GetMapping("specialCrowdStats/qtyOfSubOrg") + public Result specialCrowdStatsCountBySubOrg(@RequestParam("parentAgencyId") String parentAgencyId) { + + List l = lingShanScreenService.specialCrowdStatsCountBySubOrg(parentAgencyId); + return new Result().ok(l); + } + + /** + * @description: 组织下每一类人群数量 + * @param parentAgencyId: + * @return + * @author: WangXianZhang + * @date: 2023/4/27 12:16 PM + */ + @GetMapping("specialCrowdStats/qtyOfSpecialType") + public Result specialCrowdStatsCountBySpecialType(@RequestParam("parentAgencyId") String parentAgencyId) { + List l = lingShanScreenService.specialCrowdStatsCountBySpecialType(parentAgencyId); + return new Result().ok(l); + } + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailAzbjDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailAzbjDao.java index 64e914b7ca..210f5f9ada 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailAzbjDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailAzbjDao.java @@ -1,6 +1,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO; import com.epmet.entity.LingshanSpecialCrowdDetailAzbjEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -19,4 +20,6 @@ public interface LingshanSpecialCrowdDetailAzbjDao extends BaseDao l); void deletePhysical(@Param("idCard") String idCard); + + List statsCountsByOrgIds(@Param("orgIdPaths") List orgIdPaths); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailJdryDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailJdryDao.java index 488a75c7ec..195d45f550 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailJdryDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailJdryDao.java @@ -1,6 +1,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO; import com.epmet.entity.LingshanSpecialCrowdDetailJdryEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -18,4 +19,6 @@ public interface LingshanSpecialCrowdDetailJdryDao extends BaseDao l); void deletePhysical(@Param("idCard") String idCard); + + List statsCountsByOrgIds(@Param("orgIdPaths") List orgIdPaths); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailJzhzDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailJzhzDao.java index 1337bdfe5d..96505e5ce8 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailJzhzDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailJzhzDao.java @@ -1,6 +1,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO; import com.epmet.entity.LingshanSpecialCrowdDetailJzhzEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -18,4 +19,6 @@ public interface LingshanSpecialCrowdDetailJzhzDao extends BaseDao l); void deletePhysical(@Param("idCard") String idCard); + + List statsCountsByOrgIds(@Param("orgIdPaths") List orgIdPaths); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailSqjzDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailSqjzDao.java index ff36f2d88e..d9e50ebb6a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailSqjzDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailSqjzDao.java @@ -1,6 +1,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO; import com.epmet.entity.LingshanSpecialCrowdDetailSqjzEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -18,4 +19,6 @@ public interface LingshanSpecialCrowdDetailSqjzDao extends BaseDao l); void deletePhysical(@Param("idCard") String idCard); + + List statsCountsByOrgIds(@Param("orgIdPaths") List orgIdPaths); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailXfryDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailXfryDao.java index f118886bcc..631be26f5f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailXfryDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailXfryDao.java @@ -1,6 +1,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO; import com.epmet.entity.LingshanSpecialCrowdDetailXfryEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -18,4 +19,6 @@ public interface LingshanSpecialCrowdDetailXfryDao extends BaseDao l); void deletePhysical(@Param("idCard") String idCard); + + List statsCountsByOrgIds(@Param("orgIdPaths") List orgIdPaths); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/LingShanSpecialCrowdDetailBaseExcelData.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/LingShanSpecialCrowdDetailBaseExcelData.java index 537924183b..2c5c66ea59 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/LingShanSpecialCrowdDetailBaseExcelData.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/LingShanSpecialCrowdDetailBaseExcelData.java @@ -35,4 +35,9 @@ public class LingShanSpecialCrowdDetailBaseExcelData extends LingShanSpecialCrow */ @ExcelIgnore private String resiId; + + /** + * 网格id + */ + private String resiGridId; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/AbstractLingShanSpecialCrowdExcelImportListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/AbstractLingShanSpecialCrowdExcelImportListener.java index dfee3a72bb..23dd2802ad 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/AbstractLingShanSpecialCrowdExcelImportListener.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/AbstractLingShanSpecialCrowdExcelImportListener.java @@ -258,6 +258,8 @@ public abstract class AbstractLingShanSpecialCrowdExcelImportListener specialCrowdStatsCountBySubOrg(String parentAgencyId); + + List specialCrowdStatsCountBySpecialType(String parentAgencyId); +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/LingShanScreenServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/LingShanScreenServiceImpl.java new file mode 100644 index 0000000000..45bb14cc74 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/LingShanScreenServiceImpl.java @@ -0,0 +1,108 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.feign.ResultDataResolver; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.utils.PidUtils; +import com.epmet.constant.LevelConstant; +import com.epmet.dao.*; +import com.epmet.dto.result.SubOrgResDTO; +import com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO; +import com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsBySpecialTypeResultDTO; +import com.epmet.entity.*; +import com.epmet.enums.LingShanSpecialCrowdTypeEnums; +import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.service.LingShanScreenService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class LingShanScreenServiceImpl implements LingShanScreenService, ResultDataResolver { + + @Autowired + private LingshanSpecialCrowdDetailXfryDao xfryDao; + + @Autowired + private LingshanSpecialCrowdDetailAzbjDao azbjDao; + + @Autowired + private LingshanSpecialCrowdDetailJdryDao jdryDao; + + @Autowired + private LingshanSpecialCrowdDetailJzhzDao jzhzDao; + + @Autowired + private LingshanSpecialCrowdDetailSqjzDao sqjzDao; + + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; + + @Override + public List specialCrowdStatsCountBySubOrg(String parentAgencyId) { + List subOrgs = getResultDataOrThrowsException(govOrgOpenFeignClient.subOrgList(parentAgencyId), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), null, null); + List orgIdPaths = subOrgs.stream().map(sub -> PidUtils.convertPid2OrgIdPath(sub.getOrgId(), sub.getPids())).collect(Collectors.toList()); + + List rl = subOrgs.stream().map(sub -> { + LingShanSpecialCrowdStatsByOrgResultDTO t = new LingShanSpecialCrowdStatsByOrgResultDTO(); + t.setOrgId(sub.getOrgId()); + t.setOrgName(sub.getOrgName()); + t.setOrgType(sub.getOrgType()); + t.setOrgIdPath(PidUtils.convertPid2OrgIdPath(sub.getOrgId(), sub.getPids())); + return t; + }).collect(Collectors.toList()); + + + List ol = azbjDao.statsCountsByOrgIds(orgIdPaths); + ol.addAll(sqjzDao.statsCountsByOrgIds(orgIdPaths)); + ol.addAll(xfryDao.statsCountsByOrgIds(orgIdPaths)); + ol.addAll(jdryDao.statsCountsByOrgIds(orgIdPaths)); + ol.addAll(jzhzDao.statsCountsByOrgIds(orgIdPaths)); + + // 开始给rl++ + for (LingShanSpecialCrowdStatsByOrgResultDTO o : ol) { + for (LingShanSpecialCrowdStatsByOrgResultDTO r : rl) { + if (o.getOrgIdPath().contains(r.getOrgIdPath())) { + // 如果ol中的数据,orgIdPath包含了这个组织的orgIdPath,说明这条数据就是这个组织的数据,那就++把 + r.setQuantity(r.getQuantity() + o.getQuantity()); + } + } + } + + return rl; + } + + @Override + public List specialCrowdStatsCountBySpecialType(String parentAgencyId) { + String orgIdPath = CustomerOrgRedis.getOrgIdPath(parentAgencyId, LevelConstant.AGENCY); + + ArrayList l = new ArrayList<>(); + + LambdaQueryWrapper azbjq = new LambdaQueryWrapper<>(); + azbjq.likeRight(LingshanSpecialCrowdDetailAzbjEntity::getOrgIdPath, orgIdPath); + l.add(new LingShanSpecialCrowdStatsBySpecialTypeResultDTO(LingShanSpecialCrowdTypeEnums.AZBJ.getType(), LingShanSpecialCrowdTypeEnums.AZBJ.getName(), azbjDao.selectCount(azbjq))); + + LambdaQueryWrapper sqjzq = new LambdaQueryWrapper<>(); + sqjzq.likeRight(LingshanSpecialCrowdDetailSqjzEntity::getOrgIdPath, orgIdPath); + l.add(new LingShanSpecialCrowdStatsBySpecialTypeResultDTO(LingShanSpecialCrowdTypeEnums.SQJZ.getType(), LingShanSpecialCrowdTypeEnums.SQJZ.getName(), sqjzDao.selectCount(sqjzq))); + + LambdaQueryWrapper xfryq = new LambdaQueryWrapper<>(); + xfryq.likeRight(LingshanSpecialCrowdDetailXfryEntity::getOrgIdPath, orgIdPath); + l.add(new LingShanSpecialCrowdStatsBySpecialTypeResultDTO(LingShanSpecialCrowdTypeEnums.XFRY.getType(), LingShanSpecialCrowdTypeEnums.XFRY.getName(), xfryDao.selectCount(xfryq))); + + LambdaQueryWrapper jdryq = new LambdaQueryWrapper<>(); + jdryq.likeRight(LingshanSpecialCrowdDetailJdryEntity::getOrgIdPath, orgIdPath); + l.add(new LingShanSpecialCrowdStatsBySpecialTypeResultDTO(LingShanSpecialCrowdTypeEnums.JDRY.getType(), LingShanSpecialCrowdTypeEnums.JDRY.getName(), jdryDao.selectCount(jdryq))); + + LambdaQueryWrapper jzhzq = new LambdaQueryWrapper<>(); + jzhzq.likeRight(LingshanSpecialCrowdDetailJzhzEntity::getOrgIdPath, orgIdPath); + l.add(new LingShanSpecialCrowdStatsBySpecialTypeResultDTO(LingShanSpecialCrowdTypeEnums.JZHZ.getType(), LingShanSpecialCrowdTypeEnums.JZHZ.getName(), jzhzDao.selectCount(jzhzq))); + + return l; + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/LingShanSpecialCrowdServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/LingShanSpecialCrowdServiceImpl.java index 34a5a98c8f..a4d83cef6e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/LingShanSpecialCrowdServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/LingShanSpecialCrowdServiceImpl.java @@ -259,6 +259,7 @@ public class LingShanSpecialCrowdServiceImpl implements LingShanSpecialCrowdServ // 设置居民id row.setResiId(resiEntity.getId()); + row.setResiGridId(resiEntity.getGridId()); return null; } @@ -435,6 +436,8 @@ public class LingShanSpecialCrowdServiceImpl implements LingShanSpecialCrowdServ CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId); String orgIdPath = PidUtils.convertPid2OrgIdPath(staffInfo.getAgencyId(), staffInfo.getAgencyPIds()); + orgIdPath = PidUtils.convertPid2OrgIdPath(vt.getResiGridId(), orgIdPath); + Date now = new Date(); ArrayList types2Save = new ArrayList<>(); diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailAzbjDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailAzbjDao.xml index 35938055e8..4a4dee13a3 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailAzbjDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailAzbjDao.xml @@ -55,6 +55,18 @@ delete from lingshan_special_crowd_detail_azbj where ID_CARD=#{idCard} + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailJdryDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailJdryDao.xml index 7b18cda7b6..9d0e724a4c 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailJdryDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailJdryDao.xml @@ -35,5 +35,17 @@ delete from lingshan_special_crowd_detail_jdry where ID_CARD=#{idCard} + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailJzhzDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailJzhzDao.xml index ad68997b41..1bc308d6e2 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailJzhzDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailJzhzDao.xml @@ -60,5 +60,16 @@ delete from lingshan_special_crowd_detail_jzhz where ID_CARD=#{idCard} - + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailSqjzDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailSqjzDao.xml index c9e6c8fa72..9b729f29b9 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailSqjzDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailSqjzDao.xml @@ -58,5 +58,18 @@ delete from lingshan_special_crowd_detail_sqjz where ID_CARD=#{idCard} + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailXfryDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailXfryDao.xml index 44f90dd401..ef6c561bbe 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailXfryDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailXfryDao.xml @@ -60,4 +60,18 @@ + + + \ No newline at end of file