Browse Source

警情综合相关接口代码开发

jichaobo 2 years ago
parent
commit
48d02cdb1b

+ 85 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemPoliceInfoController.java

@@ -1,9 +1,20 @@
 package com.usky.fire.controller.web;
 
 
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.fire.domain.DemPoliceInfo;
+import com.usky.fire.service.DemMicroStationService;
+import com.usky.fire.service.DemPoliceInfoService;
+import com.usky.fire.service.vo.AlertStatisticsVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
-import org.springframework.stereotype.Controller;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,9 +24,81 @@ import org.springframework.stereotype.Controller;
  * @author JCB
  * @since 2022-10-24
  */
-@Controller
+@RestController
 @RequestMapping("/demPoliceInfo")
 public class DemPoliceInfoController {
 
+    @Autowired
+    private DemMicroStationService demMicroStationService;
+
+    @Autowired
+    private DemPoliceInfoService demPoliceInfoService;
+
+    /**
+     * 综合警情-撒点
+     *
+     * @param streetTown    街镇
+     * @param scattererType 撒点类型
+     * @return
+     */
+    @GetMapping("synthesizePoliceSituationScatterer")
+    public ApiResult<List<Object>> synthesizePoliceSituationScatterer(@RequestParam(value = "streetTown", required = false) String streetTown,
+                                                                      @RequestParam(value = "scattererType", required = false) String scattererType) {
+        return ApiResult.success(demMicroStationService.synthesizePoliceSituationScatterer(streetTown, scattererType));
+    }
+
+    /**
+     * 综合警情-查询每年12个月警情
+     *
+     * @return
+     */
+    @GetMapping("/alertStatisticsByMonth")
+    public ApiResult<Map<String, List<AlertStatisticsVO>>> getAlertStatisticsByMonth(@RequestParam String startTime,
+                                                                                     @RequestParam String endTime,
+                                                                                     @RequestParam(value = "streetTown", required = false) String streetTown) {
+        return ApiResult.success(demPoliceInfoService.getAlertStatisticsByMonth(startTime, endTime, streetTown));
+    }
+
+    /**
+     * 查询不同警情(社会救助,警情,火灾)的占比
+     *
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     * @return
+     */
+    @GetMapping("/alertStatistics")
+    public ApiResult<List<AlertStatisticsVO>> getAlertStatistics(@RequestParam(value = "startTime") String startTime,
+                                                                 @RequestParam(value = "endTime") String endTime,
+                                                                 @RequestParam(value = "streetTown", required = false) String streetTown) {
+        return ApiResult.success(demPoliceInfoService.getAlertStatistics(startTime, endTime, streetTown));
+    }
+
+    /**
+     * 警情详细信息
+     *
+     * @param current   页数
+     * @param size      条数
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     * @return
+     */
+    @GetMapping("/page")
+    public ApiResult<CommonPage<DemPoliceInfo>> page(@RequestParam(value = "startTime", required = false) String startTime,
+                                                     @RequestParam(value = "endTime", required = false) String endTime,
+                                                     @RequestParam(value = "streetTown", required = false) String streetTown,
+                                                     @RequestParam(value = "current", required = false, defaultValue = "1") Integer current,
+                                                     @RequestParam(value = "size", required = false, defaultValue = "10") Integer size) {
+        return ApiResult.success(demPoliceInfoService.page(current, size, startTime, endTime, streetTown));
+    }
+
+
+    /**
+     * 火灾类型
+     * @return
+     */
+    @GetMapping("fireType")
+    public ApiResult<List<String>> getFireType(){
+        return ApiResult.success(demPoliceInfoService.getFireType());
+    }
 }
 

+ 4 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemFireStatisticsAttachService.java

@@ -22,4 +22,8 @@ public interface DemFireStatisticsAttachService extends CrudService<DemFireStati
      * @return
      */
     List<DemFireStatisticsAttach> fireAccidentStatistic(List<String> fireNumberList);
+
+    List<String> fireCauseType();
+
+    Integer fireStatisticsAttachCount(String fireCauseType1);
 }

+ 4 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemMicroStationService.java

