Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
civil-bigdata
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
civil
civil-bigdata
Commits
4a5bec58
Commit
4a5bec58
authored
Jun 29, 2021
by
袁伟铭
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改 添加App聚合搜索接口
parent
d26f4ecd
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
155 additions
and
49 deletions
+155
-49
api-server/src/main/java/com/zq/api/feign/PortalFeign.java
+3
-0
api-server/src/main/java/com/zq/api/service/IApiLogic.java
+8
-0
api-server/src/main/java/com/zq/api/service/impl/ApiV100Logic.java
+5
-0
portal-server/src/main/java/com/zq/portal/Swagger.java
+1
-1
portal-server/src/main/java/com/zq/portal/controller/app/BzStatsController.java
+22
-3
portal-server/src/main/java/com/zq/portal/controller/app/StatsController.java
+7
-1
portal-server/src/main/java/com/zq/portal/dao/BzStatsDao.java
+9
-3
portal-server/src/main/java/com/zq/portal/manager/PortalCacheKeys.java
+6
-1
portal-server/src/main/java/com/zq/portal/service/BzStatsService.java
+18
-17
portal-server/src/main/java/com/zq/portal/service/StatsService.java
+33
-6
portal-server/src/main/resources/mapper/BzStatsMapper.xml
+23
-16
portal-server/src/main/resources/mapper/HyStatsMapper.xml
+1
-1
portal-server/src/main/resources/mapper/YlStatsMapper.xml
+19
-0
No files found.
api-server/src/main/java/com/zq/api/feign/PortalFeign.java
View file @
4a5bec58
...
...
@@ -46,4 +46,7 @@ public interface PortalFeign {
@PostMapping
(
"/stats/getAppMapStats"
)
ResultVo
getAppMapStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/gatherSearch"
)
ResultVo
gatherSearch
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
}
api-server/src/main/java/com/zq/api/service/IApiLogic.java
View file @
4a5bec58
...
...
@@ -139,4 +139,12 @@ public interface IApiLogic extends IApiCommon {
* @return
*/
ApiResp
getAppMapStats
(
ApiForm
form
);
/**
* 汇总搜索
*
* @param form
* @return
*/
ApiResp
gatherSearch
(
ApiForm
form
);
}
api-server/src/main/java/com/zq/api/service/impl/ApiV100Logic.java
View file @
4a5bec58
...
...
@@ -96,4 +96,9 @@ public class ApiV100Logic extends BaseApiLogic implements IApiLogic {
public
ApiResp
getAppMapStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAppMapStats
(
form
.
getParamsMap
()));
}
@Override
public
ApiResp
gatherSearch
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
gatherSearch
(
form
.
getParamsMap
()));
}
}
portal-server/src/main/java/com/zq/portal/Swagger.java
View file @
4a5bec58
...
...
@@ -33,7 +33,7 @@ public class Swagger implements WebMvcConfigurer {
public
Docket
api
()
{
return
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
groupName
(
"admin"
)
//
.enable(!"product".equals(profile)) //生产环境关闭
.
enable
(!
"product"
.
equals
(
profile
))
//生产环境关闭
.
select
()
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"com.zq.portal.controller.admin"
))
.
paths
(
PathSelectors
.
any
())
...
...
portal-server/src/main/java/com/zq/portal/controller/app/BzStatsController.java
View file @
4a5bec58
package
com
.
zq
.
portal
.
controller
.
app
;
import
com.zq.common.
config.redis.RedisUtils
;
import
com.zq.common.
vo.ResultVo
;
import
com.zq.portal.service.BzStatsService
;
import
com.zq.portal.
service.HyStatsService
;
import
com.zq.portal.
vo.StatsReqVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -15,6 +18,22 @@ import org.springframework.web.bind.annotation.RestController;
public
class
BzStatsController
{
public
final
BzStatsService
bzStatsService
;
public
final
RedisUtils
redisUtils
;
@ApiOperation
(
"统计该区域火化量和火化率"
)
@PostMapping
(
value
=
"/getCremationStats"
)
public
ResultVo
<
Object
>
getCremationStats
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
bzStatsService
.
getCacheCremationStats
(
vo
));
}
@ApiOperation
(
"获取区域殡葬火化分析列表"
)
@PostMapping
(
value
=
"/getCremationStatsList"
)
public
ResultVo
<
Object
>
getCremationStatsList
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
bzStatsService
.
getCacheCremationStatsList
(
vo
));
}
@ApiOperation
(
"获取区域火化率占比"
)
@PostMapping
(
value
=
"/getCremationRateStats"
)
public
ResultVo
<
Object
>
getCremationRateStats
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
bzStatsService
.
getCacheCremationRateStats
(
vo
));
}
}
portal-server/src/main/java/com/zq/portal/controller/app/StatsController.java
View file @
4a5bec58
...
...
@@ -19,10 +19,16 @@ public class StatsController {
private
final
StatsService
statsService
;
@ApiOperation
(
"首页地
址
"
)
@ApiOperation
(
"首页地
图
"
)
@PostMapping
(
value
=
"/getAppMapStats"
)
public
ResultVo
getAppMapStats
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
statsService
.
getCacheAppMapStats
(
vo
));
}
@ApiOperation
(
"汇总搜索"
)
@PostMapping
(
value
=
"/gatherSearch"
)
public
ResultVo
gatherSearch
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
statsService
.
gatherSearch
(
vo
));
}
}
portal-server/src/main/java/com/zq/portal/dao/BzStatsDao.java
View file @
4a5bec58
...
...
@@ -4,7 +4,6 @@ import com.baomidou.dynamic.datasource.annotation.DS;
import
com.zq.common.constant.DBName
;
import
com.zq.portal.vo.StatsReqVo
;
import
com.zq.portal.vo.StatsVo
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
...
...
@@ -13,8 +12,6 @@ import java.util.List;
@Repository
public
interface
BzStatsDao
{
List
<
StatsVo
>
getDeathsPerYear
(
@Param
(
"areaCode"
)
String
areaCode
);
/**
* 获取区域火化统计
*
...
...
@@ -25,8 +22,17 @@ public interface BzStatsDao {
/**
* 获取火化率
*
* @param vo
* @return
*/
StatsVo
getCremationRateStats
(
StatsReqVo
vo
);
/**
* 获取近三年死亡统计
*
* @param vo
* @return
*/
List
<
StatsVo
>
getThreeYearDeadStats
(
StatsReqVo
vo
);
}
portal-server/src/main/java/com/zq/portal/manager/PortalCacheKeys.java
View file @
4a5bec58
...
...
@@ -91,7 +91,7 @@ public abstract class PortalCacheKeys {
return
PREFIX
+
"getCremationRateStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
//火化量汇总Key
//
火化量汇总Key
public
static
String
getCremationStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getCremationStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
...
...
@@ -100,4 +100,9 @@ public abstract class PortalCacheKeys {
public
static
String
getAppMapStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getAppMapStats."
+
vo
.
getAreaCode
();
}
// 聚合搜索
public
static
String
gatherSearchKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"gatherSearch."
+
vo
.
getKeyword
();
}
}
portal-server/src/main/java/com/zq/portal/service/BzStatsService.java
View file @
4a5bec58
...
...
@@ -14,6 +14,7 @@ import com.zq.portal.vo.StatsReqVo;
import
com.zq.portal.vo.StatsVo
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
@Service
...
...
@@ -26,10 +27,11 @@ public class BzStatsService {
/**
* 汇总数据量
*
* @param vo
* @return
*/
public
VBzCremationStats
getCacheCremationStats
(
StatsReqVo
vo
){
public
VBzCremationStats
getCacheCremationStats
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getCremationStatsKey
(
vo
));
if
(
obj
!=
null
)
{
return
(
VBzCremationStats
)
obj
;
...
...
@@ -39,6 +41,7 @@ public class BzStatsService {
/**
* 火化汇总量
*
* @param vo
* @return
*/
...
...
@@ -48,24 +51,24 @@ public class BzStatsService {
}
SystemArea
systemArea
=
areaDao
.
selectById
(
vo
.
getAreaCode
());
vo
.
setSubAreaCode
(
systemArea
.
subAreaCode
());
vo
.
setSize
(
vo
.
getSubAreaCode
().
length
());
VBzCremationStats
build
=
VBzCremationStats
.
builder
()
VBzCremationStats
build
=
VBzCremationStats
.
builder
()
.
areaCode
(
systemArea
.
getCode
())
.
areaName
(
systemArea
.
getName
())
.
year
(
vo
.
getYear
())
.
cremationSum
(
0
)
.
createTime
(
DateUtil
.
date
())
.
build
();
List
<
StatsVo
>
sumStats
=
bzStatsDao
.
getAreaCremationStats
(
vo
);
Iterator
<
StatsVo
>
iterator
=
sumStats
.
iterator
();
while
(
iterator
.
hasNext
())
{
StatsVo
statsVo
=
iterator
.
next
();
build
.
setCremationSum
(
statsVo
.
getNum
());
for
(
StatsVo
statsVo
:
sumStats
)
{
build
.
setCremationSum
(
build
.
getCremationSum
()
+
statsVo
.
getNum
());
}
StatsVo
hastats
=
bzStatsDao
.
getCremationRateStats
(
vo
);
StatsVo
hastats
=
bzStatsDao
.
getCremationRateStats
(
vo
);
build
.
setCremationRate
(
hastats
.
getNum
());
redisUtils
.
setObj
(
PortalCacheKeys
.
getCremationStatsKey
(
vo
),
build
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getCremationStatsKey
(
vo
),
build
);
return
build
;
}
...
...
@@ -91,7 +94,7 @@ public class BzStatsService {
List
<
String
>
cityList
=
new
ArrayList
<>();
List
<
String
>
numList
=
new
ArrayList
<>();
List
<
StatsVo
>
statsList
=
bzStatsDao
.
getAreaCremationStats
(
vo
);
List
<
StatsVo
>
statsList
=
bzStatsDao
.
getAreaCremationStats
(
vo
);
Iterator
<
StatsVo
>
iterator
=
statsList
.
iterator
();
while
(
iterator
.
hasNext
())
{
...
...
@@ -109,7 +112,7 @@ public class BzStatsService {
returnMap
.
put
(
"cityList"
,
cityList
);
returnMap
.
put
(
"numList"
,
numList
);
returnMap
.
put
(
"statsLst"
,
statsList
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getCremationStatsListKey
(
vo
),
returnMap
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getCremationStatsListKey
(
vo
),
returnMap
);
return
returnMap
;
}
...
...
@@ -121,7 +124,7 @@ public class BzStatsService {
* @return
*/
public
Object
getCacheCremationRateStats
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getCremationRateStatsKey
(
vo
));
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getCremationRateStatsKey
(
vo
));
if
(
obj
!=
null
)
{
return
obj
;
}
...
...
@@ -138,17 +141,15 @@ public class BzStatsService {
List
<
VBzCremationStats
>
list
=
(
List
<
VBzCremationStats
>)
getCremationStatsList
(
vo
);
List
<
Map
<
String
,
Object
>>
returnData
=
new
ArrayList
<>();
for
(
VBzCremationStats
vBzCremationStats
:
list
)
{
for
(
VBzCremationStats
vBzCremationStats
:
list
)
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
data
.
put
(
"name"
,
vBzCremationStats
.
getAreaName
());
data
.
put
(
"value"
,
vBzCremationStats
.
getCremationSum
());
data
.
put
(
"name"
,
vBzCremationStats
.
getAreaName
());
data
.
put
(
"value"
,
vBzCremationStats
.
getCremationSum
());
returnData
.
add
(
data
);
}
redisUtils
.
setObj
(
PortalCacheKeys
.
getCremationRateStatsKey
(
vo
),
returnData
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getCremationRateStatsKey
(
vo
),
returnData
);
return
returnData
;
}
}
portal-server/src/main/java/com/zq/portal/service/StatsService.java
View file @
4a5bec58
...
...
@@ -3,9 +3,7 @@ package com.zq.portal.service;
import
cn.hutool.core.util.NumberUtil
;
import
com.zq.common.config.redis.RedisUtils
;
import
com.zq.common.entity.SystemArea
;
import
com.zq.portal.dao.AreaDao
;
import
com.zq.portal.dao.HyStatsDao
;
import
com.zq.portal.dao.ShzzStatsDao
;
import
com.zq.portal.dao.*
;
import
com.zq.portal.manager.PortalCacheKeys
;
import
com.zq.portal.vo.StatsReqVo
;
import
com.zq.portal.vo.StatsVo
;
...
...
@@ -13,12 +11,15 @@ import lombok.RequiredArgsConstructor;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
@Service
@RequiredArgsConstructor
public
class
StatsService
{
private
final
HyStatsDao
hyStatsDao
;
private
final
YlStatsDao
ylStatsDao
;
private
final
BzStatsDao
bzStatsDao
;
private
final
ShzzStatsDao
shzzStatsDao
;
private
final
AreaDao
areaDao
;
private
final
RedisUtils
redisUtils
;
...
...
@@ -45,8 +46,7 @@ public class StatsService {
* @return
*/
public
Object
getAppMapStats
(
StatsReqVo
vo
)
{
SystemArea
systemArea
=
areaDao
.
selectById
(
vo
.
getAreaCode
());
SystemArea
systemArea
=
areaDao
.
selectById
(
SystemArea
.
patchZero
(
vo
.
getAreaCode
()));
vo
.
setSubAreaCode
(
systemArea
.
subAreaCode
());
List
<
Map
<
String
,
Object
>>
returnData
=
new
ArrayList
<>();
...
...
@@ -56,7 +56,7 @@ public class StatsService {
List
<
StatsVo
>
fivesYearMarriageLine
=
hyStatsDao
.
getFivesYearMarriageLine
(
vo
);
vo
.
setType
(
null
);
// 用完设置为null不影响后台的统计
Collections
.
reverse
(
fivesYearMarriageLine
);
Map
<
String
,
Object
>
hy
=
getMapStatsObj
(
fivesYearMarriageLine
,
"
婚姻
"
);
Map
<
String
,
Object
>
hy
=
getMapStatsObj
(
fivesYearMarriageLine
,
"
结婚数据
"
);
returnData
.
add
(
hy
);
// 社会组织
...
...
@@ -65,6 +65,12 @@ public class StatsService {
Map
<
String
,
Object
>
shzz
=
getMapStatsObj
(
soorganThreeYearStats
,
"社会组织"
);
returnData
.
add
(
shzz
);
// 殡葬信息
List
<
StatsVo
>
threeYearDeadStats
=
bzStatsDao
.
getThreeYearDeadStats
(
vo
);
Collections
.
reverse
(
threeYearDeadStats
);
Map
<
String
,
Object
>
bz
=
getMapStatsObj
(
threeYearDeadStats
,
"死亡人口"
);
returnData
.
add
(
bz
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getAppMapStatsKey
(
vo
),
returnData
);
return
returnData
;
}
...
...
@@ -93,4 +99,25 @@ public class StatsService {
}
return
mapObj
;
}
/**
* App 搜索
*
* @param vo
* @return
*/
public
Object
gatherSearch
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
gatherSearchKey
(
vo
));
if
(
obj
!=
null
)
{
return
obj
;
}
Map
<
Object
,
Object
>
returnMap
=
new
HashMap
<>();
List
<
Map
<
String
,
Object
>>
search
=
hyStatsDao
.
search
(
vo
.
getKeyword
());
returnMap
.
put
(
"marriage"
,
search
);
redisUtils
.
setObj
(
PortalCacheKeys
.
gatherSearchKey
(
vo
),
returnMap
,
1L
,
TimeUnit
.
DAYS
);
return
returnMap
;
}
}
portal-server/src/main/resources/mapper/BzStatsMapper.xml
View file @
4a5bec58
...
...
@@ -2,18 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.zq.portal.dao.BzStatsDao"
>
<select
id=
"getDeathsPerYear"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
COUNT(1) 'num', LEFT(i.DEATH_DATE,4) 'year'
FROM
fis_scatter_dead_info i
WHERE i.ID_CARD LIKE CONCAT(#{areaCode}, '%')
GROUP BY
LEFT(i.DEATH_DATE,4)
ORDER BY LEFT(i.DEATH_DATE,4) DESC
LIMIT 3
</select>
<select
id=
"getAreaCremationStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
LEFT(d.ups, 4) 'code',
...
...
@@ -30,12 +18,31 @@
GROUP BY LEFT(d.ups, #{size})
</select>
<select
id=
"getCremationRateStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT ROUND(hhsum.c1/rksum.c2*100)
FROM
(SELECT count(1)as c1 FROM fis_cremation_info_sum) hhsum,
(SELECT count(1)as c2 FROM fis_dead_info)rksum
SELECT ROUND(hhsum.c1 / rksum.c2 * 100)
FROM (SELECT count(1) as c1 FROM fis_cremation_info_sum) hhsum,
(SELECT count(1) as c2 FROM fis_dead_info) rksum
</select>
<!--近三年死亡人口-->
<select
id=
"getThreeYearDeadStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
LEFT ( di.CREATE_TIME, 4 ) 'year',
COUNT( 1 ) 'num'
FROM
`fis_dead_info` di LEFT JOIN dic_city dc ON di.POPULACE = dc.P_ID
WHERE 1=1
<if
test=
"year != null"
>
AND LEFT ( di.CREATE_TIME, 4 ) = #{year}
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND dc.UPS LIKE CONCAT(#{subAreaCode}, '%' )
</if>
GROUP BY
LEFT ( di.CREATE_TIME, 4 )
ORDER BY
LEFT ( di.CREATE_TIME, 4 ) DESC
LIMIT 3
</select>
</mapper>
portal-server/src/main/resources/mapper/HyStatsMapper.xml
View file @
4a5bec58
...
...
@@ -117,7 +117,7 @@
</select>
<select
id=
"search"
resultType=
"java.util.Map"
>
SELECT AIAP0005 'manName', AIAP0006 'girl', AIAP0013 'manIdCard', AIAP0014 'girlIdCard', AIAP0015 'manNationality', AIAP0016 'girlNationality', AIAP0023 'manState', AIAP0024 'girlState', AIAP0027 'manDomicile', AIAP0028 'girlDomicile', AIAX0035 'manContact', AIAX0036 'girlContact', AIAX0059 'archiveYear', AIAX0048 'registerDate'
SELECT AIA
X0001 'type', AIA
P0005 'manName', AIAP0006 'girl', AIAP0013 'manIdCard', AIAP0014 'girlIdCard', AIAP0015 'manNationality', AIAP0016 'girlNationality', AIAP0023 'manState', AIAP0024 'girlState', AIAP0027 'manDomicile', AIAP0028 'girlDomicile', AIAX0035 'manContact', AIAX0036 'girlContact', AIAX0059 'archiveYear', AIAX0048 'registerDate'
FROM `mrcase`
WHERE AIAP0005 = #{keyword}
OR AIAP0006 = #{keyword}
...
...
portal-server/src/main/resources/mapper/YlStatsMapper.xml
View file @
4a5bec58
...
...
@@ -20,4 +20,23 @@
GROUP BY LEFT(AHAE0033, #{size})
</select>
<!--获取区域进三年养老信息-->
<select
id=
"getAreaNursingThreeYearStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
LEFT(AHAE0033, #{size}) 'code',
COUNT( 1 ) 'num'
FROM `hdef1`
WHERE 1=1
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND AHAE0033 LIKE CONCAT(#{subAreaCode},'%')
</if>
<if
test=
"year != null"
>
AND DATE_FORMAT(AXBE0015, "%Y") = #{year}
</if>
<if
test=
"type != null"
>
AND AHAE0043 = #{type}
</if>
GROUP BY LEFT(AHAE0033, #{size})
</select>
</mapper>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment