Browse Source

特殊人群:增加柱状图和各类人员数量。下一步要查询各类人员分布了

master
wxz 2 years ago
parent
commit
a9c59473ed
  1. 25
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/lingshan/LingShanSpecialCrowdStatsByOrgResultDTO.java
  2. 16
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/lingshan/LingShanSpecialCrowdStatsBySpecialTypeResultDTO.java
  3. 52
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/LingShanScreenController.java
  4. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailAzbjDao.java
  5. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailJdryDao.java
  6. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailJzhzDao.java
  7. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailSqjzDao.java
  8. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanSpecialCrowdDetailXfryDao.java
  9. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/LingShanSpecialCrowdDetailBaseExcelData.java
  10. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/AbstractLingShanSpecialCrowdExcelImportListener.java
  11. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/LingShanScreenService.java
  12. 108
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/LingShanScreenServiceImpl.java
  13. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/LingShanSpecialCrowdServiceImpl.java
  14. 12
      epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailAzbjDao.xml
  15. 12
      epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailJdryDao.xml
  16. 13
      epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailJzhzDao.xml
  17. 13
      epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailSqjzDao.xml
  18. 14
      epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailXfryDao.xml

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

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

52
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<LingShanSpecialCrowdStatsByOrgResultDTO> 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<LingShanSpecialCrowdStatsBySpecialTypeResultDTO> l = lingShanScreenService.specialCrowdStatsCountBySpecialType(parentAgencyId);
return new Result().ok(l);
}
}

3
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<LingshanSpeci
void saveBatchManually(@Param("asbjList") List<LingshanSpecialCrowdDetailAzbjEntity> l);
void deletePhysical(@Param("idCard") String idCard);
List<LingShanSpecialCrowdStatsByOrgResultDTO> statsCountsByOrgIds(@Param("orgIdPaths") List<String> orgIdPaths);
}

3
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<LingshanSpeci
void saveBatchManually(@Param("list") List<LingshanSpecialCrowdDetailJdryEntity> l);
void deletePhysical(@Param("idCard") String idCard);
List<LingShanSpecialCrowdStatsByOrgResultDTO> statsCountsByOrgIds(@Param("orgIdPaths") List<String> orgIdPaths);
}

3
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<LingshanSpeci
void saveBatchManually(@Param("list") List<LingshanSpecialCrowdDetailJzhzEntity> l);
void deletePhysical(@Param("idCard") String idCard);
List<LingShanSpecialCrowdStatsByOrgResultDTO> statsCountsByOrgIds(@Param("orgIdPaths") List<String> orgIdPaths);
}

3
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<LingshanSpeci
void saveBatchManually(@Param("list") List<LingshanSpecialCrowdDetailSqjzEntity> l);
void deletePhysical(@Param("idCard") String idCard);
List<LingShanSpecialCrowdStatsByOrgResultDTO> statsCountsByOrgIds(@Param("orgIdPaths") List<String> orgIdPaths);
}

3
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<LingshanSpeci
void saveBatchManually(@Param("list") List<LingshanSpecialCrowdDetailXfryEntity> l);
void deletePhysical(@Param("idCard") String idCard);
List<LingShanSpecialCrowdStatsByOrgResultDTO> statsCountsByOrgIds(@Param("orgIdPaths") List<String> orgIdPaths);
}

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

2
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/AbstractLingShanSpecialCrowdExcelImportListener.java