@@ -51,4 +51,8 @@ public interface DemMicroStationService extends CrudService<DemMicroStation> {
      * @return
      */
     List<Map<String, Object>> microStationDroplistList(String branchName);
+
+    List<Object> microStationScatterer(String streetTown);
+
+    List<Object> synthesizePoliceSituationScatterer(String streetTown, String scattererType);
 }

+ 13 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemPoliceInfoService.java

@@ -1,7 +1,13 @@
 package com.usky.fire.service;
 
+import com.usky.common.core.bean.CommonPage;
 import com.usky.fire.domain.DemPoliceInfo;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.service.vo.AlertStatisticsVO;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +19,11 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface DemPoliceInfoService extends CrudService<DemPoliceInfo> {
 
+    Map<String, List<AlertStatisticsVO>> getAlertStatisticsByMonth(String startTime, String endTime, String streetTown);
+
+    List<AlertStatisticsVO> getAlertStatistics(String startTime, String endTime, String streetTown);
+
+    CommonPage<DemPoliceInfo> page(Integer current, Integer size, String startTime, String endTime, String streetTown);
+
+    List<String> getFireType();
 }

+ 3 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemWaterSourceService.java

@@ -4,6 +4,7 @@ import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.fire.domain.DemWaterSource;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -40,4 +41,6 @@ public interface DemWaterSourceService extends CrudService<DemWaterSource> {
      * @param id 主键ID
      */
     void delWaterSource(Integer id);
+
+    List<Object> waterSourceList(String streetTown);
 }

+ 26 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemFireStatisticsAttachServiceImpl.java

@@ -1,6 +1,8 @@
 package com.usky.fire.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.fire.domain.DemFireStatisticsAttach;
@@ -8,6 +10,7 @@ import com.usky.fire.mapper.DemFireStatisticsAttachMapper;
 import com.usky.fire.service.DemFireStatisticsAttachService;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -30,4 +33,27 @@ public class DemFireStatisticsAttachServiceImpl extends AbstractCrudService<DemF
         List<DemFireStatisticsAttach> list = this.list(queryWrapper);
         return list;
     }
+
+    @Override
+    public List<String> fireCauseType(){
+        LambdaQueryWrapper<DemFireStatisticsAttach> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(DemFireStatisticsAttach::getFireCauseType1)
+                .groupBy(DemFireStatisticsAttach::getFireCauseType1);
+        List<DemFireStatisticsAttach> list1 = this.list(queryWrapper);
+        List<String> list = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(list1)){
+            for (int i = 0; i < list1.size(); i++) {
+                list.add(list1.get(i).getFireCauseType1());
+            }
+        }
+        return list;
+    }
+
+    @Override
+    public Integer fireStatisticsAttachCount(String fireCauseType1){
+        LambdaQueryWrapper<DemFireStatisticsAttach> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(StringUtils.isNotBlank(fireCauseType1),DemFireStatisticsAttach::getFireCauseType1, fireCauseType1);
+        int count = this.count(queryWrapper);
+        return count;
+    }
 }

+ 58 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemMicroStationServiceImpl.java

@@ -7,10 +7,14 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.exception.BusinessException;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.fire.domain.DemMicroStation;
 import com.usky.fire.mapper.DemMicroStationMapper;
+import com.usky.fire.service.BaseCompanyService;
 import com.usky.fire.service.DemMicroStationService;
