Commit 18c5a211 by zlr

殡葬殡仪馆接口

parent 750ef490
......@@ -25,12 +25,18 @@ public class BzStatsController {
return ResultVo.success(bzStatsService.getCacheCremationStats(vo));
}
@ApiOperation("获取区域殡葬火化分析列表")
@ApiOperation("获取父级殡葬火化分析列表")
@PostMapping(value = "/getCremationStatsList")
public ResultVo<Object> getCremationStatsList(@RequestBody StatsReqVo vo) {
return ResultVo.success(bzStatsService.getCacheCremationStatsList(vo));
}
@ApiOperation("获取子级殡葬火化分析列表")
@PostMapping(value = "/getCremationStatsById")
public ResultVo<Object> getCremationStatsById(@RequestBody StatsReqVo vo) {
return ResultVo.success(bzStatsService.getCacheCremationStatsById(vo));
}
@ApiOperation("获取区域火化率占比")
@PostMapping(value = "/getCremationRateStats")
public ResultVo<Object> getCremationRateStats(@RequestBody StatsReqVo vo) {
......
......@@ -45,4 +45,6 @@ public interface BzStatsDao {
* @return
*/
List<Map<String, Object>> search(SearchReqVo vo);
List<StatsVo> getCremationStats(StatsReqVo vo);
}
......@@ -86,6 +86,11 @@ public abstract class PortalCacheKeys {
return PREFIX + "getCremationStatsList." + vo.getAreaCode() + "." + vo.getYear();
}
//殡葬火化量殡仪馆数据统计
public static String getCremationStatsByIdKey(StatsReqVo vo) {
return PREFIX + "getCremationStatsById." + vo.getAreaCode() + "." + vo.getYear();
}
// 区域火化率占比
public static String getCremationRateStatsKey(StatsReqVo vo) {
return PREFIX + "getCremationRateStats." + vo.getAreaCode() + "." + vo.getYear();
......
......@@ -122,6 +122,23 @@ public class BzStatsService {
return returnMap;
}
public Object getCacheCremationStatsById(StatsReqVo vo) {
Object obj = redisUtils.getObj(PortalCacheKeys.getCremationStatsByIdKey(vo));
if (obj != null) {
return obj;
}
return getCremationStatsById(vo);
}
public List<StatsVo> getCremationStatsById(StatsReqVo vo) {
SystemArea systemArea = areaDao.selectById(vo.getAreaCode());
vo.setSubAreaCode(systemArea.subAreaCode());
vo.setSize(SystemArea.getNextLevelLength(systemArea.getType()));
List<StatsVo> statsList = bzStatsDao.getCremationStats(vo);
redisUtils.setObj(PortalCacheKeys.getCremationStatsByIdKey(vo), statsList);
return statsList;
}
/**
* 统计火化率占比
*
......
......@@ -4,18 +4,34 @@
<select id="getAreaCremationStats" resultType="com.zq.portal.vo.StatsVo">
SELECT
LEFT(d.id, #{size}) 'code',
LEFT( b.beloing_cant_code, #{size}) 'code',
count(*) 'num'
FROM
fis_cremation_info_sum a
LEFT JOIN fis_organ b ON b.organ_name = a.create_organ_name
WHERE 1 = 1
<IF test = "subAreaCode != null and subAreaCode != ''" >
AND b.beloing_cant_code LIKE CONCAT (#{subAreaCode},'%')
</ IF >
GROUP BY
LEFT (b.beloing_cant_code,#{size})
</select>
<select id="getCremationStats" resultType="com.zq.portal.vo.StatsVo">
SELECT
LEFT(b.beloing_cant_code,#{size}) 'code',
a.create_organ_name 'name',
COUNT( 1 ) 'num'
FROM
dic_city d
LEFT JOIN fis_cremation_info_sum f ON d.P_ID = f.POPULACE
WHERE 1=1
<if test="subAreaCode != null and subAreaCode != ''">
ANd d.id LIKE CONCAT (#{subAreaCode},'%')
</if>
AND
LEFT(f.CREMATION_TIME, 4) >= '2017'
GROUP BY LEFT(d.id, #{size})
fis_cremation_info_sum a
LEFT JOIN fis_organ b ON b.organ_name = a.create_organ_name
WHERE 1 = 1
<if test = "subAreaCode != null and subAreaCode != ''" >
AND b.beloing_cant_code LIKE CONCAT (#{subAreaCode},'%')
</ IF >
GROUP BY
a.create_organ_name,
LEFT (b.beloing_cant_code,#{size})
</select>
<select id="getCremationRateStats" resultType="com.zq.portal.vo.StatsVo">
SELECT ROUND(hhsum.c1 / rksum.c2 * 100) 'num'
......
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