WarningStaService.java 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package com.iden.bms.service;
  2. import cn.hutool.core.collection.CollUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.core.metadata.IPage;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.iden.common.entity.*;
  8. import com.iden.common.enums.*;
  9. import com.iden.common.service.*;
  10. import com.iden.common.vo.*;
  11. import org.springframework.beans.BeanUtils;
  12. import org.springframework.stereotype.Service;
  13. import javax.annotation.Resource;
  14. import java.util.ArrayList;
  15. import java.util.List;
  16. /**
  17. *
  18. * @author makejava
  19. * @since 2021-05-21 00:08:38
  20. */
  21. @Service
  22. public class WarningStaService {
  23. @Resource
  24. private IdenWarningStaService idenWarningStaService;
  25. public Integer countCommunity(String type,String district, String subdistrict, String communityName, String beginDate, String endDate, UserLoginedConvertVO loginUser) {
  26. QueryWrapper<IdenWarningSta> queryWrapper = new QueryWrapper<>();
  27. queryWrapper.lambda().eq(IdenWarningSta::getType,type)
  28. .like(StrUtil.isNotEmpty(communityName),IdenWarningSta::getCommunityName,communityName)
  29. .eq(StrUtil.isNotEmpty(district),IdenWarningSta::getDistrict,district)
  30. .eq(StrUtil.isNotEmpty(subdistrict),IdenWarningSta::getSubdistrict,subdistrict)
  31. .ge(StrUtil.isNotEmpty(beginDate),IdenWarningSta::getDataDate,beginDate)
  32. .le(StrUtil.isNotEmpty(endDate),IdenWarningSta::getDataDate,endDate);
  33. queryWrapper.groupBy("community_id");
  34. queryWrapper.select(
  35. "community_id communityId",
  36. "max(community_code) communityCode",
  37. "max(community_name) communityName",
  38. "max(district) district",
  39. "max(subdistrict) subdistrict",
  40. "max(data_date) dataDate",
  41. "IFNULL(SUM(total),0) total"
  42. );
  43. return this.idenWarningStaService.count(queryWrapper);
  44. }
  45. /**
  46. * 查询预警统计列表
  47. * @return
  48. */
  49. public IPage<WarningStaVO> listWarningSta(String type, String district, String subdistrict, String communityName, String beginDate, String endDate, UserLoginedConvertVO loginUser, PageReqVO pageReqVo) {
  50. IPage<IdenWarningSta> page = new Page<>(pageReqVo.getCurrent(), pageReqVo.getPageSize());
  51. QueryWrapper<IdenWarningSta> queryWrapper = new QueryWrapper<>();
  52. queryWrapper.lambda().eq(IdenWarningSta::getType,type)
  53. .like(StrUtil.isNotEmpty(communityName), IdenWarningSta::getCommunityName,communityName)
  54. .eq(StrUtil.isNotEmpty(district),IdenWarningSta::getDistrict,district)
  55. .eq(StrUtil.isNotEmpty(subdistrict),IdenWarningSta::getSubdistrict,subdistrict)
  56. .ge(StrUtil.isNotEmpty(beginDate),IdenWarningSta::getDataDate,beginDate)
  57. .le(StrUtil.isNotEmpty(endDate),IdenWarningSta::getDataDate,endDate)
  58. .orderByAsc(IdenWarningSta::getId);
  59. queryWrapper.groupBy("community_id");
  60. queryWrapper.select(
  61. "community_id communityId",
  62. "max(community_code) communityCode",
  63. "max(community_name) communityName",
  64. "max(district) district",
  65. "max(subdistrict) subdistrict",
  66. "max(data_date) dataDate",
  67. "IFNULL(SUM(total),0) total"
  68. );
  69. IPage<IdenWarningSta> pageRes = this.idenWarningStaService.page(page, queryWrapper);
  70. IPage<WarningStaVO> results = new Page<>(pageRes.getCurrent(),pageRes.getSize(),pageRes.getTotal());
  71. if(CollUtil.isNotEmpty(pageRes.getRecords())){
  72. List<WarningStaVO> list = new ArrayList<>();
  73. pageRes.getRecords().forEach(item -> {
  74. WarningStaVO resVO = new WarningStaVO();
  75. BeanUtils.copyProperties(item,resVO);
  76. resVO.setTypeName(WarningTypeEnum.getValueToName(resVO.getType()));
  77. list.add(resVO);
  78. });
  79. results.setRecords(list);
  80. }
  81. return results;
  82. }
  83. }