+import com.usky.fire.service.DemWaterSourceService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
@@ -27,8 +31,13 @@ import java.util.*;
 @Service
 public class DemMicroStationServiceImpl extends AbstractCrudService<DemMicroStationMapper, DemMicroStation> implements DemMicroStationService {
 
+    @Autowired
+    private BaseCompanyService baseCompanyService;
+    @Autowired
+    private DemWaterSourceService demWaterSourceService;
+
     @Override
-    public CommonPage<Map<String, Object>> microStationList(String squadron, String stationName,String stationType,Integer id, Integer pageNum, Integer pageSize) {
+    public CommonPage<Map<String, Object>> microStationList(String squadron, String stationName, String stationType, Integer id, Integer pageNum, Integer pageSize) {
         List<Map<String, Object>> list = new ArrayList<>();
         IPage<DemMicroStation> page = new Page<>(pageNum, pageSize);
         LambdaQueryWrapper<DemMicroStation> queryWrapper = Wrappers.lambdaQuery();
@@ -38,7 +47,7 @@ public class DemMicroStationServiceImpl extends AbstractCrudService<DemMicroStat
                 DemMicroStation::getChargePhone, DemMicroStation::getStationType, DemMicroStation::getLongitude,
                 DemMicroStation::getDimension, DemMicroStation::getCreateTime, DemMicroStation::getUpdateTime)
                 .eq(DemMicroStation::getDeleteFlag, 0)
-                .eq(StringUtils.isNotBlank(stationType),DemMicroStation::getStationType,stationType)
+                .eq(StringUtils.isNotBlank(stationType), DemMicroStation::getStationType, stationType)
                 .like(StringUtils.isNotBlank(squadron), DemMicroStation::getSquadron, squadron)
                 .like(StringUtils.isNotBlank(stationName), DemMicroStation::getStationName, stationName)
                 .orderByDesc(DemMicroStation::getId);
@@ -101,4 +110,51 @@ public class DemMicroStationServiceImpl extends AbstractCrudService<DemMicroStat
         return list;
     }
 
+
+    @Override
+    public List<Object> microStationScatterer(String streetTown) {
+        LambdaQueryWrapper<DemMicroStation> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(DemMicroStation::getId, DemMicroStation::getStationName, DemMicroStation::getLongitude,
+                DemMicroStation::getDimension)
+                .eq(DemMicroStation::getDeleteFlag, "0")
+                .eq(StringUtils.isNotBlank(streetTown), DemMicroStation::getRemark, streetTown)
+                .orderByDesc(DemMicroStation::getId);
+        List<DemMicroStation> list1 = this.list();
+        List<Object> list = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(list1)) {
+            for (int i = 0; i < list1.size(); i++) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("id", list1.get(i).getId());
+                map.put("stationName", list1.get(i).getStationName());
+                map.put("longitude", list1.get(i).getLongitude());
+                map.put("latitude", list1.get(i).getDimension());
+                list.add(map);
+            }
+        }
+        return list;
+    }
+
+    @Override
+    public List<Object> synthesizePoliceSituationScatterer(String streetTown, String scattererType){
+        List<Object> list = new ArrayList<>();
+        switch (scattererType) {
+            case "消防站":
+                list = this.microStationScatterer(streetTown);
+                break;
+            case "监控":
+                break;
+            case "重点单位":
+                list = baseCompanyService.companyScatterer(streetTown,"1");
+                break;
+            case "消防车":
+                break;
+            case "消火栓/天然水源":
+                list = demWaterSourceService.waterSourceList(streetTown);
+                break;
+            default:
+                throw new BusinessException("该类型点位未定义");
+        }
+        return list;
+    }
+
 }

+ 200 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemPoliceInfoServiceImpl.java

@@ -1,11 +1,33 @@
 package com.usky.fire.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.common.core.util.Arith;
+import com.usky.common.core.util.DateUtils;
+import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.fire.domain.DemPoliceInfo;
 import com.usky.fire.mapper.DemPoliceInfoMapper;
+import com.usky.fire.service.DemFireStatisticsAttachService;
 import com.usky.fire.service.DemPoliceInfoService;
