Commit 707f9817 by 袁伟铭

修改

parent e1c3f40f
package com.zq.common.entity; package com.zq.common.entity;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.zq.common.utils.StringUtils; import com.zq.common.utils.StringUtils;
...@@ -101,18 +100,15 @@ public class SystemArea { ...@@ -101,18 +100,15 @@ public class SystemArea {
/** /**
* 获取下一区域等级长度 * 获取下一区域等级长度
* *
* @param subAreaCode * @param level
* @return * @return
*/ */
public static int getNextLevelLength(String subAreaCode) { public static int getNextLevelLength(Integer level) {
if (StrUtil.isBlank(subAreaCode)) { if (level == 1) {
return 2;
}
if (subAreaCode.length() == 2) {
return 4; return 4;
} else if (subAreaCode.length() == 4) { } else if (level == 2) {
return 6; return 6;
} else if (subAreaCode.length() == 6) { } else if (level == 3) {
return 9; return 9;
} else { } else {
return 12; return 12;
......
...@@ -37,6 +37,14 @@ public interface HyStatsDao { ...@@ -37,6 +37,14 @@ public interface HyStatsDao {
List<StatsVo> getMarriageStats(StatsReqVo vo); List<StatsVo> getMarriageStats(StatsReqVo vo);
/** /**
* 获取下级区域婚姻统计列表
*
* @param vo
* @return
*/
List<StatsVo> getAreaUnderMarriageStatsList(StatsReqVo vo);
/**
* 获取跨地结婚离婚人数 * 获取跨地结婚离婚人数
* *
* @param vo * @param vo
......
...@@ -53,7 +53,7 @@ public class BzStatsService { ...@@ -53,7 +53,7 @@ public class BzStatsService {
} }
SystemArea systemArea = areaDao.selectById(vo.getAreaCode()); SystemArea systemArea = areaDao.selectById(vo.getAreaCode());
vo.setSubAreaCode(systemArea.subAreaCode()); vo.setSubAreaCode(systemArea.subAreaCode());
vo.setSize(SystemArea.getNextLevelLength(vo.getSubAreaCode())); vo.setSize(SystemArea.getNextLevelLength(systemArea.getType()));
VBzCremationStats build = VBzCremationStats.builder() VBzCremationStats build = VBzCremationStats.builder()
.areaCode(systemArea.getCode()) .areaCode(systemArea.getCode())
...@@ -95,7 +95,7 @@ public class BzStatsService { ...@@ -95,7 +95,7 @@ public class BzStatsService {
public Map<String, Object> getCremationStatsList(StatsReqVo vo) { public Map<String, Object> getCremationStatsList(StatsReqVo vo) {
SystemArea systemArea = areaDao.selectById(vo.getAreaCode()); SystemArea systemArea = areaDao.selectById(vo.getAreaCode());
vo.setSubAreaCode(systemArea.subAreaCode()); vo.setSubAreaCode(systemArea.subAreaCode());
vo.setSize(SystemArea.getNextLevelLength(vo.getSubAreaCode())); vo.setSize(SystemArea.getNextLevelLength(systemArea.getType()));
List<String> cityList = new ArrayList<>(); List<String> cityList = new ArrayList<>();
List<String> numList = new ArrayList<>(); List<String> numList = new ArrayList<>();
......
...@@ -137,14 +137,57 @@ public class HyStatsService { ...@@ -137,14 +137,57 @@ public class HyStatsService {
*/ */
public Object getAreaUnderMarriageStatsList(StatsReqVo vo) { public Object getAreaUnderMarriageStatsList(StatsReqVo vo) {
String cacheKey = PortalCacheKeys.getAreaUnderMarriageStatsListKey(vo); String cacheKey = PortalCacheKeys.getAreaUnderMarriageStatsListKey(vo);
SystemArea area = areaDao.selectById(vo.getAreaCode());
vo.setSubAreaCode(area.subAreaCode());
vo.setSize(SystemArea.getNextLevelLength(area.getType()));
List<VMarriageStats> returnData = new ArrayList<>(); List<VMarriageStats> returnData = new ArrayList<>();
List<SystemArea> systemAreaList = areaDao.selectList(Wrappers.lambdaQuery(SystemArea.builder().parentId(vo.getAreaCode()).build())); List<StatsVo> statsList = hyStatsDao.getAreaUnderMarriageStatsList(vo);
for (SystemArea systemArea : systemAreaList) { statsList:
vo.setAreaCode(systemArea.getCode()); for (StatsVo stats : statsList) {
VMarriageStats marriageStats = getCacheMarriageStats(vo); if ("IA".equals(stats.getType())) {
returnData.add(marriageStats); for (VMarriageStats marriageStats : returnData) {
if (marriageStats.getAreaCode().startsWith(stats.getCode())) {
marriageStats.setMarryNum(stats.getNum());
continue statsList;// 继续下一个统计
}
}
SystemArea systemArea = areaDao.selectById(SystemArea.patchZero(stats.getCode()));
VMarriageStats build = VMarriageStats.builder()
.areaCode(systemArea.getCode())
.areaName(systemArea.getName())
.year(vo.getYear())
.marryNum(stats.getNum())
.build();
returnData.add(build);
} else if ("IB".equals(stats.getType())) {
for (VMarriageStats marriageStats : returnData) {
if (marriageStats.getAreaCode().startsWith(stats.getCode())) {
marriageStats.setDivorceNum(stats.getNum());
continue statsList;// 继续下一个统计
}
}
SystemArea systemArea = areaDao.selectById(SystemArea.patchZero(stats.getCode()));
VMarriageStats build = VMarriageStats.builder()
.areaCode(systemArea.getCode())
.areaName(systemArea.getName())
.year(vo.getYear())
.marryNum(stats.getNum())
.build();
returnData.add(build);
}
} }
returnData.sort(Comparator.comparing(VMarriageStats::getAreaCode));
// List<SystemArea> systemAreaList = areaDao.selectList(Wrappers.lambdaQuery(SystemArea.builder().parentId(vo.getAreaCode()).build()));
// for (SystemArea systemArea : systemAreaList) {
// vo.setAreaCode(systemArea.getCode());
// VMarriageStats marriageStats = getCacheMarriageStats(vo);
// returnData.add(marriageStats);
// }
List<String> cityList = new ArrayList<>(); List<String> cityList = new ArrayList<>();
......
...@@ -46,7 +46,7 @@ public class YlStatsService { ...@@ -46,7 +46,7 @@ public class YlStatsService {
SystemArea systemArea = areaDao.selectById(vo.getAreaCode()); SystemArea systemArea = areaDao.selectById(vo.getAreaCode());
vo.setSubAreaCode(systemArea.subAreaCode()); vo.setSubAreaCode(systemArea.subAreaCode());
// SQL分组区域长度 // SQL分组区域长度
vo.setSize(SystemArea.getNextLevelLength(vo.getSubAreaCode())); vo.setSize(SystemArea.getNextLevelLength(systemArea.getType()));
List<String> cityList = new ArrayList<>(); List<String> cityList = new ArrayList<>();
List<String> numList = new ArrayList<>(); List<String> numList = new ArrayList<>();
......
...@@ -42,12 +42,12 @@ public class StatsTimingTask { ...@@ -42,12 +42,12 @@ public class StatsTimingTask {
public void hyStats() { public void hyStats() {
System.out.println("婚姻-基本数统计 触发时间 :" + new Date()); System.out.println("婚姻-基本数统计 触发时间 :" + new Date());
// 统计全区下面的数据
hyStatsService.getFivesYearMarriageLine(StatsReqVo.builder().areaCode("450000000000").build()); hyStatsService.getFivesYearMarriageLine(StatsReqVo.builder().areaCode("450000000000").build());
hyStatsService.getMarriageStats(StatsReqVo.builder().areaCode("450000000000").build()); hyStatsService.getMarriageStats(StatsReqVo.builder().areaCode("450000000000").build());
hyStatsService.getMonthMarriageLine(StatsReqVo.builder().areaCode("450000000000").build()); hyStatsService.getMonthMarriageLine(StatsReqVo.builder().areaCode("450000000000").build());
// 统计区下面的数据
hyStatsService.getAreaUnderMarriageStatsList(StatsReqVo.builder().areaCode("450000000000").build()); hyStatsService.getAreaUnderMarriageStatsList(StatsReqVo.builder().areaCode("450000000000").build());
List<SystemArea> cityAreaList = areaDao.selectList(Wrappers.lambdaQuery(SystemArea.builder().parentId("450000000000").build())); List<SystemArea> cityAreaList = areaDao.selectList(Wrappers.lambdaQuery(SystemArea.builder().parentId("450000000000").build()));
for (SystemArea cityArea : cityAreaList) { for (SystemArea cityArea : cityAreaList) {
// 统计市下面的数据 // 统计市下面的数据
...@@ -58,6 +58,7 @@ public class StatsTimingTask { ...@@ -58,6 +58,7 @@ public class StatsTimingTask {
List<SystemArea> areaList = areaDao.selectList(Wrappers.lambdaQuery(SystemArea.builder().parentId(cityArea.getCode()).build())); List<SystemArea> areaList = areaDao.selectList(Wrappers.lambdaQuery(SystemArea.builder().parentId(cityArea.getCode()).build()));
for (SystemArea area : areaList) { for (SystemArea area : areaList) {
// 统计区下面的数据
hyStatsService.getFivesYearMarriageLine(StatsReqVo.builder().areaCode(area.getCode()).build()); hyStatsService.getFivesYearMarriageLine(StatsReqVo.builder().areaCode(area.getCode()).build());
hyStatsService.getMarriageStats(StatsReqVo.builder().areaCode(area.getCode()).build()); hyStatsService.getMarriageStats(StatsReqVo.builder().areaCode(area.getCode()).build());
hyStatsService.getMonthMarriageLine(StatsReqVo.builder().areaCode(area.getCode()).build()); hyStatsService.getMonthMarriageLine(StatsReqVo.builder().areaCode(area.getCode()).build());
...@@ -68,7 +69,7 @@ public class StatsTimingTask { ...@@ -68,7 +69,7 @@ public class StatsTimingTask {
@Scheduled(cron = cron) @Scheduled(cron = cron)
public void etStats() { public void etStats() {
System.out.println("儿童福利机构-基本数统计 触发时间 :" + new Date()); System.out.println("儿童-基本数统计 触发时间 :" + new Date());
List<SystemArea> cityAreaList = areaDao.selectList(Wrappers.lambdaQuery(SystemArea.builder().parentId("450000000000").build())); List<SystemArea> cityAreaList = areaDao.selectList(Wrappers.lambdaQuery(SystemArea.builder().parentId("450000000000").build()));
etStatsService.getAgencyChildStats(StatsReqVo.builder().areaCode("450000000000").build()); etStatsService.getAgencyChildStats(StatsReqVo.builder().areaCode("450000000000").build());
......
...@@ -46,6 +46,30 @@ ...@@ -46,6 +46,30 @@
GROUP BY GROUP BY
m.AIAX0001 m.AIAX0001
</select> </select>
<!---->
<select id="getAreaUnderMarriageStatsList" resultType="com.zq.portal.vo.StatsVo">
SELECT
LEFT ( m.YAB003, #{size} ) 'code',
m.AIAX0001 'type' ,
COUNT( 1 ) 'num'
FROM
mrcase m
WHERE
m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND CHAR_LENGTH (LEFT ( m.YAB003, #{size} )) = #{size}
<if test="year != null">
AND m.AIAX0059 = #{year}
</if>
<if test="type != null and type != ''">
AND m.AIAX0001 = #{type}
</if>
<if test="subAreaCode != null and subAreaCode != ''">
AND m.YAB003 LIKE CONCAT( #{subAreaCode}, '%' )
</if>
GROUP BY
LEFT ( m.YAB003, #{size} ), m.AIAX0001
</select>
<!--获取跨地婚姻统计--> <!--获取跨地婚姻统计-->
<select id="getCrossMarriageStats" resultType="com.zq.portal.vo.StatsVo"> <select id="getCrossMarriageStats" resultType="com.zq.portal.vo.StatsVo">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment