Kaynağa Gözat

Merge branch 'usky-zyj' of uskycloud/usky-modules into server-165

James 1 yıl önce
ebeveyn
işleme
7145dca1b7

+ 35 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemFireStatisticsAttachController.java

@@ -3,9 +3,12 @@ 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.DemFireStatistics;
 import com.usky.fire.service.DemFireStatisticsAttachService;
 import com.usky.fire.service.DemFireStatisticsService;
 import com.usky.fire.service.po.FireStatisticsPO;
+import com.usky.fire.service.vo.DemFireStatisticsCountScattorVO;
+import com.usky.fire.service.vo.DemFireStatisticsScattorVO;
 import com.usky.fire.service.vo.FireBubbleVO;
 import com.usky.fire.service.vo.FireLevelRatioVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -97,6 +100,38 @@ public class DemFireStatisticsAttachController {
         return ApiResult.success(demFireStatisticsService.page(current, size, startTime, endTime, address));
     }
 
+    /**
+     * 火灾数据分析-详细火灾情况撒点
+     *
+     * @param street   街镇
+     * @param lossType   伤亡类型(亡人火灾、伤人火灾)
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     * @return
+     */
+    @GetMapping("fireStatisticScattor")
+    public ApiResult<List<DemFireStatisticsScattorVO>> fireStatisticScattor(@RequestParam(value = "street", required = false) String street,
+                                                                            @RequestParam(value = "lossType", required = false) String lossType,
+                                                                            @RequestParam(value = "startTime", required = false) String startTime,
+                                                                            @RequestParam(value = "endTime", required = false) String endTime) {
+        return ApiResult.success(demFireStatisticsService.fireStatisticScattor(street, lossType, startTime, endTime));
+    }
+
+    /**
+     * 火灾数据分析-火灾情况统计
+     *
+     * @param street   街镇
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     * @return
+     */
+    @GetMapping("fireStatisticCollect")
+    public ApiResult<List<DemFireStatisticsCountScattorVO>> fireStatisticCollect(@RequestParam(value = "street", required = false) String street,
+                                                                                           @RequestParam(value = "startTime", required = false) String startTime,
+                                                                                           @RequestParam(value = "endTime", required = false) String endTime) {
+        return ApiResult.success(demFireStatisticsService.fireStatisticCollect(street, startTime, endTime));
+    }
+
     /**
      * 火灾数据分析-火灾情况分析
      *

+ 3 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemGridMemberController.java

@@ -56,13 +56,15 @@ public class DemGridMemberController {
      * 网格员信息管理-撒点
      *
      * @param gridArea     网格区域
+     * @param mapGridName    测绘院地图网格名称
      * @param gridGrade    网格等级(1、大网格 2、中网格 3、小网格)
      * @return
      */
     @GetMapping("gridMemberScatter")
     public ApiResult<List<DemGridMember>> gridMemberScatter(@RequestParam(value = "gridArea",required = false) String gridArea,
+                                                            @RequestParam(value = "mapGridName",required = false) String mapGridName,
                                                          @RequestParam(value = "gridGrade",required = false) Integer gridGrade) {
-        return ApiResult.success(demGridMemberService.gridMemberScatter(gridArea, gridGrade));
+        return ApiResult.success(demGridMemberService.gridMemberScatter(gridArea, mapGridName, gridGrade));
     }
 
     /**

+ 5 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemFireStatisticsService.java

@@ -6,6 +6,7 @@ import com.usky.fire.domain.DemFileLabel;
 import com.usky.fire.domain.DemFireStatistics;
 import com.usky.fire.service.po.FireStatisticsPO;
 import com.usky.fire.service.vo.*;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.io.IOException;
 import java.util.Date;
@@ -110,5 +111,9 @@ public interface DemFireStatisticsService extends CrudService<DemFireStatistics>
 
     CommonPage<FireStatisticsPO> page(Integer current, Integer size, String startTime, String endTime, String address);
 
+    List<DemFireStatisticsScattorVO> fireStatisticScattor(String street, String lossType, String startTime, String endTime);
+
+    List<DemFireStatisticsCountScattorVO> fireStatisticCollect(String street, String startTime, String endTime);
+
     List<FireBubbleVO> getAvgAndSum(String startTime, String endTime, String fireType, String unitId);
 }

+ 1 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemGridMemberService.java

@@ -20,7 +20,7 @@ public interface DemGridMemberService extends CrudService<DemGridMember> {
 
     CommonPage<DemGridMember> gridMemberList(String gridArea, String streetTown, String gridPersonnel, Integer id, Integer pageNum, Integer pageSize);
 
-    List<DemGridMember> gridMemberScatter(String gridArea, Integer gridGrade);
+    List<DemGridMember> gridMemberScatter(String gridArea, String mapGridName, Integer gridGrade);
 
     List<DemGridMemberVO> gridMemberListExport(String gridArea, String streetTown, String gridPersonnel, Integer id);
 

+ 93 - 4
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemFireStatisticsServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.common.collect.Lists;
+import com.mysql.cj.x.protobuf.MysqlxDatatypes;
 import com.ruoyi.common.core.utils.bean.BeanUtils;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
@@ -15,10 +16,7 @@ import com.usky.common.core.util.Arith;
 import com.usky.common.core.util.DateUtils;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.common.security.utils.SecurityUtils;
-import com.usky.fire.domain.DemFileLabel;
-import com.usky.fire.domain.DemFireLabelAttribute;
-import com.usky.fire.domain.DemFireStatistics;
-import com.usky.fire.domain.DemFireStatisticsAttach;
+import com.usky.fire.domain.*;
 import com.usky.fire.mapper.DemFireStatisticsMapper;
 import com.usky.fire.service.DemFileLabelService;
 import com.usky.fire.service.DemFireLabelAttributeService;
@@ -810,6 +808,97 @@ public class DemFireStatisticsServiceImpl extends AbstractCrudService<DemFireSta
         return new CommonPage<>(list, page.getTotal(), page.getSize(), page.getCurrent());
     }
 
+    @Override
+    public List<DemFireStatisticsScattorVO> fireStatisticScattor(String street, String lossType, String startTime, String endTime){
+        List<DemFireStatisticsScattorVO> list = new ArrayList<>();
+//        LambdaQueryWrapper<DemFireStatistics> queryWrapper = Wrappers.lambdaQuery();
+//        List<DemFireStatistics> dataList = this.list(queryWrapper);
+//        if(CollectionUtils.isNotEmpty(dataList)){
+//            for (int i = 0; i < dataList.size(); i++) {
+//                if(StringUtils.isBlank(dataList.get(i).getStreet()) || (dataList.get(i).getStreet()).length() == 0){
+//                    List<LocateInfo> infoList = OnlineMethod.getLonLat(dataList.get(i).getFireAddress());
+//                    if(infoList.size() > 0){
+//                        dataList.get(i).setLatitude(infoList.get(0).getLatitude().toString());
+//                        dataList.get(i).setLongitude(infoList.get(0).getLongitude().toString());
+//                        dataList.get(i).setDistrict(infoList.get(0).getDistrict());
+//                        this.updateById(dataList.get(i));
+//                    }
+//                }
+//            }
+//        }
+//        LambdaQueryWrapper<DemFireStatistics> queryWrapper11 = Wrappers.lambdaQuery();
+//        List<DemFireStatistics> dataList11 = this.list(queryWrapper11);
+//        if(CollectionUtils.isNotEmpty(dataList11)){
+//            for (int i = 0; i < dataList11.size(); i++) {
+//                if(StringUtils.isBlank(dataList11.get(i).getStreet()) || (dataList11.get(i).getStreet()).length() == 0){
+//                    String location = dataList11.get(i).getLongitude() + "," + dataList11.get(i).getLatitude();
+//                    String streetTown = OnlineMethod.getStreetTown(location);
+//                    System.out.println(streetTown);
+//                    if (StringUtils.isNotBlank(streetTown)) {
+//                        dataList11.get(i).setStreet(streetTown);
+//                        this.updateById(dataList11.get(i));
+//                    }
+//                }
+//            }
+//        }
+
+        LambdaQueryWrapper<DemFireStatistics> queryWrapper1 = Wrappers.lambdaQuery();
+        queryWrapper1.eq(StringUtils.isNotBlank(street),DemFireStatistics::getStreet,street)
+                .between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime),DemFireStatistics::getFireTime,startTime,endTime);
+        if(StringUtils.isNotBlank(lossType)){
+            if(lossType.equals("亡人火灾")){
+                queryWrapper1.gt(DemFireStatistics::getDeathToll,0);
+            }else if(lossType.equals("伤人火灾")){
+                queryWrapper1.gt(DemFireStatistics::getInjuredNumber,0);
+            }
+        }
+        List<DemFireStatistics> dataList1 = this.list(queryWrapper1);
+        if(CollectionUtils.isNotEmpty(dataList1)){
+            for (int i = 0; i < dataList1.size(); i++) {
+                DemFireStatisticsScattorVO scattorVO = new DemFireStatisticsScattorVO();
+                scattorVO.setFireNumber(dataList1.get(i).getFireNumber());
+                scattorVO.setFireTime(dataList1.get(i).getFireTime());
+                scattorVO.setFireAddress(dataList1.get(i).getFireAddress());
+                scattorVO.setFireProcess(dataList1.get(i).getFireProcess());
+                scattorVO.setDirectPropertyLoss(dataList1.get(i).getDirectPropertyLoss());
+                scattorVO.setBurnedArea(dataList1.get(i).getBurnedArea());
+                scattorVO.setAffectedHouse(dataList1.get(i).getAffectedHouse());
+                scattorVO.setVictimNumber(dataList1.get(i).getVictimNumber());
+                scattorVO.setDeathToll(dataList1.get(i).getDeathToll());
+                scattorVO.setInjuredNumber(dataList1.get(i).getInjuredNumber());
+                scattorVO.setLongitude(dataList1.get(i).getLongitude());
+                scattorVO.setLatitude(dataList1.get(i).getLatitude());
+                scattorVO.setDistrict(dataList1.get(i).getDistrict());
+                scattorVO.setStreet(dataList1.get(i).getStreet());
+                list.add(scattorVO);
+
+            }
+        }
+
+        return list;
+    }
+
+    @Override
+    public List<DemFireStatisticsCountScattorVO> fireStatisticCollect(String street, String startTime, String endTime){
+        List<DemFireStatisticsCountScattorVO> list = new ArrayList<>();
+        QueryWrapper<DemFireStatistics> queryWrapper = Wrappers.query();
+        queryWrapper.select("ROUND(SUM(direct_property_loss)/10000,2) as directPropertyLossTotal","COUNT(*) as fireCount","ROUND(SUM(burned_area),2) as burnedAreaTotal","SUM(death_toll) as deathTollTotal","SUM(injured_number) as injuredNumberTotal")
+                .eq(StringUtils.isNotBlank(street),"street",street)
+                .between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime),"fire_time",startTime,endTime);
+        List<Map<String,Object>> maps = this.listMaps(queryWrapper);
+        if(maps.size() > 0){
+            DemFireStatisticsCountScattorVO scattorVO = new DemFireStatisticsCountScattorVO();
+            scattorVO.setDirectPropertyLossTotal(Double.parseDouble(maps.get(0).get("directPropertyLossTotal").toString()));
+            scattorVO.setFireCount(Integer.parseInt(maps.get(0).get("fireCount").toString()));
+            scattorVO.setBurnedAreaTotal(Double.parseDouble(maps.get(0).get("burnedAreaTotal").toString()));
+            scattorVO.setDeathTollTotal((int)Math.round(Double.parseDouble(maps.get(0).get("deathTollTotal").toString())));
+            scattorVO.setInjuredNumberTotal((int)Math.round(Double.parseDouble(maps.get(0).get("injuredNumberTotal").toString())));
+            list.add(scattorVO);
+        }
+
+        return list;
+    }
+
     @Override
     public List<FireBubbleVO> getAvgAndSum(String startTime, String endTime, String fireType, String unitId) {
         List<FireBubbleVO> fireBubbleVOS = new ArrayList<>();

+ 2 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemGridMemberServiceImpl.java

@@ -79,11 +79,12 @@ public class DemGridMemberServiceImpl extends AbstractCrudService<DemGridMemberM
     }
 
     @Override
-    public List<DemGridMember> gridMemberScatter(String gridArea, Integer gridGrade){
+    public List<DemGridMember> gridMemberScatter(String gridArea, String mapGridName, Integer gridGrade){
         List<DemGridMember> list = new ArrayList<>();
         LambdaQueryWrapper<DemGridMember> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.eq(DemGridMember::getDeleteFlag, 0)
                 .eq(StringUtils.isNotBlank(gridArea),DemGridMember::getGridArea, gridArea)
+                .eq(StringUtils.isNotBlank(mapGridName),DemGridMember::getMapGridName, mapGridName)
                 .eq(gridGrade != null,DemGridMember::getGridGrade, gridGrade);
         list = this.list(queryWrapper);
         if (CollectionUtils.isNotEmpty(list)) {

+ 33 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/DemFireStatisticsCountScattorVO.java

@@ -0,0 +1,33 @@
+package com.usky.fire.service.vo;
+
+import lombok.Data;
+
+@Data
+public class DemFireStatisticsCountScattorVO {
+
+    /**
+     * 直接财产损失总数(万)
+     */
+    private double directPropertyLossTotal;
+
+    /**
+     * 火灾总数
+     */
+    private Integer fireCount;
+
+    /**
+     * 过火面积总数(m²)
+     */
+    private double burnedAreaTotal;
+
+    /**
+     * 死亡人数(人)
+     */
+    private Integer deathTollTotal;
+
+    /**
+     * 受伤人数(人)
+     */
+    private Integer injuredNumberTotal;
+
+}

+ 63 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/DemFireStatisticsScattorVO.java

@@ -0,0 +1,63 @@
+package com.usky.fire.service.vo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class DemFireStatisticsScattorVO {
+    /**
+     * 火灾序号
+     */
+    private String fireNumber;
+
+    /**
+     * 起火时间_日期型
+     */
+    private LocalDateTime fireTime;
+
+    /**
+     * 起火地点
+     */
+    private String fireAddress;
+
+    /**
+     * 起火经过
+     */
+    private String fireProcess;
+
+    /**
+     * 直接财产损失
+     */
+    private String directPropertyLoss;
+
+    /**
+     * 过火面积
+     */
+    private String burnedArea;
+
+    /**
+     * 受灾户数
+     */
+    private String affectedHouse;
+
+    /**
+     * 受灾人数
+     */
+    private String victimNumber;
+
+    /**
+     * 死亡人数
+     */
+    private String deathToll;
+
+    /**
+     * 受伤人数
+     */
+    private String injuredNumber;
+
+    private String longitude;
+    private String latitude;
+    private String district;
+    private String street;
+}