-import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.service.vo.AlertStatisticsVO;
+import com.usky.fire.service.vo.FireLevelRatioVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.*;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  * 警情信息 服务实现类
@@ -17,4 +39,181 @@ import org.springframework.stereotype.Service;
 @Service
 public class DemPoliceInfoServiceImpl extends AbstractCrudService<DemPoliceInfoMapper, DemPoliceInfo> implements DemPoliceInfoService {
 
+    public static final String[] ALERT_TYPE = {"火灾", "社会救助", "抢险救援", "排爆安检"};
+
+    @Autowired
+    private DemFireStatisticsAttachService demFireStatisticsAttachService;
+
+    @Override
+    public Map<String, List<AlertStatisticsVO>> getAlertStatisticsByMonth(String startTime, String endTime, String streetTown) {
+        QueryWrapper<DemPoliceInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("month(filing_time) monthTime", "COUNT(id) as aCount", "case_type as aType")
+                .between("filing_time", startTime, endTime)
+                .eq(StringUtils.isNotBlank(streetTown), "street_town", streetTown)
+                .groupBy("monthTime", "aType");
+        Map<String, List<AlertStatisticsVO>> typeMap = enhanceList(this.listMaps(queryWrapper));
+        Date maxDate = getMaxDate();
+        Date minDate = getMinDate();
+        int distanceOfTwoDateYear = Integer.parseInt(DateUtils.getYear(maxDate)) - Integer.parseInt(DateUtils.getYear(minDate)) + 1;
+        perfect(typeMap, 13, distanceOfTwoDateYear, 1);
+        return typeMap;
+    }
+
+    @Override
+    public List<AlertStatisticsVO> getAlertStatistics(String startTime, String endTime, String streetTown) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        Date startTime1 = null;
+        Date endTime1 = null;
+        if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) {
+            try {
+                startTime1 = simpleDateFormat.parse(startTime);
+                endTime1 = simpleDateFormat.parse(endTime);
+            } catch (Exception e) {
+                throw new BusinessException("时间格式错误");
+            }
+        }
+        //获取同比
+        Date upStartTime = DateUtils.addYears(startTime1, -1);
+        Date upEndTime = DateUtils.addYears(endTime1, -1);
+        List<AlertStatisticsVO> list = new ArrayList<>();
+        list.add(getAsV(startTime1, endTime1, ALERT_TYPE[0], streetTown));
+        list.add(getAsV(startTime1, endTime1, ALERT_TYPE[1], streetTown));
+        list.add(getAsV(startTime1, endTime1, ALERT_TYPE[2], streetTown));
+        list.add(getAsV(startTime1, endTime1, ALERT_TYPE[3], streetTown));
+        list.forEach(alertStatisticsVO -> {
+            AlertStatisticsVO upAsv = getAsV(upStartTime, upEndTime, alertStatisticsVO.getType(), streetTown);
+            Integer number = alertStatisticsVO.getNumber();
+            Integer upNumber = upAsv.getNumber();
+            if (number.equals(upNumber)) {
+                alertStatisticsVO.setSameStatus(0);
+            } else if (number > upNumber) {
+                alertStatisticsVO.setSameStatus(1);
+            } else {
+                alertStatisticsVO.setSameStatus(2);
+            }
+            if (0 != upNumber) {
+                double radio = Arith.div(Arith.sub(number, upNumber), upNumber);
+                alertStatisticsVO.setRadio(Math.abs(radio));
+            } else {
+                if (number != 0) {
+                    alertStatisticsVO.setRadio(1.00);
+                } else {
+                    alertStatisticsVO.setRadio(0.00);
+                }
+            }
+        });
+        return list;
+    }
+
+    @Override
+    public CommonPage<DemPoliceInfo> page(Integer current, Integer size, String startTime, String endTime, String streetTown) {
+        IPage<DemPoliceInfo> page = new Page<>(current, size);
+        LambdaQueryWrapper<DemPoliceInfo> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime), DemPoliceInfo::getCreateTime, startTime, endTime)
+                .eq(StringUtils.isNotBlank(streetTown), DemPoliceInfo::getStreetTown, streetTown)
+                .orderByDesc(DemPoliceInfo::getCreateTime);
+        page = this.page(page, queryWrapper);
+        return this.ToCommonPage(page);
+    }
+
+    @Override
+    public List<String> getFireType() {
+        List<FireLevelRatioVO> list = new ArrayList<>();
+        List<String> fireTypes = demFireStatisticsAttachService.fireCauseType();
+        if (CollectionUtils.isNotEmpty(fireTypes)) {
+            for (String cause : fireTypes) {
+                FireLevelRatioVO fireLevelRatioVo = new FireLevelRatioVO();
+                fireLevelRatioVo.setFireType(cause);
+                Integer count = demFireStatisticsAttachService.fireStatisticsAttachCount(cause);
+                fireLevelRatioVo.setRadio(count.doubleValue());
+                list.add(fireLevelRatioVo);
+            }
+        }
+        return list.stream().sorted(Comparator.comparing(FireLevelRatioVO::getRadio).reversed())
+                .map(FireLevelRatioVO::getFireType).collect(Collectors.toList());
+    }
+
+    public AlertStatisticsVO getAsV(Date startTime, Date endTime, String type, String streetTown) {
+        AlertStatisticsVO alertStatisticsVo = new AlertStatisticsVO();
+        LambdaQueryWrapper<DemPoliceInfo> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(StringUtils.isNotBlank(type), DemPoliceInfo::getCaseType, type)
+                .eq(StringUtils.isNotBlank(streetTown), DemPoliceInfo::getStreetTown, streetTown);
+        if (null != startTime && null != endTime) {
+            queryWrapper.between(DemPoliceInfo::getArrivalTime, startTime, endTime);
+        }
+        alertStatisticsVo.setType(type);
+        alertStatisticsVo.setNumber(this.count(queryWrapper));
+        return alertStatisticsVo;
+    }
+
+
+    public Map<String, List<AlertStatisticsVO>> enhanceList(List<Map<String, Object>> mapList) {
+        List<AlertStatisticsVO> list = new ArrayList<>();
+        for (Map<String, Object> map : mapList) {
+            AlertStatisticsVO alertStatisticsVo = new AlertStatisticsVO();
+            alertStatisticsVo.setType(map.get("aType").toString());
+            alertStatisticsVo.setMonth(map.get("monthTime").toString());
+            alertStatisticsVo.setNumber(Integer.parseInt(map.get("aCount").toString()));
+            list.add(alertStatisticsVo);
+        }
+        return list.stream().collect(Collectors.groupingBy(AlertStatisticsVO::getType));
+    }
+
+    public Date getMaxDate() {
+        IPage<DemPoliceInfo> page = new Page<>(1, 1);
+        LambdaQueryWrapper<DemPoliceInfo> maxQuery = Wrappers.lambdaQuery();
+        maxQuery.isNotNull(DemPoliceInfo::getCreateTime)
+                .orderByDesc(DemPoliceInfo::getCreateTime);
+        IPage<DemPoliceInfo> maxPage = this.page(page, maxQuery);
+        LocalDateTime localDateTime = maxPage.getRecords().get(0).getCreateTime();
+        Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
+        Date date = Date.from(instant);
+        return date;
+    }
+
+    public Date getMinDate() {
+        IPage<DemPoliceInfo> page = new Page<>(1, 1);
+        LambdaQueryWrapper<DemPoliceInfo> minQuery = Wrappers.lambdaQuery();
+        minQuery.isNotNull(DemPoliceInfo::getCreateTime)
+                .orderByAsc(DemPoliceInfo::getCreateTime);
+        IPage<DemPoliceInfo> minPage = this.page(page, minQuery);
+        LocalDateTime localDateTime = minPage.getRecords().get(0).getCreateTime();
+        Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
+        Date date = Date.from(instant);
+        return date;
+    }
+
+    public void perfect(Map<String, List<AlertStatisticsVO>> typeMap, Integer times, Integer subTime, Integer defaultTime) {
+        for (String type : ALERT_TYPE) {
+            if (!typeMap.containsKey(type)) {
+                typeMap.put(type, new ArrayList<>());
+            }
+            perfectDate(typeMap.get(type), times, subTime, defaultTime);
+        }
+    }
+
+
+    public void perfectDate(List<AlertStatisticsVO> list, Integer times, Integer subTime, Integer defaultTime) {
+        for (int i = defaultTime; i < times; i++) {
+            int finalI = i;
+            list.stream()
+                    .filter(asv -> Integer.parseInt(asv.getMonth()) == finalI)
+                    .findFirst()
+                    .map(asv -> {
+                        asv.setAvg(Arith.div(asv.getNumber(), subTime));
+                        return asv;
+                    })
+                    .orElseGet(() -> {
+                        AlertStatisticsVO asv = new AlertStatisticsVO();
+                        asv.setMonth(Integer.toString(finalI));
+                        asv.setNumber(0);
+                        asv.setAvg(0.00);
+                        list.add(asv);
+                        return asv;
+                    });
+        }
+        list.sort(Comparator.comparingInt(x -> Integer.parseInt(x.getMonth())));
+    }
+
+
 }