@ -258,6 +258,8 @@ public abstract class AbstractLingShanSpecialCrowdExcelImportListener<T extends
} else {
specialTypes.add(new PersonSpecialTypeBean(row.getResiId(), row.getIdCard(), specialCrowdType.getType()));
orgIdPath = PidUtils.convertPid2OrgIdPath(row.getResiGridId(), orgIdPath);
E e = ConvertUtils.sourceToTarget(row, entityClass);
e.setCustomerId(customerId);
e.setOrgIdPath(orgIdPath);

14
epmet-user/epmet-user-server/src/main/java/com/epmet/service/LingShanScreenService.java

@ -0,0 +1,14 @@
package com.epmet.service;
import com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO;
import com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsBySpecialTypeResultDTO;
import java.util.List;
public interface LingShanScreenService {
List<LingShanSpecialCrowdStatsByOrgResultDTO> specialCrowdStatsCountBySubOrg(String parentAgencyId);
List<LingShanSpecialCrowdStatsBySpecialTypeResultDTO> specialCrowdStatsCountBySpecialType(String parentAgencyId);
}

108
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<LingShanSpecialCrowdStatsByOrgResultDTO> specialCrowdStatsCountBySubOrg(String parentAgencyId) {
List<SubOrgResDTO> subOrgs = getResultDataOrThrowsException(govOrgOpenFeignClient.subOrgList(parentAgencyId), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), null, null);
List<String> orgIdPaths = subOrgs.stream().map(sub -> PidUtils.convertPid2OrgIdPath(sub.getOrgId(), sub.getPids())).collect(Collectors.toList());
List<LingShanSpecialCrowdStatsByOrgResultDTO> 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<LingShanSpecialCrowdStatsByOrgResultDTO> 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<LingShanSpecialCrowdStatsBySpecialTypeResultDTO> specialCrowdStatsCountBySpecialType(String parentAgencyId) {
String orgIdPath = CustomerOrgRedis.getOrgIdPath(parentAgencyId, LevelConstant.AGENCY);
ArrayList<LingShanSpecialCrowdStatsBySpecialTypeResultDTO> l = new ArrayList<>();
LambdaQueryWrapper<LingshanSpecialCrowdDetailAzbjEntity> azbjq = new LambdaQueryWrapper<>();
azbjq.likeRight(LingshanSpecialCrowdDetailAzbjEntity::getOrgIdPath, orgIdPath);
l.add(new LingShanSpecialCrowdStatsBySpecialTypeResultDTO(LingShanSpecialCrowdTypeEnums.AZBJ.getType(), LingShanSpecialCrowdTypeEnums.AZBJ.getName(), azbjDao.selectCount(azbjq)));
LambdaQueryWrapper<LingshanSpecialCrowdDetailSqjzEntity> sqjzq = new LambdaQueryWrapper<>();
sqjzq.likeRight(LingshanSpecialCrowdDetailSqjzEntity::getOrgIdPath, orgIdPath);
l.add(new LingShanSpecialCrowdStatsBySpecialTypeResultDTO(LingShanSpecialCrowdTypeEnums.SQJZ.getType(), LingShanSpecialCrowdTypeEnums.SQJZ.getName(), sqjzDao.selectCount(sqjzq)));
LambdaQueryWrapper<LingshanSpecialCrowdDetailXfryEntity> xfryq = new LambdaQueryWrapper<>();
xfryq.likeRight(LingshanSpecialCrowdDetailXfryEntity::getOrgIdPath, orgIdPath);
l.add(new LingShanSpecialCrowdStatsBySpecialTypeResultDTO(LingShanSpecialCrowdTypeEnums.XFRY.getType(), LingShanSpecialCrowdTypeEnums.XFRY.getName(), xfryDao.selectCount(xfryq)));
LambdaQueryWrapper<LingshanSpecialCrowdDetailJdryEntity> jdryq = new LambdaQueryWrapper<>();
jdryq.likeRight(LingshanSpecialCrowdDetailJdryEntity::getOrgIdPath, orgIdPath);
l.add(new LingShanSpecialCrowdStatsBySpecialTypeResultDTO(LingShanSpecialCrowdTypeEnums.JDRY.getType(), LingShanSpecialCrowdTypeEnums.JDRY.getName(), jdryDao.selectCount(jdryq)));
LambdaQueryWrapper<LingshanSpecialCrowdDetailJzhzEntity> jzhzq = new LambdaQueryWrapper<>();
jzhzq.likeRight(LingshanSpecialCrowdDetailJzhzEntity::getOrgIdPath, orgIdPath);
l.add(new LingShanSpecialCrowdStatsBySpecialTypeResultDTO(LingShanSpecialCrowdTypeEnums.JZHZ.getType(), LingShanSpecialCrowdTypeEnums.JZHZ.getName(), jzhzDao.selectCount(jzhzq)));
return l;
}
}

3
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<PersonSpecialTypeBean> types2Save = new ArrayList<>();

12
epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailAzbjDao.xml

@ -55,6 +55,18 @@
<delete id="deletePhysical">
delete from lingshan_special_crowd_detail_azbj where ID_CARD=#{idCard}
</delete>
<select id="statsCountsByOrgIds"
resultType="com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO">
select ORG_ID_PATH, count(*) quantity
from lingshan_special_crowd_detail_azbj
<where>
DEL_FLAG=0
<foreach collection="orgIdPaths" item="orgIdPath" separator="or" open="and (" close=")">
ORG_ID_PATH like CONCAT(#{orgIdPath},'%')
</foreach>
</where>
group by ORG_ID_PATH
</select>
</mapper>

12
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}
</delete>
<select id="statsCountsByOrgIds"
resultType="com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO">
select ORG_ID_PATH, count(*) quantity
from lingshan_special_crowd_detail_jdry
<where>
DEL_FLAG=0
<foreach collection="orgIdPaths" item="orgIdPath" separator="or" open="and (" close=")">
ORG_ID_PATH like CONCAT(#{orgIdPath},'%')
</foreach>
</where>
group by ORG_ID_PATH
</select>
</mapper>

13
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}
</delete>
<select id="statsCountsByOrgIds"
resultType="com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO">
select ORG_ID_PATH, count(*) quantity
from lingshan_special_crowd_detail_jzhz
<where>
DEL_FLAG=0
<foreach collection="orgIdPaths" item="orgIdPath" separator="or" open="and (" close=")">
ORG_ID_PATH like CONCAT(#{orgIdPath},'%')
</foreach>
</where>
group by ORG_ID_PATH
</select>
</mapper>

13
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}
</delete>
<select id="statsCountsByOrgIds"
resultType="com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO">
select ORG_ID_PATH, count(*) quantity
from lingshan_special_crowd_detail_sqjz
<where>
DEL_FLAG=0
<foreach collection="orgIdPaths" item="orgIdPath" separator="or" open="and (" close=")">
ORG_ID_PATH like CONCAT(#{orgIdPath},'%')
</foreach>
</where>
group by ORG_ID_PATH
</select>
</mapper>

14
epmet-user/epmet-user-server/src/main/resources/mapper/LingshanSpecialCrowdDetailXfryDao.xml

@ -60,4 +60,18 @@
</delete>
<select id="statsCountsByOrgIds"
resultType="com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO">
select ORG_ID_PATH, count(*) quantity
from lingshan_special_crowd_detail_xfry
<where>
DEL_FLAG=0
<foreach collection="orgIdPaths" item="orgIdPath" separator="or" open="and (" close=")">
ORG_ID_PATH like CONCAT(#{orgIdPath},'%')
</foreach>
</where>
group by ORG_ID_PATH
</select>
</mapper>
Loading…
Cancel
Save