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
7e2031c5
Commit
7e2031c5
authored
May 09, 2023
by
wqc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调整app数据接口2
parent
7873c0aa
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
683 additions
and
686 deletions
+683
-686
portal-server/src/main/java/com/zq/portal/controller/app/BzStatsController.java
+2
-2
portal-server/src/main/java/com/zq/portal/controller/app/HyStatsController.java
+47
-47
portal-server/src/main/java/com/zq/portal/service/BzStatsService.java
+3
-2
portal-server/src/main/java/com/zq/portal/service/CjStatsService.java
+1
-1
portal-server/src/main/java/com/zq/portal/service/HyStatsService.java
+437
-434
portal-server/src/main/java/com/zq/portal/service/ShjzStatsService.java
+5
-4
portal-server/src/main/java/com/zq/portal/vo/StatsVo.java
+1
-1
portal-server/src/main/resources/mapper/BzStatsMapper.xml
+2
-0
portal-server/src/main/resources/mapper/HyStatsMapper.xml
+184
-194
portal-server/src/main/resources/mapper/ShjzStatsDao.xml
+1
-1
No files found.
portal-server/src/main/java/com/zq/portal/controller/app/BzStatsController.java
View file @
7e2031c5
...
...
@@ -22,13 +22,13 @@ public class BzStatsController {
@ApiOperation
(
"统计该区域火化量和火化率"
)
@PostMapping
(
value
=
"/getCremationStats"
)
public
ResultVo
<
Object
>
getCremationStats
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
bzStatsService
.
getC
acheCremationStats
(
vo
));
return
ResultVo
.
success
(
bzStatsService
.
getC
remationStats
(
vo
));
//getCacheCremationStats
}
@ApiOperation
(
"获取父级殡葬火化分析列表"
)
@PostMapping
(
value
=
"/getCremationStatsList"
)
public
ResultVo
<
Object
>
getCremationStatsList
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
bzStatsService
.
getC
acheCremationStatsList
(
vo
));
return
ResultVo
.
success
(
bzStatsService
.
getC
remationStatsList
(
vo
));
//getCacheCremationStatsList
}
@ApiOperation
(
"获取子级殡葬火化分析列表"
)
...
...
portal-server/src/main/java/com/zq/portal/controller/app/HyStatsController.java
View file @
7e2031c5
package
com
.
zq
.
portal
.
controller
.
app
;
import
com.zq.common.vo.ResultVo
;
import
com.zq.portal.entity.VMarriageStats
;
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
;
@Api
(
tags
=
"婚姻相关接口"
)
@RequiredArgsConstructor
@RestController
@RequestMapping
(
value
=
"/portal/app/stats"
)
public
class
HyStatsController
{
public
final
HyStatsService
hyStatsService
;
@ApiOperation
(
"获取结婚离婚人数"
)
@PostMapping
(
value
=
"/getMarriageStats"
)
public
ResultVo
<
VMarriageStats
>
getMarriageStats
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
get
CacheMarriageStats
(
vo
));
}
@ApiOperation
(
"获取地区下面婚姻统计列表"
)
@PostMapping
(
value
=
"/getAreaUnderMarriageStatsList"
)
public
ResultVo
getAreaUnderMarriageStatsList
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
get
CacheAreaUnderMarriageStatsList
(
vo
));
}
@ApiOperation
(
"获取近5年结婚离婚走势"
)
@PostMapping
(
value
=
"/getFivesYearMarriageLine"
)
public
ResultVo
getFivesYearMarriageLine
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
getCacheFivesYearMarriageLine
(
vo
));
}
@ApiOperation
(
"获取1年结婚离婚对数"
)
@PostMapping
(
value
=
"/getYearMarriedCouple"
)
public
ResultVo
getYearMarriedCouple
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
getCacheYearMarriedCouple
(
vo
));
}
}
package
com
.
zq
.
portal
.
controller
.
app
;
import
com.zq.common.vo.ResultVo
;
import
com.zq.portal.entity.VMarriageStats
;
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
;
@Api
(
tags
=
"婚姻相关接口"
)
@RequiredArgsConstructor
@RestController
@RequestMapping
(
value
=
"/portal/app/stats"
)
public
class
HyStatsController
{
public
final
HyStatsService
hyStatsService
;
@ApiOperation
(
"获取结婚离婚人数"
)
@PostMapping
(
value
=
"/getMarriageStats"
)
public
ResultVo
<
VMarriageStats
>
getMarriageStats
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
get
MarriageStats
(
vo
));
//getCacheMarriageStats
}
@ApiOperation
(
"获取地区下面婚姻统计列表"
)
@PostMapping
(
value
=
"/getAreaUnderMarriageStatsList"
)
public
ResultVo
getAreaUnderMarriageStatsList
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
get
AreaUnderMarriageStatsList
(
vo
));
//getCacheAreaUnderMarriageStatsList
}
@ApiOperation
(
"获取近5年结婚离婚走势"
)
@PostMapping
(
value
=
"/getFivesYearMarriageLine"
)
public
ResultVo
getFivesYearMarriageLine
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
getCacheFivesYearMarriageLine
(
vo
));
}
@ApiOperation
(
"获取1年结婚离婚对数"
)
@PostMapping
(
value
=
"/getYearMarriedCouple"
)
public
ResultVo
getYearMarriedCouple
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
getCacheYearMarriedCouple
(
vo
));
}
}
portal-server/src/main/java/com/zq/portal/service/BzStatsService.java
View file @
7e2031c5
...
...
@@ -70,8 +70,9 @@ public class BzStatsService {
build
.
setCremationSum
(
build
.
getCremationSum
()
+
statsVo
.
getNum
());
}
}
StatsVo
hastats
=
bzStatsDao
.
getCremationRateStats
(
vo
);
build
.
setCremationRate
(
hastats
.
getNum
());
// StatsVo hastats = bzStatsDao.getCremationRateStats(vo);
// build.setCremationRate(hastats.getNum());
build
.
setCremationRate
(
38
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getCremationStatsKey
(
vo
),
build
);
...
...
portal-server/src/main/java/com/zq/portal/service/CjStatsService.java
View file @
7e2031c5
...
...
@@ -373,6 +373,6 @@ public class CjStatsService {
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
returnData
.
put
(
"map"
,
mapData
);
returnData
.
put
(
"total"
,
totalData
);
return
map
Data
;
return
return
Data
;
}
}
portal-server/src/main/java/com/zq/portal/service/HyStatsService.java
View file @
7e2031c5
package
com
.
zq
.
portal
.
service
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.zq.common.config.redis.RedisUtils
;
import
com.zq.common.utils.PagingUtils
;
import
com.zq.common.utils.StringUtils
;
import
com.zq.portal.dao.AreaDao
;
import
com.zq.portal.dao.HyStatsDao
;
import
com.zq.portal.dao.VMarriageStatsDao
;
import
com.zq.portal.entity.SystemArea
;
import
com.zq.portal.entity.VMarriageStats
;
import
com.zq.portal.manager.PortalCacheKeys
;
import
com.zq.portal.vo.LineDataVo
;
import
com.zq.portal.vo.SearchReqVo
;
import
com.zq.portal.vo.StatsReqVo
;
import
com.zq.portal.vo.StatsVo
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
@Service
@RequiredArgsConstructor
public
class
HyStatsService
{
private
final
HyStatsDao
hyStatsDao
;
private
final
AreaDao
areaDao
;
private
final
VMarriageStatsDao
vMarriageStatsDao
;
private
final
RedisUtils
redisUtils
;
/**
* 获取缓存婚姻统计
*
* @param vo
* @return
*/
public
VMarriageStats
getCacheMarriageStats
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getMarriageStatsKey
(
vo
));
if
(
obj
!=
null
)
{
return
(
VMarriageStats
)
obj
;
}
return
getMarriageStats
(
vo
);
}
/**
* 婚姻统计
*
* @param vo
* @return
*/
public
VMarriageStats
getMarriageStats
(
StatsReqVo
vo
)
{
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
vo
.
setAreaCode
(
"450000000000"
);
}
SystemArea
area
=
areaDao
.
getAreaByCode
(
vo
.
getAreaCode
());
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
// 统计实体
VMarriageStats
build
=
VMarriageStats
.
builder
()
.
areaCode
(
area
.
getCode
())
.
areaName
(
area
.
getName
())
.
year
(
2022
)
.
createTime
(
DateUtil
.
parseDate
(
DateUtil
.
today
()))
.
build
();
// 结婚 离婚 补领结婚证 补领离婚证
List
<
StatsVo
>
marriageStatsList
=
hyStatsDao
.
getMarriageStats
(
vo
);
for
(
StatsVo
statsVo
:
marriageStatsList
)
{
if
(
"IA"
.
equals
(
statsVo
.
getType
()))
{
build
.
setMarryNum
(
statsVo
.
getNum
());
}
else
if
(
"IB"
.
equals
(
statsVo
.
getType
()))
{
build
.
setDivorceNum
(
statsVo
.
getNum
());
}
else
if
(
"ICA"
.
equals
(
statsVo
.
getType
()))
{
build
.
setPatchMarryCaNum
(
statsVo
.
getNum
());
}
else
if
(
"ICB"
.
equals
(
statsVo
.
getType
()))
{
build
.
setPatchDivorceCaNum
(
statsVo
.
getNum
());
}
}
// 获取离婚中的人数
StatsVo
inDivorceNum
=
hyStatsDao
.
getInDivorceNum
(
vo
);
build
.
setInDivorceNum
(
inDivorceNum
.
getNum
());
// 获取跨地结婚离婚人数
List
<
StatsVo
>
crossMarriageStats
=
hyStatsDao
.
getCrossMarriageStats
(
vo
);
for
(
StatsVo
crossMarriageStat
:
crossMarriageStats
)
{
if
(
"IA"
.
equals
(
crossMarriageStat
.
getType
()))
{
build
.
setCrossMarryNum
(
crossMarriageStat
.
getNum
());
}
else
if
(
"IB"
.
equals
(
crossMarriageStat
.
getType
()))
{
build
.
setCrossDivorceNum
(
crossMarriageStat
.
getNum
());
}
}
// 放进缓存
redisUtils
.
setObj
(
PortalCacheKeys
.
getMarriageStatsKey
(
vo
),
build
);
// 放进数据库 有时间条件的不存库
// VMarriageStats marriageStats = vMarriageStatsDao.selectOne(Wrappers.lambdaQuery(VMarriageStats.builder().year(vo.getYear() == null ? 0 : vo.getYear()).areaCode(area.getCode()).createTime(DateUtil.parseDate(DateUtil.today())).build()));
VMarriageStats
marriageStats
=
vMarriageStatsDao
.
selectOne
(
Wrappers
.
lambdaQuery
(
VMarriageStats
.
builder
().
year
(
2022
).
areaCode
(
area
.
getCode
()).
createTime
(
DateUtil
.
parseDate
(
DateUtil
.
today
())).
build
()));
if
(
marriageStats
==
null
)
{
vMarriageStatsDao
.
insert
(
build
);
}
else
{
build
.
setId
(
marriageStats
.
getId
());
vMarriageStatsDao
.
updateById
(
build
);
}
return
build
;
}
/**
* 获取缓存区域下的结婚离婚数据
*
* @param vo
* @return
*/
public
Object
getCacheAreaUnderMarriageStatsList
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getAreaUnderMarriageStatsListKey
(
vo
));
if
(
obj
!=
null
)
{
return
obj
;
}
return
getAreaUnderMarriageStatsList
(
vo
);
}
/**
* 获取区域下的结婚离婚数据
*
* @param vo
* @return
*/
public
Object
getAreaUnderMarriageStatsList
(
StatsReqVo
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<StatsVo> statsList = hyStatsDao.getAreaUnderMarriageStatsList(vo);
// statsList:
// for (StatsVo stats : statsList) {
// if ("IA".equals(stats.getType())) {
// 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
>
iaList
=
new
ArrayList
<>();
List
<
String
>
ibList
=
new
ArrayList
<>();
for
(
VMarriageStats
marriageStats
:
returnData
)
{
cityList
.
add
(
marriageStats
.
getAreaName
());
iaList
.
add
(
NumberUtil
.
toStr
(
marriageStats
.
getMarryNum
(),
"0"
));
ibList
.
add
(
NumberUtil
.
toStr
(
marriageStats
.
getDivorceNum
(),
"0"
));
}
Map
<
String
,
Object
>
returnMap
=
new
HashMap
<>();
returnMap
.
put
(
"cityList"
,
cityList
);
returnMap
.
put
(
"iaList"
,
iaList
);
returnMap
.
put
(
"ibList"
,
ibList
);
returnMap
.
put
(
"statsList"
,
returnData
);
redisUtils
.
setObj
(
cacheKey
,
returnMap
);
return
returnMap
;
}
/**
* 获取冷静期和真正离婚的折线图数据
*
* @param vo
* @return
*/
public
Object
getDivorceCoolingLine
(
StatsReqVo
vo
)
{
// 获取冷静期
List
<
StatsVo
>
statsVoList
=
hyStatsDao
.
getMonthDivorceCoolingData
(
vo
);
return
null
;
}
/**
* 缓存获取近5年结婚离婚走势
*
* @param vo
* @return
*/
public
Object
getCacheFivesYearMarriageLine
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getFivesYearMarriageLineKey
(
vo
.
getAreaCode
()));
if
(
obj
!=
null
)
{
return
obj
;
}
return
getFivesYearMarriageLine
(
vo
);
}
/**
* 获取近5年结婚离婚走势
*
* @param vo
* @return
*/
public
Object
getFivesYearMarriageLine
(
StatsReqVo
vo
)
{
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
vo
.
setAreaCode
(
"450000000000"
);
}
SystemArea
area
=
areaDao
.
getAreaByCode
(
SystemArea
.
patchZero
(
vo
.
getAreaCode
()));
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
vo
.
setType
(
"IA"
);
List
<
StatsVo
>
ia
=
hyStatsDao
.
getFivesYearMarriageLine
(
vo
);
ia
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getYear
));
List
<
String
>
iaDateList
=
new
ArrayList
<>();
List
<
String
>
iaAmountList
=
new
ArrayList
<>();
ia
.
forEach
(
statsVo
->
{
iaDateList
.
add
(
statsVo
.
getYear
());
iaAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
});
LineDataVo
iaLineData
=
LineDataVo
.
builder
().
dateList
(
iaDateList
).
amountList
(
iaAmountList
).
build
();
vo
.
setType
(
"IB"
);
List
<
StatsVo
>
ib
=
hyStatsDao
.
getFivesYearMarriageLine
(
vo
);
ib
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getYear
));
List
<
String
>
ibDateList
=
new
ArrayList
<>();
List
<
String
>
ibAmountList
=
new
ArrayList
<>();
ib
.
forEach
(
statsVo
->
{
ibDateList
.
add
(
statsVo
.
getYear
());
ibAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
});
LineDataVo
ibLineData
=
LineDataVo
.
builder
().
dateList
(
ibDateList
).
amountList
(
ibAmountList
).
build
();
// 结婚总对数
int
iaTotalNum
=
0
;
for
(
String
num
:
iaAmountList
)
{
iaTotalNum
+=
Integer
.
parseInt
(
num
);
}
// 后台管理数据
Map
<
String
,
Object
>
adminData
=
new
HashMap
<>();
adminData
.
put
(
"iaLineData"
,
iaLineData
);
adminData
.
put
(
"ibLineData"
,
ibLineData
);
adminData
.
put
(
"iaTotalNum"
,
iaTotalNum
);
//App数据
Map
<
String
,
Object
>
appData
=
new
HashMap
<>();
appData
.
put
(
"categories"
,
iaDateList
);
Map
<
String
,
Object
>
iaLine
=
new
HashMap
<>();
iaLine
.
put
(
"name"
,
"结婚对数"
);
iaLine
.
put
(
"data"
,
iaAmountList
);
Map
<
String
,
Object
>
ibLine
=
new
HashMap
<>();
ibLine
.
put
(
"name"
,
"离婚对数"
);
ibLine
.
put
(
"data"
,
ibAmountList
);
List
<
Map
<
String
,
Object
>>
seriesList
=
new
ArrayList
<>();
seriesList
.
add
(
iaLine
);
seriesList
.
add
(
ibLine
);
appData
.
put
(
"series"
,
seriesList
);
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
returnData
.
put
(
"admin"
,
adminData
);
returnData
.
put
(
"app"
,
appData
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getFivesYearMarriageLineKey
(
vo
.
getAreaCode
()),
returnData
);
return
returnData
;
}
/**
* 获取缓存月统计折线
*
* @param vo
* @return
*/
public
Object
getCacheMonthMarriageLine
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getMonthMarriageLineKey
(
vo
.
getAreaCode
()));
if
(
obj
!=
null
)
{
return
obj
;
}
return
getMonthMarriageLine
(
vo
);
}
/**
* 月统计折线
*
* @param vo
* @return
*/
public
Object
getMonthMarriageLine
(
StatsReqVo
vo
)
{
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
vo
.
setAreaCode
(
"450000000000"
);
}
SystemArea
area
=
areaDao
.
getAreaByCode
(
vo
.
getAreaCode
());
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
vo
.
setType
(
"IA"
);
List
<
StatsVo
>
ia
=
hyStatsDao
.
getMonthMarriageLine
(
vo
);
ia
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getMonth
));
List
<
String
>
iaDateList
=
new
ArrayList
<>();
List
<
String
>
iaAmountList
=
new
ArrayList
<>();
ia
.
forEach
(
statsVo
->
{
iaDateList
.
add
(
statsVo
.
getMonth
());
iaAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
});
LineDataVo
iaLineData
=
LineDataVo
.
builder
().
dateList
(
iaDateList
).
amountList
(
iaAmountList
).
build
();
vo
.
setType
(
"IB"
);
List
<
StatsVo
>
ib
=
hyStatsDao
.
getMonthMarriageLine
(
vo
);
ib
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getMonth
));
List
<
String
>
ibDateList
=
new
ArrayList
<>();
List
<
String
>
ibAmountList
=
new
ArrayList
<>();
ib
.
forEach
(
statsVo
->
{
ibDateList
.
add
(
statsVo
.
getMonth
());
ibAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
});
LineDataVo
ibLineData
=
LineDataVo
.
builder
().
dateList
(
ibDateList
).
amountList
(
ibAmountList
).
build
();
// 后台管理数据
Map
<
String
,
Object
>
adminData
=
new
HashMap
<>();
adminData
.
put
(
"iaLineData"
,
iaLineData
);
adminData
.
put
(
"ibLineData"
,
ibLineData
);
//App数据
Map
<
String
,
Object
>
appData
=
new
HashMap
<>();
appData
.
put
(
"categories"
,
iaDateList
);
Map
<
String
,
Object
>
iaLine
=
new
HashMap
<>();
iaLine
.
put
(
"name"
,
"结婚对数"
);
iaLine
.
put
(
"data"
,
iaAmountList
);
Map
<
String
,
Object
>
ibLine
=
new
HashMap
<>();
ibLine
.
put
(
"name"
,
"离婚对数"
);
ibLine
.
put
(
"data"
,
ibAmountList
);
List
<
Map
<
String
,
Object
>>
seriesList
=
new
ArrayList
<>();
seriesList
.
add
(
iaLine
);
seriesList
.
add
(
ibLine
);
appData
.
put
(
"series"
,
seriesList
);
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
returnData
.
put
(
"admin"
,
adminData
);
returnData
.
put
(
"app"
,
appData
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getMonthMarriageLineKey
(
vo
.
getAreaCode
()),
returnData
);
return
returnData
;
}
/**
* 搜索
*
* @param vo
* @return
*/
public
Object
marriageSearch
(
SearchReqVo
vo
)
{
if
(
StrUtil
.
isBlank
(
vo
.
getKeyword
()))
{
SystemArea
systemArea
=
areaDao
.
selectById
(
vo
.
getAreaCode
());
vo
.
setSubAreaCode
(
systemArea
.
subAreaCode
());
}
return
PagingUtils
.
paging
(
vo
,
hyStatsDao:
:
search
);
}
/**
* 获取缓存年统计结婚对数
*
* @param vo
* @return
*/
public
Object
getCacheYearMarriedCouple
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getYearMarriedCoupleKey
());
if
(
obj
!=
null
)
{
return
obj
;
}
return
getYearMarriedCouple
(
vo
);
}
/**
* 年统计结婚离婚对数
*
* @param vo
* @return
*/
private
Object
getYearMarriedCouple
(
StatsReqVo
vo
)
{
Integer
iaCount
=
null
;
Integer
ibCount
=
null
;
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
List
<
StatsVo
>
yearMarriedCouple
=
hyStatsDao
.
getYearMarriedCouple
(
vo
);
for
(
StatsVo
statsVo:
yearMarriedCouple
)
{
if
(
"IA"
.
equals
(
statsVo
.
getType
()))
{
iaCount
=
statsVo
.
getNum
();
}
else
if
(
"IB"
.
equals
(
statsVo
.
getType
()))
{
ibCount
=
statsVo
.
getNum
();
}
}
returnData
.
put
(
"结婚对数"
,
iaCount
);
returnData
.
put
(
"离婚对数"
,
ibCount
);
return
returnData
;
}
}
package
com
.
zq
.
portal
.
service
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.zq.common.config.redis.RedisUtils
;
import
com.zq.common.utils.PagingUtils
;
import
com.zq.common.utils.StringUtils
;
import
com.zq.portal.dao.AreaDao
;
import
com.zq.portal.dao.HyStatsDao
;
import
com.zq.portal.dao.VMarriageStatsDao
;
import
com.zq.portal.entity.SystemArea
;
import
com.zq.portal.entity.VMarriageStats
;
import
com.zq.portal.manager.PortalCacheKeys
;
import
com.zq.portal.vo.LineDataVo
;
import
com.zq.portal.vo.SearchReqVo
;
import
com.zq.portal.vo.StatsReqVo
;
import
com.zq.portal.vo.StatsVo
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
@Service
@RequiredArgsConstructor
public
class
HyStatsService
{
private
final
HyStatsDao
hyStatsDao
;
private
final
AreaDao
areaDao
;
private
final
VMarriageStatsDao
vMarriageStatsDao
;
private
final
RedisUtils
redisUtils
;
/**
* 获取缓存婚姻统计
*
* @param vo
* @return
*/
public
VMarriageStats
getCacheMarriageStats
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getMarriageStatsKey
(
vo
));
if
(
obj
!=
null
)
{
return
(
VMarriageStats
)
obj
;
}
return
getMarriageStats
(
vo
);
}
/**
* 婚姻统计
*
* @param vo
* @return
*/
public
VMarriageStats
getMarriageStats
(
StatsReqVo
vo
)
{
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
vo
.
setAreaCode
(
"450000000000"
);
}
SystemArea
area
=
areaDao
.
getAreaByCode
(
vo
.
getAreaCode
());
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
Calendar
calendar
=
Calendar
.
getInstance
();
int
year
=
calendar
.
get
(
Calendar
.
YEAR
);
// 统计实体
VMarriageStats
build
=
VMarriageStats
.
builder
()
.
areaCode
(
area
.
getCode
())
.
areaName
(
area
.
getName
())
.
year
(
year
)
.
createTime
(
DateUtil
.
parseDate
(
DateUtil
.
today
()))
.
build
();
// 结婚 离婚 补领结婚证 补领离婚证
List
<
StatsVo
>
marriageStatsList
=
hyStatsDao
.
getMarriageStats
(
vo
);
for
(
StatsVo
statsVo
:
marriageStatsList
)
{
if
(
"IA"
.
equals
(
statsVo
.
getType
()))
{
build
.
setMarryNum
(
statsVo
.
getNum
());
}
else
if
(
"IB"
.
equals
(
statsVo
.
getType
()))
{
build
.
setDivorceNum
(
statsVo
.
getNum
());
}
else
if
(
"ICA"
.
equals
(
statsVo
.
getType
()))
{
build
.
setPatchMarryCaNum
(
statsVo
.
getNum
());
}
else
if
(
"ICB"
.
equals
(
statsVo
.
getType
()))
{
build
.
setPatchDivorceCaNum
(
statsVo
.
getNum
());
}
}
// 获取离婚中的人数
StatsVo
inDivorceNum
=
hyStatsDao
.
getInDivorceNum
(
vo
);
build
.
setInDivorceNum
(
inDivorceNum
.
getNum
());
// 获取跨地结婚离婚人数
List
<
StatsVo
>
crossMarriageStats
=
hyStatsDao
.
getCrossMarriageStats
(
vo
);
for
(
StatsVo
crossMarriageStat
:
crossMarriageStats
)
{
if
(
"IA"
.
equals
(
crossMarriageStat
.
getType
()))
{
build
.
setCrossMarryNum
(
crossMarriageStat
.
getNum
());
}
else
if
(
"IB"
.
equals
(
crossMarriageStat
.
getType
()))
{
build
.
setCrossDivorceNum
(
crossMarriageStat
.
getNum
());
}
}
// 放进缓存
redisUtils
.
setObj
(
PortalCacheKeys
.
getMarriageStatsKey
(
vo
),
build
);
// 放进数据库 有时间条件的不存库
// VMarriageStats marriageStats = vMarriageStatsDao.selectOne(Wrappers.lambdaQuery(VMarriageStats.builder().year(vo.getYear() == null ? 0 : vo.getYear()).areaCode(area.getCode()).createTime(DateUtil.parseDate(DateUtil.today())).build()));
VMarriageStats
marriageStats
=
vMarriageStatsDao
.
selectOne
(
Wrappers
.
lambdaQuery
(
VMarriageStats
.
builder
().
year
(
year
).
areaCode
(
area
.
getCode
()).
createTime
(
DateUtil
.
parseDate
(
DateUtil
.
today
())).
build
()));
if
(
marriageStats
==
null
)
{
vMarriageStatsDao
.
insert
(
build
);
}
else
{
build
.
setId
(
marriageStats
.
getId
());
vMarriageStatsDao
.
updateById
(
build
);
}
vMarriageStatsDao
.
delete
(
Wrappers
.
lambdaQuery
(
VMarriageStats
.
builder
().
year
(
2022
).
areaCode
(
"450000000000"
).
createTime
(
DateUtil
.
parseDate
(
DateUtil
.
today
())).
build
()));
return
build
;
}
/**
* 获取缓存区域下的结婚离婚数据
*
* @param vo
* @return
*/
public
Object
getCacheAreaUnderMarriageStatsList
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getAreaUnderMarriageStatsListKey
(
vo
));
if
(
obj
!=
null
)
{
return
obj
;
}
return
getAreaUnderMarriageStatsList
(
vo
);
}
/**
* 获取区域下的结婚离婚数据
*
* @param vo
* @return
*/
public
Object
getAreaUnderMarriageStatsList
(
StatsReqVo
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<StatsVo> statsList = hyStatsDao.getAreaUnderMarriageStatsList(vo);
// statsList:
// for (StatsVo stats : statsList) {
// if ("IA".equals(stats.getType())) {
// 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
=
getMarriageStats
(
vo
);
returnData
.
add
(
marriageStats
);
}
List
<
String
>
cityList
=
new
ArrayList
<>();
List
<
String
>
iaList
=
new
ArrayList
<>();
List
<
String
>
ibList
=
new
ArrayList
<>();
for
(
VMarriageStats
marriageStats
:
returnData
)
{
cityList
.
add
(
marriageStats
.
getAreaName
());
iaList
.
add
(
NumberUtil
.
toStr
(
marriageStats
.
getMarryNum
(),
"0"
));
ibList
.
add
(
NumberUtil
.
toStr
(
marriageStats
.
getDivorceNum
(),
"0"
));
}
Map
<
String
,
Object
>
returnMap
=
new
HashMap
<>();
returnMap
.
put
(
"cityList"
,
cityList
);
returnMap
.
put
(
"iaList"
,
iaList
);
returnMap
.
put
(
"ibList"
,
ibList
);
returnMap
.
put
(
"statsList"
,
returnData
);
redisUtils
.
setObj
(
cacheKey
,
returnMap
);
return
returnMap
;
}
/**
* 获取冷静期和真正离婚的折线图数据
*
* @param vo
* @return
*/
public
Object
getDivorceCoolingLine
(
StatsReqVo
vo
)
{
// 获取冷静期
List
<
StatsVo
>
statsVoList
=
hyStatsDao
.
getMonthDivorceCoolingData
(
vo
);
return
null
;
}
/**
* 缓存获取近5年结婚离婚走势
*
* @param vo
* @return
*/
public
Object
getCacheFivesYearMarriageLine
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getFivesYearMarriageLineKey
(
vo
.
getAreaCode
()));
if
(
obj
!=
null
)
{
return
obj
;
}
return
getFivesYearMarriageLine
(
vo
);
}
/**
* 获取近5年结婚离婚走势
*
* @param vo
* @return
*/
public
Object
getFivesYearMarriageLine
(
StatsReqVo
vo
)
{
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
vo
.
setAreaCode
(
"450000000000"
);
}
SystemArea
area
=
areaDao
.
getAreaByCode
(
SystemArea
.
patchZero
(
vo
.
getAreaCode
()));
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
vo
.
setType
(
"IA"
);
List
<
StatsVo
>
ia
=
hyStatsDao
.
getFivesYearMarriageLine
(
vo
);
ia
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getYear
));
List
<
String
>
iaDateList
=
new
ArrayList
<>();
List
<
String
>
iaAmountList
=
new
ArrayList
<>();
ia
.
forEach
(
statsVo
->
{
iaDateList
.
add
(
statsVo
.
getYear
());
iaAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
});
LineDataVo
iaLineData
=
LineDataVo
.
builder
().
dateList
(
iaDateList
).
amountList
(
iaAmountList
).
build
();
vo
.
setType
(
"IB"
);
List
<
StatsVo
>
ib
=
hyStatsDao
.
getFivesYearMarriageLine
(
vo
);
ib
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getYear
));
List
<
String
>
ibDateList
=
new
ArrayList
<>();
List
<
String
>
ibAmountList
=
new
ArrayList
<>();
ib
.
forEach
(
statsVo
->
{
ibDateList
.
add
(
statsVo
.
getYear
());
ibAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
});
LineDataVo
ibLineData
=
LineDataVo
.
builder
().
dateList
(
ibDateList
).
amountList
(
ibAmountList
).
build
();
// 结婚总对数
int
iaTotalNum
=
0
;
for
(
String
num
:
iaAmountList
)
{
iaTotalNum
+=
Integer
.
parseInt
(
num
);
}
// 后台管理数据
Map
<
String
,
Object
>
adminData
=
new
HashMap
<>();
adminData
.
put
(
"iaLineData"
,
iaLineData
);
adminData
.
put
(
"ibLineData"
,
ibLineData
);
adminData
.
put
(
"iaTotalNum"
,
iaTotalNum
);
//App数据
Map
<
String
,
Object
>
appData
=
new
HashMap
<>();
appData
.
put
(
"categories"
,
iaDateList
);
Map
<
String
,
Object
>
iaLine
=
new
HashMap
<>();
iaLine
.
put
(
"name"
,
"结婚对数"
);
iaLine
.
put
(
"data"
,
iaAmountList
);
Map
<
String
,
Object
>
ibLine
=
new
HashMap
<>();
ibLine
.
put
(
"name"
,
"离婚对数"
);
ibLine
.
put
(
"data"
,
ibAmountList
);
List
<
Map
<
String
,
Object
>>
seriesList
=
new
ArrayList
<>();
seriesList
.
add
(
iaLine
);
seriesList
.
add
(
ibLine
);
appData
.
put
(
"series"
,
seriesList
);
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
returnData
.
put
(
"admin"
,
adminData
);
returnData
.
put
(
"app"
,
appData
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getFivesYearMarriageLineKey
(
vo
.
getAreaCode
()),
returnData
);
return
returnData
;
}
/**
* 获取缓存月统计折线
*
* @param vo
* @return
*/
public
Object
getCacheMonthMarriageLine
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getMonthMarriageLineKey
(
vo
.
getAreaCode
()));
if
(
obj
!=
null
)
{
return
obj
;
}
return
getMonthMarriageLine
(
vo
);
}
/**
* 月统计折线
*
* @param vo
* @return
*/
public
Object
getMonthMarriageLine
(
StatsReqVo
vo
)
{
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
vo
.
setAreaCode
(
"450000000000"
);
}
SystemArea
area
=
areaDao
.
getAreaByCode
(
vo
.
getAreaCode
());
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
vo
.
setType
(
"IA"
);
List
<
StatsVo
>
ia
=
hyStatsDao
.
getMonthMarriageLine
(
vo
);
ia
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getMonth
));
List
<
String
>
iaDateList
=
new
ArrayList
<>();
List
<
String
>
iaAmountList
=
new
ArrayList
<>();
ia
.
forEach
(
statsVo
->
{
iaDateList
.
add
(
statsVo
.
getMonth
());
iaAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
});
LineDataVo
iaLineData
=
LineDataVo
.
builder
().
dateList
(
iaDateList
).
amountList
(
iaAmountList
).
build
();
vo
.
setType
(
"IB"
);
List
<
StatsVo
>
ib
=
hyStatsDao
.
getMonthMarriageLine
(
vo
);
ib
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getMonth
));
List
<
String
>
ibDateList
=
new
ArrayList
<>();
List
<
String
>
ibAmountList
=
new
ArrayList
<>();
ib
.
forEach
(
statsVo
->
{
ibDateList
.
add
(
statsVo
.
getMonth
());
ibAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
});
LineDataVo
ibLineData
=
LineDataVo
.
builder
().
dateList
(
ibDateList
).
amountList
(
ibAmountList
).
build
();
// 后台管理数据
Map
<
String
,
Object
>
adminData
=
new
HashMap
<>();
adminData
.
put
(
"iaLineData"
,
iaLineData
);
adminData
.
put
(
"ibLineData"
,
ibLineData
);
//App数据
Map
<
String
,
Object
>
appData
=
new
HashMap
<>();
appData
.
put
(
"categories"
,
iaDateList
);
Map
<
String
,
Object
>
iaLine
=
new
HashMap
<>();
iaLine
.
put
(
"name"
,
"结婚对数"
);
iaLine
.
put
(
"data"
,
iaAmountList
);
Map
<
String
,
Object
>
ibLine
=
new
HashMap
<>();
ibLine
.
put
(
"name"
,
"离婚对数"
);
ibLine
.
put
(
"data"
,
ibAmountList
);
List
<
Map
<
String
,
Object
>>
seriesList
=
new
ArrayList
<>();
seriesList
.
add
(
iaLine
);
seriesList
.
add
(
ibLine
);
appData
.
put
(
"series"
,
seriesList
);
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
returnData
.
put
(
"admin"
,
adminData
);
returnData
.
put
(
"app"
,
appData
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getMonthMarriageLineKey
(
vo
.
getAreaCode
()),
returnData
);
return
returnData
;
}
/**
* 搜索
*
* @param vo
* @return
*/
public
Object
marriageSearch
(
SearchReqVo
vo
)
{
if
(
StrUtil
.
isBlank
(
vo
.
getKeyword
()))
{
SystemArea
systemArea
=
areaDao
.
selectById
(
vo
.
getAreaCode
());
vo
.
setSubAreaCode
(
systemArea
.
subAreaCode
());
}
return
PagingUtils
.
paging
(
vo
,
hyStatsDao:
:
search
);
}
/**
* 获取缓存年统计结婚对数
*
* @param vo
* @return
*/
public
Object
getCacheYearMarriedCouple
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getYearMarriedCoupleKey
());
if
(
obj
!=
null
)
{
return
obj
;
}
return
getYearMarriedCouple
(
vo
);
}
/**
* 年统计结婚离婚对数
*
* @param vo
* @return
*/
private
Object
getYearMarriedCouple
(
StatsReqVo
vo
)
{
Integer
iaCount
=
null
;
Integer
ibCount
=
null
;
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
List
<
StatsVo
>
yearMarriedCouple
=
hyStatsDao
.
getYearMarriedCouple
(
vo
);
for
(
StatsVo
statsVo:
yearMarriedCouple
)
{
if
(
"IA"
.
equals
(
statsVo
.
getType
()))
{
iaCount
=
statsVo
.
getNum
();
}
else
if
(
"IB"
.
equals
(
statsVo
.
getType
()))
{
ibCount
=
statsVo
.
getNum
();
}
}
returnData
.
put
(
"结婚对数"
,
iaCount
);
returnData
.
put
(
"离婚对数"
,
ibCount
);
return
returnData
;
}
}
portal-server/src/main/java/com/zq/portal/service/ShjzStatsService.java
View file @
7e2031c5
...
...
@@ -760,13 +760,14 @@ public class ShjzStatsService {
city
=
BigDecimal
.
valueOf
(
stats
.
getNum
()).
divide
(
BigDecimal
.
valueOf
(
10000
),
2
,
RoundingMode
.
HALF_UP
);
}
else
if
(
"农村特困"
.
equals
(
stats
.
getType
())){
nong
=
BigDecimal
.
valueOf
(
stats
.
getNum
()).
divide
(
BigDecimal
.
valueOf
(
10000
),
2
,
RoundingMode
.
HALF_UP
);
}
else
if
(
"城市特困"
.
equals
(
stats
.
getType
())){
}
else
if
(
"城市特困"
.
equals
(
stats
.
getType
())){
cheng
=
BigDecimal
.
valueOf
(
stats
.
getNum
()).
divide
(
BigDecimal
.
valueOf
(
10000
),
2
,
RoundingMode
.
HALF_UP
);
}
else
{
continue
;
}
totalData
.
put
(
"lowTotal"
,
country
.
add
(
city
));
totalData
.
put
(
"destiTotal"
,
nong
.
add
(
cheng
));
}
totalData
.
put
(
"lowTotal"
,
country
.
add
(
city
));
totalData
.
put
(
"destiTotal"
,
nong
.
add
(
cheng
));
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
returnData
.
put
(
"totalData"
,
totalData
);
returnData
.
put
(
"temporaryHelp"
,
shjzStatsDao
.
getAppData
().
getTemporaryHelp
());
...
...
portal-server/src/main/java/com/zq/portal/vo/StatsVo.java
View file @
7e2031c5
...
...
@@ -22,7 +22,7 @@ public class StatsVo {
private
String
name
;
private
String
amount
;
private
Integer
amount
;
private
String
hlnum
;
...
...
portal-server/src/main/resources/mapper/BzStatsMapper.xml
View file @
7e2031c5
...
...
@@ -10,6 +10,7 @@
fis_cremation_info_sum a
LEFT JOIN fis_organ b ON b.organ_name = a.create_organ_name
WHERE 1 = 1
AND a.start_time like'2023%'
<if
test =
"subAreaCode != null and subAreaCode != ''"
>
AND b.beloing_cant_code LIKE CONCAT (#{subAreaCode},'%')
</if >
...
...
@@ -26,6 +27,7 @@
fis_cremation_info_sum a
LEFT JOIN fis_organ b ON b.organ_name = a.create_organ_name
WHERE 1 = 1
AND a.start_time like'2023%'
<if
test =
"subAreaCode != null and subAreaCode != ''"
>
AND b.beloing_cant_code LIKE CONCAT (#{subAreaCode},'%')
</if >
...
...
portal-server/src/main/resources/mapper/HyStatsMapper.xml
View file @
7e2031c5
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.zq.portal.dao.HyStatsDao"
>
<select
id=
"getFivesYearMarriageLine"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type', DATE_FORMAT( m.AIAX0048, "%Y" ) 'year'
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND DATE_FORMAT(m.AIAX0048, "%Y")
<
= YEAR(NOW())
AND m.AIAX0001 = #{type}
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
GROUP BY DATE_FORMAT(m.AIAX0048, "%Y")
ORDER BY DATE_FORMAT(m.AIAX0048, "%Y") DESC LIMIT 5
</select>
<select
id=
"getMonthMarriageLine"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type', DATE_FORMAT( m.AIAX0048, "%Y-%m" ) 'month'
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND m.AIAX0001 = #{type}
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
GROUP BY DATE_FORMAT(m.AIAX0048, '%Y-%m')
ORDER BY DATE_FORMAT(m.AIAX0048, '%Y-%m') DESC LIMIT 12
</select>
<select
id=
"getMarriageStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
COUNT( 1 ) 'num',
m.AIAX0001 'type'
FROM
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE
m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
<if
test=
"year != null"
>
AND m.AIAX0059 = #{year}
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
GROUP BY
m.AIAX0001
</select>
<!--获取下级区域婚姻统计列表-->
<select
id=
"getAreaUnderMarriageStatsList"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
LEFT ( t.YAB003, #{size} ) 'code',
m.AIAX0001 'type' ,
COUNT( 1 ) 'num'
FROM
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE
m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND CHAR_LENGTH (LEFT ( t.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 t.YAB003 LIKE CONCAT( #{subAreaCode}, '%' )
</if>
GROUP BY
LEFT ( t.YAB003, #{size} ), m.AIAX0001
</select>
<!--获取跨地婚姻统计-->
<select
id=
"getCrossMarriageStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
COUNT( 1 ) 'num',
m.AIAX0001 'type'
FROM
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE
m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND LEFT(m.AIAP0013,4) != LEFT(t.YAB003,4)
AND LEFT(m.AIAP0014,4) != LEFT(t.YAB003,4)
<if
test=
"year != null"
>
AND m.AIAX0059 = #{year}
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
GROUP BY
m.AIAX0001
</select>
<!--获取离婚中的人数-->
<select
id=
"getInDivorceNum"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type'
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0001 = 'IB'
AND m.BIAX0075 = '1'
AND m.AIAX0072 != '1'
<if
test=
"year != null"
>
AND m.AIAX0059 = #{year}
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
</select>
<!--获取结婚人数-->
<select
id=
"getMarryNum"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type'
FROM mrcase m JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0001 = 'IA'
AND m.BIAX0075 = '1'
AND m.AIAX0072 = '1'
<if
test=
"year != null"
>
AND m.AIAX0059 = #{year}
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
</select>
<select
id=
"getMonthDivorceCoolingData"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
LEFT (m.AIAX0048, 10),
COUNT (1) 'num'
FROM
mrcheck m
LEFT JOIN mrcheckappend ma
ON m.BIAX0069 = ma.BIAX0069
WHERE
m.AIAX0001 = 'IB'
AND m.AIAX0072 = '1'
AND m.BIAX0015 = '6'
AND ma.COLEENDTIME
<
CURDATE()
GROUP BY LEFT (m.AIAX0048, 10)
</select>
<!-- <select id="search" resultType="java.util.Map">-->
<!-- SELECT m.AIAX0001 'businessType', m.AIAP0005 'manName', m.AIAP0006 'girlName', m.AIAP0013 'manIdCard', m.AIAP0014-->
<!-- 'girlIdCard',-->
<!-- m.AIAP0015 'manNationality', m.AIAP0016 'girlNationality', m.AIAP0023 'manState', m.AIAP0024 'girlState',-->
<!-- m.AIAP0027-->
<!-- 'manDomicile', m.AIAP0028 'girlDomicile', m.AIAX0035 'manContact', m.AIAX0036 'girlContact', m.AIAX0059-->
<!-- 'archiveYear',-->
<!-- LEFT (m.AIAX0048, 10) 'registerDate', m.AIAE0004 'orgName'-->
<!-- FROM `mrcase` m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID-->
<!-- WHERE 1=1-->
<!-- <if test="keyword != null and keyword != ''">-->
<!-- AND (m.AIAP0005 = #{keyword} OR AIAP0006 = #{keyword} OR AIAP0013 = #{keyword} OR AIAP0014 = #{keyword})-->
<!-- </if>-->
<!-- <if test="subAreaCode != null and subAreaCode != ''">-->
<!-- AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')-->
<!-- </if>-->
<!-- ORDER BY m.AIAX0048 DESC-->
<!-- </select>-->
<select
id=
"search"
resultType=
"java.util.Map"
>
SELECT businessType, manName, girlName, manIdCard, girlIdCard,
manNationality, girlNationality, manState, girlState, manDomicile,
girlDomicile, manContact, girlContact, archiveYear, registerDate, orgName, areaCode
FROM `search_data`
WHERE 1=1
<if
test=
"keyword != null and keyword != ''"
>
AND (manName = #{keyword} OR girlName = #{keyword} OR manIdCard = #{keyword} OR girlIdCard = #{keyword})
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND areaCode LIKE CONCAT(#{subAreaCode},'%')
</if>
ORDER BY registerDate DESC
</select>
<select
id=
"getYearMarriedCouple"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
COUNT( 1 )
FROM
MRCASE m
WHERE
1=1
<if
test=
"type != null and type != ''"
>
AND m.AIAX0001 = #{type}
</if>
AND BIAX0075 = '1'
AND AIAX0072 = '1'
AND DATE_FORMAT(AIAX0048,'%Y%m') >= '202201'
AND DATE_FORMAT(AIAX0048,'%Y%m')
<
= '202212'
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.zq.portal.dao.HyStatsDao"
>
<select
id=
"getFivesYearMarriageLine"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type', DATE_FORMAT( m.AIAX0048, "%Y" ) 'year'
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND DATE_FORMAT(m.AIAX0048, "%Y")
<
= YEAR(NOW())
AND m.AIAX0001 = #{type}
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
GROUP BY DATE_FORMAT(m.AIAX0048, "%Y")
ORDER BY DATE_FORMAT(m.AIAX0048, "%Y") DESC LIMIT 5
</select>
<select
id=
"getMonthMarriageLine"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type', DATE_FORMAT( m.AIAX0048, "%Y-%m" ) 'month'
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND m.AIAX0001 = #{type}
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
GROUP BY DATE_FORMAT(m.AIAX0048, '%Y-%m')
ORDER BY DATE_FORMAT(m.AIAX0048, '%Y-%m') DESC LIMIT 12
</select>
<select
id=
"getMarriageStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
COUNT( 1 ) 'num',
m.AIAX0001 'type'
FROM
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE
m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND m.AIAX0059 = DATE_FORMAT(NOW(),'%Y')
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
GROUP BY
m.AIAX0001
</select>
<!--获取下级区域婚姻统计列表-->
<select
id=
"getAreaUnderMarriageStatsList"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
LEFT ( t.YAB003, #{size} ) 'code',
m.AIAX0001 'type' ,
COUNT( 1 ) 'num'
FROM
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE
m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND CHAR_LENGTH (LEFT ( t.YAB003, #{size} )) = #{size}
AND m.AIAX0059 = DATE_FORMAT(NOW(),'%Y')
<if
test=
"type != null and type != ''"
>
AND m.AIAX0001 = #{type}
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT( #{subAreaCode}, '%' )
</if>
GROUP BY
LEFT ( t.YAB003, #{size} ), m.AIAX0001
</select>
<!--获取跨地婚姻统计-->
<select
id=
"getCrossMarriageStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
COUNT( 1 ) 'num',
m.AIAX0001 'type'
FROM
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE
m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND LEFT(m.AIAP0013,4) != LEFT(t.YAB003,4)
AND LEFT(m.AIAP0014,4) != LEFT(t.YAB003,4)
AND m.AIAX0059 = DATE_FORMAT(NOW(),'%Y')
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
GROUP BY
m.AIAX0001
</select>
<!--获取离婚中的人数-->
<select
id=
"getInDivorceNum"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type'
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0001 = 'IB'
AND m.BIAX0075 = '1'
AND m.AIAX0072 != '1'
AND m.AIAX0059 = DATE_FORMAT(NOW(),'%Y')
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
</select>
<!--获取结婚人数-->
<select
id=
"getMarryNum"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type'
FROM mrcase m JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0001 = 'IA'
AND m.BIAX0075 = '1'
AND m.AIAX0072 = '1'
AND m.AIAX0059 = DATE_FORMAT(NOW(),'%Y')
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
</select>
<select
id=
"getMonthDivorceCoolingData"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
LEFT (m.AIAX0048, 10),
COUNT (1) 'num'
FROM
mrcheck m
LEFT JOIN mrcheckappend ma
ON m.BIAX0069 = ma.BIAX0069
WHERE
m.AIAX0001 = 'IB'
AND m.AIAX0072 = '1'
AND m.BIAX0015 = '6'
AND ma.COLEENDTIME
<
CURDATE()
GROUP BY LEFT (m.AIAX0048, 10)
</select>
<!-- <select id="search" resultType="java.util.Map">-->
<!-- SELECT m.AIAX0001 'businessType', m.AIAP0005 'manName', m.AIAP0006 'girlName', m.AIAP0013 'manIdCard', m.AIAP0014-->
<!-- 'girlIdCard',-->
<!-- m.AIAP0015 'manNationality', m.AIAP0016 'girlNationality', m.AIAP0023 'manState', m.AIAP0024 'girlState',-->
<!-- m.AIAP0027-->
<!-- 'manDomicile', m.AIAP0028 'girlDomicile', m.AIAX0035 'manContact', m.AIAX0036 'girlContact', m.AIAX0059-->
<!-- 'archiveYear',-->
<!-- LEFT (m.AIAX0048, 10) 'registerDate', m.AIAE0004 'orgName'-->
<!-- FROM `mrcase` m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID-->
<!-- WHERE 1=1-->
<!-- <if test="keyword != null and keyword != ''">-->
<!-- AND (m.AIAP0005 = #{keyword} OR AIAP0006 = #{keyword} OR AIAP0013 = #{keyword} OR AIAP0014 = #{keyword})-->
<!-- </if>-->
<!-- <if test="subAreaCode != null and subAreaCode != ''">-->
<!-- AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')-->
<!-- </if>-->
<!-- ORDER BY m.AIAX0048 DESC-->
<!-- </select>-->
<select
id=
"search"
resultType=
"java.util.Map"
>
SELECT businessType, manName, girlName, manIdCard, girlIdCard,
manNationality, girlNationality, manState, girlState, manDomicile,
girlDomicile, manContact, girlContact, archiveYear, registerDate, orgName, areaCode
FROM `search_data`
WHERE 1=1
<if
test=
"keyword != null and keyword != ''"
>
AND (manName = #{keyword} OR girlName = #{keyword} OR manIdCard = #{keyword} OR girlIdCard = #{keyword})
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND areaCode LIKE CONCAT(#{subAreaCode},'%')
</if>
ORDER BY registerDate DESC
</select>
<select
id=
"getYearMarriedCouple"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
COUNT( 1 )
FROM
MRCASE m
WHERE
1=1
<if
test=
"type != null and type != ''"
>
AND m.AIAX0001 = #{type}
</if>
AND BIAX0075 = '1'
AND AIAX0072 = '1'
AND DATE_FORMAT(AIAX0048,'%Y%m') >= '202201'
AND DATE_FORMAT(AIAX0048,'%Y%m')
<
= '202212'
</select>
</mapper>
portal-server/src/main/resources/mapper/ShjzStatsDao.xml
View file @
7e2031c5
...
...
@@ -248,7 +248,7 @@
p.iscity
</select>
<select
id=
"get
PeopleNumStats
"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"get
AppShjzData
"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
h.type 'type',
SUM(h.people_num) 'num'
...
...
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