package com.sample.demo.samples.ms.service.impl;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.sample.demo.samples.ms.analysis.vo.AnalysisNoticeVO;
import com.sample.demo.samples.ms.dao.NoticeInfoMapper;
import com.sample.demo.samples.ms.index.vo.BieDataVO;
import com.sample.demo.samples.ms.index.vo.ComplexPillarDataVO4;
import com.sample.demo.samples.ms.index.vo.LineDataVO;
import com.sample.demo.samples.ms.index.vo.MainComlexPillarDataGenericityVO;
import com.sample.demo.samples.ms.index.vo.MainLineDataVO;
import com.sample.demo.samples.ms.index.vo.PeoleAreaVO;
import com.sample.demo.samples.ms.model.NoticeInfo;
import com.sample.demo.samples.ms.service.INoticeInfoService;
/**
* <p>
* 资金流水表-帮扶 服务实现类
* </p>
*
* @author canghai123
* @since 2019-11-20
*/
@Service
public class NoticeInfoServiceImpl extends ServiceImpl<NoticeInfoMapper, NoticeInfo> implements INoticeInfoService {
@Override
public AnalysisNoticeVO analysisNotice(String areaCode, String dateStr) {
List<String> sortList = Arrays.asList("天水", "武林", "长庆", "潮鸣", "朝晖", "文晖", "东新", "石桥");
// 变动机制-退出量(年)
AnalysisNoticeVO vo = new AnalysisNoticeVO();
List<BieDataVO> bieDataVOList = this.baseMapper.selectNoticeYearPeopleTypeNumChange(dateStr);
bieDataVOList = bieDataVOList.stream().sorted(Comparator.comparing(BieDataVO::getName, (x, y) -> {
if (x == null && y != null) {
return 1;
} else if (x != null && y == null) {
return -1;
} else if (x == null && y == null) {
return -1;
} else {
// 按照读取的list顺序排序
for (String sort : sortList) {
if (sort.equals(x) || sort.equals(y)) {
if (x.equals(y)) {
return 0;
} else if (sort.equals(x)) {
return -1;
} else {
return 1;
}
}
}
return 0;
}
})).collect(Collectors.toList());
vo.setBieDataVOList(bieDataVOList == null ? Collections.emptyList() : bieDataVOList);
// 变动机制-退出量(月
bieDataVOList = this.baseMapper.selectNoticeMonthPeopleTypeNumChange(dateStr);
bieDataVOList = bieDataVOList.stream().sorted(Comparator.comparing(BieDataVO::getName, (x, y) -> {
if (x == null && y != null) {
return 1;
} else if (x != null && y == null) {
return -1;
} else if (x == null && y == null) {
return -1;
} else {
// 按照读取的list顺序排序
for (String sort : sortList) {
if (sort.equals(x) || sort.equals(y)) {
if (x.equals(y)) {
return 0;
} else if (sort.equals(x)) {
return -1;
} else {
return 1;
}
}
}
return 0;
}
})).collect(Collectors.toList());
vo.setBieDataVOList1(bieDataVOList == null ? Collections.emptyList() : bieDataVOList);
// 变动机制-退出状态(年)
MainComlexPillarDataGenericityVO<ComplexPillarDataVO4> mainComlexPillarDataVO = new MainComlexPillarDataGenericityVO<>();
List<ComplexPillarDataVO4> pillarDataVOList = this.baseMapper.selectNoticeNumPillerChange(dateStr);
pillarDataVOList = pillarDataVOList.stream()
.sorted(Comparator.comparing(ComplexPillarDataVO4::getTitle, (x, y) -> {
if (x == null && y != null) {
return 1;
} else if (x != null && y == null) {
return -1;
} else if (x == null && y == null) {
return -1;
} else {
// 按照读取的list顺序排序
for (String sort : sortList) {
if (sort.equals(x) || sort.equals(y)) {
if (x.equals(y)) {
return 0;
} else if (sort.equals(x)) {
return -1;
} else {
return 1;
}
}
}
return 0;
}
})).collect(Collectors.toList());
mainComlexPillarDataVO
.setPillarDataVOList(pillarDataVOList == null ? Collections.emptyList() : pillarDataVOList);
List<String> pillarTitleList = Lists.newLinkedList();
if (pillarDataVOList != null) {
for (ComplexPillarDataVO4 complexPillarDataVO : pillarDataVOList) {
pillarTitleList.add(complexPillarDataVO.getTitle());
}
}
mainComlexPillarDataVO.setPillarTitleList(pillarTitleList == null ? Collections.emptyList() : pillarTitleList);
vo.setMainComlexPillarDataVO(mainComlexPillarDataVO);
// 变动机制-退出原因(年)
MainLineDataVO mainLineDataVO = new MainLineDataVO();
List<LineDataVO> lineDataVOList = Lists.newLinkedList();
List<PeoleAreaVO> peoleAreaVOList = this.baseMapper.selectNoticePeopleZxNumChange(dateStr);
peoleAreaVOList = peoleAreaVOList.stream().sorted(Comparator.comparing(PeoleAreaVO::getAreaCode, (x, y) -> {
if (x == null && y != null) {
return 1;
} else if (x != null && y == null) {
return -1;
} else if (x == null && y == null) {
return -1;
} else {
// 按照读取的list顺序排序
for (String sort : sortList) {
if (sort.equals(x) || sort.equals(y)) {
if (x.equals(y)) {
return 0;
} else if (sort.equals(x)) {
return -1;
} else {
return 1;
}
}
}
return 0;
}
})).collect(Collectors.toList());
// 排序
List<String> zxTitleList = new LinkedList<String>();
Map<Integer, List<PeoleAreaVO>> groupBy = peoleAreaVOList.stream()
.collect(Collectors.groupingBy(PeoleAreaVO::getType1));
if (groupBy != null) {
groupBy.forEach((k, v) -> {
LineDataVO lineDataVO = new LineDataVO();
if (k == 2) {
lineDataVO.setName("享受升级");
} else if (k == 3) {
lineDataVO.setName("户籍迁入");
} else if (k == 4) {
lineDataVO.setName("户籍迁出");
} else if (k == 5) {
lineDataVO.setName("死亡人数");
} else if (k == 6) {
lineDataVO.setName("享受期满");
} else if (k == 7) {
lineDataVO.setName("政策冲突");
}
lineDataVO.setType("line");
lineDataVO.setStack("人口");
List<Long> data = v.stream().map((peoleAreaVO) -> peoleAreaVO.getNum()).collect(Collectors.toList());
lineDataVO.setData(data);
lineDataVOList.add(lineDataVO);
List<PeoleAreaVO> peopleAreaVOList = v;
if (zxTitleList.size() == 0) {
if (peopleAreaVOList != null) {
for (PeoleAreaVO peopleAreaVO : peopleAreaVOList) {
zxTitleList.add(peopleAreaVO.getAreaCode());
}
}
}
});
}
mainLineDataVO.setLineDataVOList(lineDataVOList == null ? Collections.emptyList() : lineDataVOList);
mainLineDataVO.setLineTitleList(zxTitleList);
vo.setMainLineDataVO(mainLineDataVO);
return vo;
}
}
package com.sample.demo.samples.ms.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.sample.demo.samples.ms.exception.MsApiException;
import com.sample.demo.samples.ms.index.vo.BieDataVO;
import com.sample.demo.samples.ms.index.vo.ComplexPillarDataVO;
import com.sample.demo.samples.ms.index.vo.ComplexPillarDataVO1;
import com.sample.demo.samples.ms.index.vo.ComplexPillarDataVO2;
import com.sample.demo.samples.ms.index.vo.ComplexPillarDataVO3;
import com.sample.demo.samples.ms.index.vo.LineDataVO;
import com.sample.demo.samples.ms.index.vo.MainComlexPillarDataVO;
import com.sample.demo.samples.ms.index.vo.MainComlexPillarDataVO1;
import com.sample.demo.samples.ms.index.vo.MainComlexPillarDataVO2;
import com.sample.demo.samples.ms.index.vo.MainComlexPillarDataVO3;
import com.sample.demo.samples.ms.index.vo.MainLineDataVO;
import com.sample.demo.samples.ms.index.vo.PeoleAreaVO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Service;
import com.sample.demo.samples.ms.model.PeopleInfo;
import com.sample.demo.samples.consts.AreaConsts;
import com.sample.demo.samples.ms.analysis.vo.AnalysisByVO;
import com.sample.demo.samples.ms.analysis.vo.AnalysisDisabledVO;
import com.sample.demo.samples.ms.analysis.vo.AnalysisOldVO;
import com.sample.demo.samples.ms.analysis.vo.AnalysisVO;
import com.sample.demo.samples.ms.dao.PeopleInfoDao;
import com.sample.demo.samples.ms.service.PeopleInfoService;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @version 版权 Copyright(c)2019 浙江设维信息技术有限公司
* @ClassName: PeopleInfoServiceImpl<br />
* @Descripton:
* @author: zbd
* @date: 2019-11-10 19:34
*/
@Service
public class PeopleInfoServiceImpl extends ServiceImpl<PeopleInfoDao, PeopleInfo> implements PeopleInfoService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void updateByNames(List<PeopleInfo> updateList) {
updateList.forEach(t -> {
updateByName(t);
});
}
@Override
public void updateByName(PeopleInfo peopleInfo) {
update(peopleInfo, new LambdaUpdateWrapper<PeopleInfo>().set(peopleInfo.getCardNum() != null,
PeopleInfo::getCardNum, peopleInfo.getCardNum()));
}
@Override
public PeopleInfo getByCardNum(String cardNum) {
return getOne(new LambdaQueryWrapper<PeopleInfo>().eq(cardNum != null, PeopleInfo::getCardNum, cardNum));
}
@Override
public PeopleInfo getByCardNumMustExist(String cardNum) {
if (cardNum == null) {
return null;
}
PeopleInfo peopleInfo = getOne(
new LambdaQueryWrapper<PeopleInfo>().eq(cardNum != null, PeopleInfo::getCardNum, cardNum));
if (peopleInfo == null) {
throw new MsApiException("该身份证号对应居民不存在");
}
return peopleInfo;
}
@Override
public IPage<PeopleInfo> selectListByCondition(JSONArray conditionArray, List<String> fieldsList, Integer pageNum,
Integer pageSize, Integer type, List<String> areaCodeList) {
IPage<PeopleInfo> page = new Page<>(pageNum, pageSize);
StringBuffer listSql = new StringBuffer();
StringBuffer countSql = new StringBuffer();
StringBuffer fieldSql = new StringBuffer();
StringBuffer conditionSql = new StringBuffer();
List<Object> paramList = Lists.newLinkedList();
List<Object> paramList1 = Lists.newLinkedList();
listSql.append(
"select " + " distinct id,\n" + " name,\n" + " sex,\n" + " card_num as cardNum\n");
countSql.append("select count(distinct id)");
for (String field : fieldsList) {
if (StringUtils.equals(field, "birthDate")) {
fieldSql.append(",birth_date as birthDate\n");
}
if (StringUtils.equals(field, "mobile")) {
fieldSql.append(",mobile\n");
}
if (StringUtils.equals(field, "phone")) {
fieldSql.append(",phone\n");
}
if (StringUtils.equals(field, "hjType")) {
fieldSql.append(",hj_type as hjType\n");
}
if (StringUtils.equals(field, "hjAddress")) {
fieldSql.append(",hj_address as hjAddress\n");
}
if (StringUtils.equals(field, "jzAddress")) {
fieldSql.append(",jz_address as jzAddress\n");
}
if (StringUtils.equals(field, "educationDegree")) {
fieldSql.append(",education_degree as educationDegree\n");
}
if (StringUtils.equals(field, "maritalStatus")) {
fieldSql.append(",marital_status as maritalStatus\n");
}
}
listSql.append(fieldSql);
listSql.append("from t_people_info ");
countSql.append("from t_people_info ");
conditionSql.append("where 1=1 ");
if (conditionArray != null && !conditionArray.isEmpty()) {
for (int i = 0; i < conditionArray.size(); i++) {
JSONObject jsonObject = (JSONObject) conditionArray.get(i);
if (jsonObject == null || jsonObject.isEmpty()) {
continue;
}
Integer isAdd = jsonObject.getInteger("isAdd");
String field = jsonObject.getString("field");
Integer isContain = jsonObject.getInteger("isContain");
String inputStr = jsonObject.getString("inputStr");
if (isAdd == null) {
continue;
}
if (StringUtils.isEmpty(field)) {
continue;
}
if (isContain == null) {
continue;
}
if (StringUtils.isBlank(inputStr)) {
continue;
}
if (StringUtils.equals(field, "name")) {
if (isContain == 0) {
// 包含
if (isAdd == 0) {
conditionSql.append("and name like concat('%',?,'%') ");
} else {
conditionSql.append("or name like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 1) {
// 不包含
if (isAdd == 0) {
conditionSql.append("and name not like concat('%',?,'%') ");
} else {
conditionSql.append("or name not like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 2) {
// 为
if (isAdd == 0) {
conditionSql.append("and name=? ");
} else {
conditionSql.append("or name=? ");
}
paramList.add(inputStr);
} else if (isContain == 3) {
// 不为
if (isAdd == 0) {
conditionSql.append("and name<>? ");
} else {
conditionSql.append("or name<>? ");
}
paramList.add(inputStr);
} else if (isContain == 4) {
// 开头为
if (isAdd == 0) {
conditionSql.append("and name like concat('%',?) ");
} else {
conditionSql.append("or name like concat('%',?) ");
}
paramList.add(inputStr);
} else {
// 结尾为
if (isAdd == 0) {
conditionSql.append("and name not like concat(?,'%') ");
} else {
conditionSql.append("or name not like concat(?,'%') ");
}
paramList.add(inputStr);
}
}
if (StringUtils.equals(field, "cardNum")) {
if (isContain == 0) {
// 包含
if (isAdd == 0) {
conditionSql.append("and card_num like concat('%',?,'%') ");
} else {
conditionSql.append("or card_num like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 1) {
// 不包含
if (isAdd == 0) {
conditionSql.append("and card_num not like concat('%',?,'%') ");
} else {
conditionSql.append("or card_num not like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 2) {
// 为
if (isAdd == 0) {
conditionSql.append("and card_num=? ");
} else {
conditionSql.append("or card_num=? ");
}
paramList.add(inputStr);
} else if (isContain == 3) {
// 不为
if (isAdd == 0) {
conditionSql.append("and card_num<>? ");
} else {
conditionSql.append("or card_num<>? ");
}
paramList.add(inputStr);
} else if (isContain == 4) {
// 开头为
if (isAdd == 0) {
conditionSql.append("and card_num like concat('%',?) ");
} else {
conditionSql.append("or card_num like concat('%',?) ");
}
paramList.add(inputStr);
} else {
// 结尾为
if (isAdd == 0) {
conditionSql.append("and card_num not like concat(?,'%') ");
} else {
conditionSql.append("or card_num not like concat(?,'%') ");
}
paramList.add(inputStr);
}
}
if (StringUtils.equals(field, "sex")) {
if (isAdd == 0) {
conditionSql.append("and sex=? ");
} else {
conditionSql.append("or sex=? ");
}
paramList.add(inputStr);
}
if (StringUtils.equals(field, "birthDate")) {
if (isContain == 0) {
// 包含
if (isAdd == 0) {
conditionSql.append("and birth_date like concat('%',?,'%') ");
} else {
conditionSql.append("or birth_date like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 1) {
// 不包含
if (isAdd == 0) {
conditionSql.append("and birth_date not like concat('%',?,'%') ");
} else {
conditionSql.append("or birth_date not like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 2) {
// 为
if (isAdd == 0) {
conditionSql.append("and birth_date=? ");
} else {
conditionSql.append("or birth_date=? ");
}
paramList.add(inputStr);
} else if (isContain == 3) {
// 不为
if (isAdd == 0) {
conditionSql.append("and birth_date<>? ");
} else {
conditionSql.append("or birth_date<>? ");
}
paramList.add(inputStr);
} else if (isContain == 4) {
// 开头为
if (isAdd == 0) {
conditionSql.append("and birth_date like concat('%',?) ");
} else {
conditionSql.append("or birth_date like concat('%',?) ");
}
paramList.add(inputStr);
} else {
// 结尾为
if (isAdd == 0) {
conditionSql.append("and birth_date not like concat(?,'%') ");
} else {
conditionSql.append("or birth_date not like concat(?,'%') ");
}
paramList.add(inputStr);
}
}
if (StringUtils.equals(field, "mobile")) {
if (isContain == 0) {
// 包含
if (isAdd == 0) {
conditionSql.append("and mobile like concat('%',?,'%') ");
} else {
conditionSql.append("or mobile like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 1) {
// 不包含
if (isAdd == 0) {
conditionSql.append("and mobile not like concat('%',?,'%') ");
} else {
conditionSql.append("or mobile not like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 2) {
// 为
if (isAdd == 0) {
conditionSql.append("and mobile=? ");
} else {
conditionSql.append("or mobile=? ");
}
paramList.add(inputStr);
} else if (isContain == 3) {
// 不为
if (isAdd == 0) {
conditionSql.append("and mobile<>? ");
} else {
conditionSql.append("or mobile<>? ");
}
paramList.add(inputStr);
} else if (isContain == 4) {
// 开头为
if (isAdd == 0) {
conditionSql.append("and mobile like concat('%',?) ");
} else {
conditionSql.append("or mobile like concat('%',?) ");
}
paramList.add(inputStr);
} else {
// 结尾为
if (isAdd == 0) {
conditionSql.append("and mobile not like concat(?,'%') ");
} else {
conditionSql.append("or mobile not like concat(?,'%') ");
}
paramList.add(inputStr);
}
}
if (StringUtils.equals(field, "phone")) {
if (isContain == 0) {
// 包含
if (isAdd == 0) {
conditionSql.append("and phone like concat('%',?,'%') ");
} else {
conditionSql.append("or phone like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 1) {
// 不包含
if (isAdd == 0) {
conditionSql.append("and phone not like concat('%',?,'%') ");
} else {
conditionSql.append("or phone not like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 2) {
// 为
if (isAdd == 0) {
conditionSql.append("and phone=? ");
} else {
conditionSql.append("or phone=? ");
}
paramList.add(inputStr);
} else if (isContain == 3) {
// 不为
if (isAdd == 0) {
conditionSql.append("and phone<>? ");
} else {
conditionSql.append("or phone<>? ");
}
paramList.add(inputStr);
} else if (isContain == 4) {
// 开头为
if (isAdd == 0) {
conditionSql.append("and phone like concat('%',?) ");
} else {
conditionSql.append("or phone like concat('%',?) ");
}
paramList.add(inputStr);
} else {
// 结尾为
if (isAdd == 0) {
conditionSql.append("and phone not like concat(?,'%') ");
} else {
conditionSql.append("or phone not like concat(?,'%') ");
}
paramList.add(inputStr);
}
}
if (StringUtils.equals(field, "hjType")) {
if (isAdd == 0) {
conditionSql.append("and hj_type=? ");
} else {
conditionSql.append("or hj_type=? ");
}
paramList.add(inputStr);
}
if (StringUtils.equals(field, "hjAddress")) {
if (isContain == 0) {
// 包含
if (isAdd == 0) {
conditionSql.append("and hj_address like concat('%',?,'%') ");
} else {
conditionSql.append("or hj_address like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 1) {
// 不包含
if (isAdd == 0) {
conditionSql.append("and hj_address not like concat('%',?,'%') ");
} else {
conditionSql.append("or hj_address not like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 2) {
// 为
if (isAdd == 0) {
conditionSql.append("and hj_address=? ");
} else {
conditionSql.append("or hj_address=? ");
}
paramList.add(inputStr);
} else if (isContain == 3) {
// 不为
if (isAdd == 0) {
conditionSql.append("and hj_address<>? ");
} else {
conditionSql.append("or hj_address<>? ");
}
paramList.add(inputStr);
} else if (isContain == 4) {
// 开头为
if (isAdd == 0) {
conditionSql.append("and hj_address like concat('%',?) ");
} else {
conditionSql.append("or hj_address like concat('%',?) ");
}
paramList.add(inputStr);
} else {
// 结尾为
if (isAdd == 0) {
conditionSql.append("and hj_address not like concat(?,'%') ");
} else {
conditionSql.append("or hj_address not like concat(?,'%') ");
}
paramList.add(inputStr);
}
}
if (StringUtils.equals(field, "jzAddress")) {
if (isContain == 0) {
// 包含
if (isAdd == 0) {
conditionSql.append("and jz_address like concat('%',?,'%') ");
} else {
conditionSql.append("or jz_address like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 1) {
// 不包含
if (isAdd == 0) {
conditionSql.append("and jz_address not like concat('%',?,'%') ");
} else {
conditionSql.append("or jz_address not like concat('%',?,'%') ");
}
paramList.add(inputStr);
} else if (isContain == 2) {
// 为
if (isAdd == 0) {
conditionSql.append("and jz_address=? ");
} else {
conditionSql.append("or jz_address=? ");
}
paramList.add(inputStr);
} else if (isContain == 3) {
// 不为
if (isAdd == 0) {
conditionSql.append("and jz_address<>? ");
} else {
conditionSql.append("or jz_address<>? ");
}
paramList.add(inputStr);
} else if (isContain == 4) {
// 开头为
if (isAdd == 0) {
conditionSql.append("and jz_address like concat('%',?) ");
} else {
conditionSql.append("or jz_address like concat('%',?) ");
}
paramList.add(inputStr);
} else {
// 结尾为
if (isAdd == 0) {
conditionSql.append("and jz_address not like concat(?,'%') ");
} else {
conditionSql.append("or jz_address not like concat(?,'%') ");
}
paramList.add(inputStr);
}
}
if (StringUtils.equals(field, "educationDegree")) {
if (isAdd == 0) {
conditionSql.append("and education_degree=? ");
} else {
conditionSql.append("or education_degree=? ");
}
paramList.add(inputStr);
}
if (StringUtils.equals(field, "maritalStatus")) {
if (isAdd == 0) {
conditionSql.append("and marital_status=? ");
} else {
conditionSql.append("or marital_status=? ");
}
paramList.add(inputStr);
}
}
}
if (CollectionUtils.isNotEmpty(areaCodeList)) {
conditionSql.append("and community_area_code in (");
for (int i = 0; i < areaCodeList.size() - 1; i++) {
conditionSql.append("?,");
paramList.add(areaCodeList.get(i));
}
conditionSql.append("?)");
paramList.add(areaCodeList.get(areaCodeList.size() - 1));
}
paramList1 = paramList;
if (type == 0) {
listSql.append(conditionSql).append(" order by created desc limit ?,?");
} else {
listSql.append(conditionSql).append(" order by created desc");
}
countSql.append(conditionSql);
if (type == 0) {
int count = this.jdbcTemplate.queryForObject(countSql.toString(), Integer.class, paramList1.toArray());
page.setCurrent(pageNum);
if (count / pageSize == 0) {
page.setPages(count % pageSize);
} else {
page.setPages(count % pageSize + 1);
}
page.setSize(pageSize);
page.setTotal(count);
paramList.add((pageNum - 1) * pageSize);
paramList.add(pageSize);
}
List<PeopleInfo> peopleList = this.jdbcTemplate.query(listSql.toString(), paramList.toArray(),
new BeanPropertyRowMapper<>(PeopleInfo.class));
if (CollectionUtils.isNotEmpty(peopleList)) {
page.setRecords(peopleList);
} else {
page.setRecords(Lists.newArrayList());
}
return page;
}
@Override
public AnalysisVO selectPeopleNumChange(String areaCode, String dateStr) {
AnalysisVO vo = new AnalysisVO();
// 社会救助人口柱形图数据
MainComlexPillarDataVO mainComlexPillarDataVO = new MainComlexPillarDataVO();
List<ComplexPillarDataVO> byPillarDataVOList = this.baseMapper.selectByPeopleNumChange(areaCode, dateStr);
mainComlexPillarDataVO
.setPillarDataVOList(byPillarDataVOList == null ? Collections.emptyList() : byPillarDataVOList);
List<String> bypillarTitleList = Lists.newLinkedList();
if (byPillarDataVOList != null) {
for (ComplexPillarDataVO complexPillarDataVO : byPillarDataVOList) {
bypillarTitleList.add(complexPillarDataVO.getTitle());
}
}
mainComlexPillarDataVO
.setPillarTitleList(bypillarTitleList == null ? Collections.emptyList() : bypillarTitleList);
vo.setMainByComlexPillarDataVO(mainComlexPillarDataVO);
// 社会救助资金柱形图数据
mainComlexPillarDataVO = new MainComlexPillarDataVO();
List<ComplexPillarDataVO> byBillPillarDataVOList = this.baseMapper.selectByPeopleBillChange(areaCode, dateStr);
mainComlexPillarDataVO
.setPillarDataVOList(byBillPillarDataVOList == null ? Collections.emptyList() : byBillPillarDataVOList);
List<String> byBillpillarTitleList = Lists.newLinkedList();
if (byBillPillarDataVOList != null) {
for (ComplexPillarDataVO complexPillarDataVO : byBillPillarDataVOList) {
byBillpillarTitleList.add(complexPillarDataVO.getTitle());
}
}
mainComlexPillarDataVO
.setPillarTitleList(byBillpillarTitleList == null ? Collections.emptyList() : byBillpillarTitleList);
vo.setMainByBillComlexPillarDataVO(mainComlexPillarDataVO);
// 居家养老人口柱形图数据
mainComlexPillarDataVO = new MainComlexPillarDataVO();
List<ComplexPillarDataVO> oldPillarDataVOList = this.baseMapper.selectOldPeopleNumChange(areaCode, dateStr);
List<String> oldpillarTitleList = Lists.newLinkedList();
if (oldPillarDataVOList != null) {
for (ComplexPillarDataVO complexPillarDataVO : oldPillarDataVOList) {
oldpillarTitleList.add(complexPillarDataVO.getTitle());
}
}
mainComlexPillarDataVO
.setPillarDataVOList(oldPillarDataVOList == null ? Collections.emptyList() : oldPillarDataVOList);
mainComlexPillarDataVO.setPillarTitleList(oldpillarTitleList);
vo.setMainOldComlexPillarDataVO(mainComlexPillarDataVO);
// 居家养老资金柱形图数据
mainComlexPillarDataVO = new MainComlexPillarDataVO();
List<ComplexPillarDataVO> oldBillPillarDataVOList = this.baseMapper.selectOldPeopleBillChange(areaCode,
dateStr);
List<String> oldBillpillarTitleList = Lists.newLinkedList();
if (oldBillPillarDataVOList != null) {
for (ComplexPillarDataVO complexPillarDataVO : oldBillPillarDataVOList) {
oldBillpillarTitleList.add(complexPillarDataVO.getTitle());
}
}
mainComlexPillarDataVO.setPillarDataVOList(
oldBillPillarDataVOList == null ? Collections.emptyList() : oldBillPillarDataVOList);
mainComlexPillarDataVO.setPillarTitleList(oldBillpillarTitleList);
vo.setMainOldBillComlexPillarDataVO(mainComlexPillarDataVO);
// 残疾人人口柱形图数据
mainComlexPillarDataVO = new MainComlexPillarDataVO();
List<ComplexPillarDataVO> disabledPillarDataVOList = this.baseMapper.selectDisabledPeopleNumChange(areaCode,
dateStr);
mainComlexPillarDataVO.setPillarDataVOList(
disabledPillarDataVOList == null ? Collections.emptyList() : disabledPillarDataVOList);
List<String> disabledPillarTitleList = Lists.newLinkedList();
if (disabledPillarDataVOList != null) {
for (ComplexPillarDataVO complexPillarDataVO : disabledPillarDataVOList) {
disabledPillarTitleList.add(complexPillarDataVO.getTitle());
}
}
mainComlexPillarDataVO.setPillarTitleList(
disabledPillarTitleList == null ? Collections.emptyList() : disabledPillarTitleList);
vo.setMainDisabledComlexPillarDataVO(mainComlexPillarDataVO);
// 残疾人资金柱形图数据
mainComlexPillarDataVO = new MainComlexPillarDataVO();
List<ComplexPillarDataVO> disabledBillPillarDataVOList = this.baseMapper
.selectDisabledPeopleBillChange(areaCode, dateStr);
mainComlexPillarDataVO.setPillarDataVOList(
disabledBillPillarDataVOList == null ? Collections.emptyList() : disabledBillPillarDataVOList);
List<String> disabledBillPillarTitleList = Lists.newLinkedList();
if (disabledBillPillarDataVOList != null) {
for (ComplexPillarDataVO complexPillarDataVO : disabledBillPillarDataVOList) {
disabledBillPillarTitleList.add(complexPillarDataVO.getTitle());
}
}
mainComlexPillarDataVO.setPillarTitleList(
disabledBillPillarTitleList == null ? Collections.emptyList() : disabledBillPillarTitleList);
vo.setMainDisabledBillComlexPillarDataVO(mainComlexPillarDataVO);
return vo;
}
@Override
public AnalysisByVO analysisBy(String areaCode, String dateStr) {
// 年龄结构饼图
AnalysisByVO vo = new AnalysisByVO();
List<BieDataVO> bieDataVOList = this.baseMapper.selectByPeopleAgeNumChange(dateStr);
vo.setBieDataVOList(bieDataVOList == null ? Collections.emptyList() : bieDataVOList);
// 困难种类饼图
bieDataVOList = this.baseMapper.selectByPeopleTypeNumChange(dateStr);
vo.setBieDataVOList1(bieDataVOList == null ? Collections.emptyList() : bieDataVOList);
// 区域分布柱形图
MainComlexPillarDataVO1 mainComlexPillarDataVO = new MainComlexPillarDataVO1();
List<ComplexPillarDataVO1> pillarDataVOList = this.baseMapper.selectByPeopleTypeNumPillerChange(areaCode,
dateStr);
mainComlexPillarDataVO
.setPillarDataVOList(pillarDataVOList == null ? Collections.emptyList() : pillarDataVOList);
List<String> pillarTitleList = Lists.newLinkedList();
if (pillarDataVOList != null) {
for (ComplexPillarDataVO1 complexPillarDataVO : pillarDataVOList) {
pillarTitleList.add(complexPillarDataVO.getTitle());
}
}
mainComlexPillarDataVO.setPillarTitleList(pillarTitleList == null ? Collections.emptyList() : pillarTitleList);
vo.setMainComlexPillarDataVO1(mainComlexPillarDataVO);
// 查询折线图信息
MainLineDataVO mainLineDataVO = new MainLineDataVO();
List<LineDataVO> lineDataVOList = Lists.newLinkedList();
List<PeoleAreaVO> peoleAreaVOList = this.baseMapper.selectByPeopleSupplyStartTimeNumChange(dateStr);
Map<String, List<PeoleAreaVO>> groupBy = peoleAreaVOList.stream()
.collect(Collectors.groupingBy(PeoleAreaVO::getAreaCode));
if (groupBy != null) {
groupBy.forEach((k, v) -> {
LineDataVO lineDataVO = new LineDataVO();
lineDataVO.setName(k);
lineDataVO.setType("line");
lineDataVO.setStack("人口");
List<Long> data = v.stream().map((peoleAreaVO) -> peoleAreaVO.getNum()).collect(Collectors.toList());
lineDataVO.setData(data);
lineDataVOList.add(lineDataVO);
});
}
mainLineDataVO.setLineDataVOList(lineDataVOList == null ? Collections.emptyList() : lineDataVOList);
List<String> zxTitleList = new LinkedList<String>() {
{
add("一月");
add("二月");
add("三月");
add("四月");
add("五月");
add("六月");
add("七月");
add("八月");
add("九月");
add("十月");
add("十一月");
add("十二月");
}
};
mainLineDataVO.setLineTitleList(zxTitleList);
vo.setMainLineDataVO(mainLineDataVO);
// 困难家庭办理时间(累计)
MainComlexPillarDataVO2 mainComlexPillarDataVO2 = new MainComlexPillarDataVO2();
List<ComplexPillarDataVO2> pillarDataVOList1 = this.baseMapper
.selectByPeopleAllStartSupplyNumPillerChange(dateStr);
mainComlexPillarDataVO2
.setPillarDataVOList(pillarDataVOList1 == null ? Collections.emptyList() : pillarDataVOList1);
List<String> pillarTitleList1 = Lists.newLinkedList();
if (pillarDataVOList != null) {
for (ComplexPillarDataVO2 complexPillarDataVO : pillarDataVOList1) {
pillarTitleList1.add(complexPillarDataVO.getTitle());
}
}
mainComlexPillarDataVO2
.setPillarTitleList(pillarTitleList1 == null ? Collections.emptyList() : pillarTitleList1);
vo.setMainComlexPillarDataVO2(mainComlexPillarDataVO2);
return vo;
}
@Override
public AnalysisOldVO analysisOld(String areaCode, String dateStr) {
// 年龄结构饼图
AnalysisOldVO vo = new AnalysisOldVO();
List<BieDataVO> bieDataVOList = this.baseMapper.selectOldPeopleAgeNumChange(dateStr);
vo.setBieDataVOList(bieDataVOList == null ? Collections.emptyList() : bieDataVOList);
// 区域分布柱形图
MainComlexPillarDataVO3 mainComlexPillarDataVO = new MainComlexPillarDataVO3();
List<ComplexPillarDataVO3> pillarDataVOList = this.baseMapper.selectByPeopleOldNumPillerChange(areaCode,
dateStr);
mainComlexPillarDataVO
.setPillarDataVOList(pillarDataVOList == null ? Collections.emptyList() : pillarDataVOList);
List<String> pillarTitleList = Lists.newLinkedList();
if (pillarDataVOList != null) {
for (ComplexPillarDataVO3 complexPillarDataVO : pillarDataVOList) {
pillarTitleList.add(complexPillarDataVO.getTitle());
}
}
mainComlexPillarDataVO.setPillarTitleList(pillarTitleList == null ? Collections.emptyList() : pillarTitleList);
vo.setMainComlexPillarDataVO(mainComlexPillarDataVO);
// abc
bieDataVOList = this.baseMapper.selectOldPeopleABCNumChange(dateStr);
vo.setBieDataVOList1(bieDataVOList == null ? Collections.emptyList() : bieDataVOList);
// abc柱形图
mainComlexPillarDataVO = new MainComlexPillarDataVO3();
pillarDataVOList = this.baseMapper.selectByPeopleOldABCNumPillerChange(areaCode, dateStr);
mainComlexPillarDataVO
.setPillarDataVOList(pillarDataVOList == null ? Collections.emptyList() : pillarDataVOList);
pillarTitleList = Lists.newLinkedList();
if (pillarDataVOList != null) {
for (ComplexPillarDataVO3 complexPillarDataVO : pillarDataVOList) {
pillarTitleList.add(complexPillarDataVO.getTitle());
}
}
mainComlexPillarDataVO.setPillarTitleList(pillarTitleList == null ? Collections.emptyList() : pillarTitleList);
vo.setMainComlexPillarDataVO1(mainComlexPillarDataVO);
return vo;
}
@Override
public AnalysisDisabledVO analysisDisabled(String areaCode, String dateStr) {
// 年龄结构饼图
AnalysisDisabledVO vo = new AnalysisDisabledVO();
List<BieDataVO> bieDataVOList = this.baseMapper.selectDisabledPeopleAgeNumChange(dateStr);
vo.setBieDataVOList(bieDataVOList == null ? Collections.emptyList() : bieDataVOList);
bieDataVOList = this.baseMapper.selectDisabledPeopleTypeNumChange(dateStr);
vo.setBieDataVOList1(bieDataVOList == null ? Collections.emptyList() : bieDataVOList);
// 查询折线图信息
MainLineDataVO mainLineDataVO = new MainLineDataVO();
List<LineDataVO> lineDataVOList = Lists.newLinkedList();
List<PeoleAreaVO> peoleAreaVOList = this.baseMapper.selectByPeopleSupplyStartTimeNumChange(dateStr);
Collections.sort(peoleAreaVOList, Comparator.comparing(PeoleAreaVO::getSortNum));
List<String> zxTitleList = new LinkedList<String>();
Map<Integer, List<PeoleAreaVO>> groupBy = peoleAreaVOList.stream()
.collect(Collectors.groupingBy(PeoleAreaVO::getType1));
if (groupBy != null) {
groupBy.forEach((k, v) -> {
LineDataVO lineDataVO = new LineDataVO();
if (k == 1) {
lineDataVO.setName("视力");
} else if (k == 2) {
lineDataVO.setName("听力");
} else if (k == 3) {
lineDataVO.setName("言语");
} else if (k == 4) {
lineDataVO.setName("肢体");
} else if (k == 5) {
lineDataVO.setName("智力");
} else if (k == 6) {
lineDataVO.setName("精神");
} else if (k == 7) {
lineDataVO.setName("多重");
}
lineDataVO.setType("line");
lineDataVO.setStack("人口");
List<Long> data = v.stream().map((peoleAreaVO) -> peoleAreaVO.getNum()).collect(Collectors.toList());
lineDataVO.setData(data);
lineDataVOList.add(lineDataVO);
List<PeoleAreaVO> peopleAreaVOList = v;
if (zxTitleList.size() == 0) {
if (peopleAreaVOList != null) {
for (PeoleAreaVO peopleAreaVO : peopleAreaVOList) {
zxTitleList.add(peopleAreaVO.getAreaCode());
}
}
}
});
}
mainLineDataVO.setLineDataVOList(lineDataVOList == null ? Collections.emptyList() : lineDataVOList);
mainLineDataVO.setLineTitleList(zxTitleList);
vo.setMainLineDataVO(mainLineDataVO);
return vo;
}
}