Commit 7e2031c5 by wqc

调整app数据接口2

parent 7873c0aa
......@@ -22,13 +22,13 @@ public class BzStatsController {
@ApiOperation("统计该区域火化量和火化率")
@PostMapping(value = "/getCremationStats")
public ResultVo<Object> getCremationStats(@RequestBody StatsReqVo vo) {
return ResultVo.success(bzStatsService.getCacheCremationStats(vo));
return ResultVo.success(bzStatsService.getCremationStats(vo));//getCacheCremationStats
}
@ApiOperation("获取父级殡葬火化分析列表")
@PostMapping(value = "/getCremationStatsList")
public ResultVo<Object> getCremationStatsList(@RequestBody StatsReqVo vo) {
return ResultVo.success(bzStatsService.getCacheCremationStatsList(vo));
return ResultVo.success(bzStatsService.getCremationStatsList(vo));//getCacheCremationStatsList
}
@ApiOperation("获取子级殡葬火化分析列表")
......
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.getCacheMarriageStats(vo));
}
@ApiOperation("获取地区下面婚姻统计列表")
@PostMapping(value = "/getAreaUnderMarriageStatsList")
public ResultVo getAreaUnderMarriageStatsList(@RequestBody StatsReqVo vo) {
return ResultVo.success(hyStatsService.getCacheAreaUnderMarriageStatsList(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.getMarriageStats(vo));//getCacheMarriageStats
}
@ApiOperation("获取地区下面婚姻统计列表")
@PostMapping(value = "/getAreaUnderMarriageStatsList")
public ResultVo getAreaUnderMarriageStatsList(@RequestBody StatsReqVo vo) {
return ResultVo.success(hyStatsService.getAreaUnderMarriageStatsList(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));
}
}
......@@ -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);
......
......@@ -373,6 +373,6 @@ public class CjStatsService {
Map<String, Object> returnData = new HashMap<>();
returnData.put("map",mapData);
returnData.put("total",totalData);
return mapData;
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());
// 统计实体
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;
}
}
......@@ -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());
......
......@@ -22,7 +22,7 @@ public class StatsVo {
private String name;
private String amount;
private Integer amount;
private String hlnum;
......
......@@ -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 >
......
<?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") &lt;= 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
&lt; 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') &lt;= '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") &lt;= 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
&lt; 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') &lt;= '202212'
</select>
</mapper>
......@@ -248,7 +248,7 @@
p.iscity
</select>
<select id="getPeopleNumStats" resultType="com.zq.portal.vo.StatsVo">
<select id="getAppShjzData" resultType="com.zq.portal.vo.StatsVo">
SELECT
h.type 'type',
SUM(h.people_num) '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