Browse Source

fix: 大屏中央,各种人员类别数量菜单数量错误的问题

master
wxz 2 years ago
parent
commit
8a854c3b59
  1. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  2. 25
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/LingShanScreenServiceImpl.java
  3. 17
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

5
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java

@ -512,6 +512,9 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
* @Author: wangxianzhang
* @Date: 2023/5/24 9:27 AM
*/
List<LingShanSpecialCrowdStatsByOrgResultDTO> countSpecialQtyByOrgIdPath(@Param("orgIdPath") String orgIdPath,
List<LingShanSpecialCrowdStatsByOrgResultDTO> countSpecialQtyOfAllSubOrg(@Param("orgIdPath") String orgIdPath,
@Param("specialType") String specialType);
int countSpecialQtyOfOrg(@Param("orgIdPath") String orgIdPath, @Param("specialType") String specialType);
}

25
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/LingShanScreenServiceImpl.java

@ -90,7 +90,7 @@ public class LingShanScreenServiceImpl implements LingShanScreenService, ResultD
return t;
}).collect(Collectors.toList());
List<LingShanSpecialCrowdStatsByOrgResultDTO> ol = icResiUserDao.countSpecialQtyByOrgIdPath(PidUtils.convertPid2OrgIdPath(parentAgencyInfo.getId(), parentAgencyInfo.getPids()), specialType);
List<LingShanSpecialCrowdStatsByOrgResultDTO> ol = icResiUserDao.countSpecialQtyOfAllSubOrg(PidUtils.convertPid2OrgIdPath(parentAgencyInfo.getId(), parentAgencyInfo.getPids()), specialType);
// 开始给rl++
for (LingShanSpecialCrowdStatsByOrgResultDTO qtyData : ol) {
@ -111,25 +111,10 @@ public class LingShanScreenServiceImpl implements LingShanScreenService, ResultD
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)));
for (LingShanSpecialCrowdTypeEnums e : LingShanSpecialCrowdTypeEnums.values()) {
int qty = icResiUserDao.countSpecialQtyOfOrg(orgIdPath, e.getType());
l.add(new LingShanSpecialCrowdStatsBySpecialTypeResultDTO(e.getType(), e.getName(), qty));
}
return l;
}

17
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -1743,7 +1743,7 @@
</select>
<!--根据orgIdPath计算各个组织下的特殊人群数量-->
<select id="countSpecialQtyByOrgIdPath"
<select id="countSpecialQtyOfAllSubOrg"
resultType="com.epmet.dto.result.lingshan.LingShanSpecialCrowdStatsByOrgResultDTO">
select count(*) quantity
, r.PIDS orgIdPath
@ -1758,4 +1758,19 @@
</if>
group by r.PIDS
</select>
<!--指定组织下,指定人群类别,的数量-->
<select id="countSpecialQtyOfOrg"
resultType="int">
select count(*) quantity
from ic_resi_user r
inner join ic_special s on (s.DEL_FLAG = 0 and r.ID = s.IC_RESI_USER)
where r.DEL_FLAG = 0
and r.PIDS like CONCAT(#{orgIdPath}, '%')
and s.SPECIAL_RQLB is not null
and s.SPECIAL_RQLB != ''
<if test="specialType != null and specialType != ''">
and s.SPECIAL_RQLB like CONCAT('%',#{specialType},'%')
</if>
</select>
</mapper>

Loading…
Cancel
Save