+ 28 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemWaterSourceServiceImpl.java

@@ -34,7 +34,11 @@ public class DemWaterSourceServiceImpl extends AbstractCrudService<DemWaterSourc
         List<Map<String, Object>> list = new ArrayList<>();
         IPage<DemWaterSource> page = new Page<>(pageNum, pageSize);
         LambdaQueryWrapper<DemWaterSource> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.select()
+        queryWrapper.select(DemWaterSource::getId,DemWaterSource::getWaterName,DemWaterSource::getWaterAddress,
+                DemWaterSource::getWaterType,DemWaterSource::getOrganizateName,DemWaterSource::getWaterForm,
+                DemWaterSource::getAvailableStatusName,DemWaterSource::getAvailableStatus,DemWaterSource::getWaterNature,
+                DemWaterSource::getBuildTime,DemWaterSource::getPipeCompany,DemWaterSource::getContactMode,
+                DemWaterSource::getFireAbbreviat,DemWaterSource::getPipePressure,DemWaterSource::getHydrantInterface)
                 .eq(DemWaterSource::getDeleteFlag, 0)
                 .like(StringUtils.isNotBlank(waterName), DemWaterSource::getWaterName, waterName)
                 .orderByDesc(DemWaterSource::getId);
@@ -76,4 +80,27 @@ public class DemWaterSourceServiceImpl extends AbstractCrudService<DemWaterSourc
         this.updateById(demWaterSource);
     }
 
+    @Override
+    public List<Object> waterSourceList(String streetTown){
+        LambdaQueryWrapper<DemWaterSource> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(DemWaterSource::getId,DemWaterSource::getWaterName,DemWaterSource::getWaterAddress,
+                DemWaterSource::getGisX,DemWaterSource::getGisY)
+                .eq(DemWaterSource::getDeleteFlag, 0)
+                .orderByDesc(DemWaterSource::getId);
+        List<DemWaterSource> list1 = this.list(queryWrapper);
+        List<Object> list = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(list1)){
+            for (int i = 0; i < list1.size(); i++) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("id",list1.get(i).getId());
+                map.put("waterName",list1.get(i).getWaterName());
+                map.put("waterAddress",list1.get(i).getWaterAddress());
+                map.put("longitude",list1.get(i).getGisX());
+                map.put("latitude",list1.get(i).getGisY());
+                list.add(map);
+            }
+        }
+        return list;
+    }
+
 }

+ 42 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/AlertStatisticsVO.java

@@ -0,0 +1,42 @@
+package com.usky.fire.service.vo;
+
+import lombok.Data;
+
+/**
+ * @author yq
+ * @date 2021/5/28 14:55
+ * 警情统计
+ */
+@Data
+public class AlertStatisticsVO {
+
+    /**
+     * 类型(社会援助,火灾,抢险救援)
+     */
+    private String type;
+
+    /**
+     * 数量
+     */
+    private Integer number;
+
+    /**
+     * 月份
+     */
+    private String month;
+
+    /**
+     * 占比
+     */
+    private Double radio;
+
+    /**
+     * 同比上升還是下降
+     */
+    private Integer sameStatus;
+
+    /**
+     * 平均值
+     */
+    private Double avg;
+}

+ 23 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/FireLevelRatioVO.java

@@ -0,0 +1,23 @@
+package com.usky.fire.service.vo;
+
+import lombok.Data;
+
+/**
+ * @author yq
+ * @date 2021/5/28 14:03
+ * 火灾原因占比
+ */
+@Data
+public class FireLevelRatioVO {
+
+    /**
+     * 火灾类别
+     */
+    private String fireType;
+
+
+    /**
+     * 比例
+     */
+    private Double radio;
+}