Browse Source

消防水源情况

jichaobo 2 years ago
parent
commit
27d437db3d

+ 33 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemWaterSourceController.java

@@ -7,6 +7,8 @@ import com.usky.common.log.annotation.Log;
 import com.usky.common.log.enums.BusinessType;
 import com.usky.fire.domain.DemWaterSource;
 import com.usky.fire.service.DemWaterSourceService;
+import com.usky.fire.service.po.FireWaterPO;
+import com.usky.fire.service.vo.FireWaterStatisticsVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -82,5 +84,36 @@ public class DemWaterSourceController {
                                                         @RequestParam(value = "streetTown", required = false) String streetTown) {
         return ApiResult.success(demWaterSourceService.waterSourceScatterer(scattererType, streetTown));
     }
+
+
+    /**
+     * 消防水源情况-消防水源数量
+     *
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     * @return
+     */
+    @GetMapping("/fireWaterStatistics")
+    public ApiResult<FireWaterStatisticsVO> getFireWaterStatistics(@RequestParam(value = "startTime", required = false) String startTime,
+                                                                   @RequestParam(value = "endTime", required = false) String endTime) {
+        return ApiResult.success(demWaterSourceService.getFireWaterStatistics(startTime, endTime));
+    }
+
+    /**
+     * 消防水源情况-水源情况
+     *
+     * @param current   当前页
+     * @param size      每页条数
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     * @return
+     */
+    @GetMapping("/page")
+    public ApiResult<CommonPage<FireWaterPO>> page(@RequestParam(value = "current", required = false, defaultValue = "1") Integer current,
+                                                   @RequestParam(value = "size", required = false, defaultValue = "10") Integer size,
+                                                   @RequestParam(value = "startTime", required = false) String startTime,
+                                                   @RequestParam(value = "endTime", required = false) String endTime) {
+        return ApiResult.success(demWaterSourceService.page(current, size, startTime, endTime));
+    }
 }
 

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

@@ -4,6 +4,8 @@ import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.fire.domain.DemMicroStation;
 import com.usky.fire.domain.DemWaterSource;
+import com.usky.fire.service.po.FireWaterPO;
+import com.usky.fire.service.vo.FireWaterStatisticsVO;
 
 import java.util.List;
 import java.util.Map;
@@ -52,4 +54,10 @@ public interface DemWaterSourceService extends CrudService<DemWaterSource> {
     List<Object> waterSourceScatterer(String scattererType, String streetTown);
 
     List<DemMicroStation> microStationScatterer();
+
+    int waterSourceCount(String waterType, String waterNature, String waterForm, String startTime, String endTime, String availableStatus);
+
+    FireWaterStatisticsVO getFireWaterStatistics(String startTime, String endTime);
+
+    CommonPage<FireWaterPO> page(Integer current, Integer size, String startTime, String endTime);
 }

+ 82 - 4
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemWaterSourceServiceImpl.java

@@ -8,6 +8,7 @@ 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.mybatis.core.AbstractCrudService;
 import com.usky.fire.domain.DemMicroStation;
 import com.usky.fire.domain.DemWaterSource;
@@ -15,14 +16,13 @@ import com.usky.fire.mapper.DemMicroStationMapper;
 import com.usky.fire.mapper.DemWaterSourceMapper;
 import com.usky.fire.service.DemWaterSourceMaintainService;
 import com.usky.fire.service.DemWaterSourceService;
+import com.usky.fire.service.po.FireWaterPO;
 import com.usky.fire.service.util.OnlineMethod;
+import com.usky.fire.service.vo.FireWaterStatisticsVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * <p>
@@ -221,4 +221,82 @@ public class DemWaterSourceServiceImpl extends AbstractCrudService<DemWaterSourc
         return list;
     }
 
+    @Override
+    public int waterSourceCount(String waterType, String waterNature, String waterForm, String startTime, String endTime, String availableStatus) {
+        LambdaQueryWrapper<DemWaterSource> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(DemWaterSource::getDeleteFlag, 0)
+                .eq(StringUtils.isNotBlank(waterType), DemWaterSource::getWaterType, waterType)
+                .eq(StringUtils.isNotBlank(waterNature), DemWaterSource::getWaterNature, waterNature)
+                .eq(StringUtils.isNotBlank(waterForm), DemWaterSource::getWaterForm, waterForm)
+                .eq(StringUtils.isNotBlank(availableStatus), DemWaterSource::getAvailableStatus, availableStatus)
+                .between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime), DemWaterSource::getBdpAudit, startTime, endTime);
+        int count = this.count(queryWrapper);
+        return count;
+    }
+
+    @Override
+    public FireWaterStatisticsVO getFireWaterStatistics(String startTime, String endTime) {
+        FireWaterStatisticsVO fireWaterStatisticsVO = new FireWaterStatisticsVO();
+        fireWaterStatisticsVO.setMunicipalFireCode(
+                this.waterSourceCount("消火栓", "市政", null, startTime, endTime, null));
+        fireWaterStatisticsVO.setCommunityFireCode(
+                this.waterSourceCount("消火栓", "居民", null, startTime, endTime, null));
+        fireWaterStatisticsVO.setUnitFireCode(
+                this.waterSourceCount("消火栓", "单位", null, startTime, endTime, null));
+        fireWaterStatisticsVO.setNaturalWater(
+                this.waterSourceCount("天然水源", null, null, startTime, endTime, null));
+        fireWaterStatisticsVO.setMunicipalWater(
+                this.waterSourceCount(null, "市政", null, startTime, endTime, null));
+        fireWaterStatisticsVO.setResidentWater(
+                this.waterSourceCount(null, "居民", null, startTime, endTime, null));
+        fireWaterStatisticsVO.setUnitWater(
+                this.waterSourceCount(null, "单位", null, startTime, endTime, null));
+        fireWaterStatisticsVO.setMunicipalGetWater(
+                this.waterSourceCount(null, null, "市政", startTime, endTime, null));
+        fireWaterStatisticsVO.setLandGetWater(
+                this.waterSourceCount(null, null, "地上", startTime, endTime, null));
+        Integer total = this.waterSourceCount(null, null, null, startTime, endTime, null);
+        fireWaterStatisticsVO.setMunicipalGetWaterRadio(Arith.div(fireWaterStatisticsVO.getMunicipalGetWater(), total));
+        fireWaterStatisticsVO.setLandGetWaterRadio(Arith.div(fireWaterStatisticsVO.getLandGetWater(), total));
+        Integer waterIntact = this.waterSourceCount(null, null, null, startTime, endTime, "1");
+        fireWaterStatisticsVO.setWaterIntact(Arith.div(waterIntact, total));
+        return fireWaterStatisticsVO;
+    }
+
+    @Override
+    public CommonPage<FireWaterPO> page(Integer current, Integer size, String startTime, String endTime) {
+        List<FireWaterPO> list = new ArrayList<>();
+        Page<DemWaterSource> page = new Page<>(current, size);
+        LambdaQueryWrapper<DemWaterSource> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime), DemWaterSource::getBdpAudit, startTime, endTime);
+        page = this.page(page, queryWrapper);
+        page.getRecords().forEach(stringObjectMap -> list.add(enhanceFireWaterPo(stringObjectMap)));
+        return new CommonPage<>(list, page.getTotal(), page.getSize(), page.getCurrent());
+    }
+
+    /**
+     * map转换为unitpo
+     *
+     * @param fireWaterMap
+     * @return
+     */
+    public FireWaterPO enhanceFireWaterPo(DemWaterSource fireWaterMap) {
+        FireWaterPO fireWaterPo = new FireWaterPO();
+        fireWaterPo.setAddress(fireWaterMap.getWaterAddress());
+        fireWaterPo.setPhone(Optional.ofNullable(fireWaterMap.getContactMode()).orElse(""));
+        fireWaterPo.setType(fireWaterMap.getWaterType());
+        fireWaterPo.setJurisdictionalAgency(fireWaterMap.getOrganizateName());
+        fireWaterPo.setDetachmentName(fireWaterMap.getBranchName());
+        fireWaterPo.setGetWaterType(fireWaterMap.getWaterForm());
+        fireWaterPo.setWaterAdministrative(Optional.ofNullable(fireWaterMap.getWaterNature()).orElse(""));
+        fireWaterPo.setStatus(fireWaterMap.getAvailableStatus() + "");
+        fireWaterPo.setWaterUnit(fireWaterMap.getWaterCompany());
+        fireWaterPo.setWaterGage(fireWaterMap.getPipePressure());
+        fireWaterPo.setGisX(fireWaterMap.getGisX());
+        fireWaterPo.setGisY(fireWaterMap.getGisY());
+        fireWaterPo.setGisBaiDuX(fireWaterMap.getGisXBaidu());
+        fireWaterPo.setGisBaiDuY(fireWaterMap.getGisYBaidu());
+        return fireWaterPo;
+    }
+
 }

+ 79 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/po/FireWaterPO.java

@@ -0,0 +1,79 @@
+package com.usky.fire.service.po;
+
+import lombok.Data;
+
+/**
+ * @author yq
+ * @date 2021/5/27 16:17
+ * 水源信息
+ */
+@Data
+public class FireWaterPO {
+
+    /**
+     * 地址
+     */
+    public String address;
+
+    /**
+     * 责任人
+     */
+    private String dutyPerson;
+
+    /**
+     * 手机号
+     */
+    private String phone;
+
+
+    /**
+     * 水源类型
+     */
+    private String type;
+
+    /**
+     * 管辖机构
+     */
+    private String jurisdictionalAgency;
+
+    /**
+     * 支队名称
+     */
+    private String detachmentName;
+
+    /**
+     * 取水形式
+     */
+    private String getWaterType;
+
+
+    /**
+     * 水源行政
+     */
+    private String waterAdministrative;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 供水单位
+     */
+    private String waterUnit;
+
+
+    /**
+     * 水压
+     */
+    private String waterGage;
+
+    private String gisX;
+
+    private String gisY;
+
+    private String gisBaiDuX;
+
+    private String gisBaiDuY;
+
+}

+ 76 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/FireWaterStatisticsVO.java

@@ -0,0 +1,76 @@
+package com.usky.fire.service.vo;
+
+import lombok.Data;
+
+/**
+ * @author yq
+ * @date 2021/5/27 16:31
+ * 水源统计信息
+ */
+@Data
+public class FireWaterStatisticsVO {
+
+
+    /**
+     * 市政消火栓
+     */
+    private Integer municipalFireCode;
+
+
+    /**
+     * 社区(居民)消火栓
+     */
+    private Integer communityFireCode;
+
+    /**
+     * 单位消火栓
+     */
+    private Integer unitFireCode;
+
+    /**
+     * 天然水源
+     */
+    private Integer naturalWater;
+
+    /**
+     * 市政水源
+     */
+    private Integer municipalWater;
+
+    /**
+     * 居民水源
+     */
+    private Integer residentWater;
+
+    /**
+     * 单位水源
+     */
+    private Integer unitWater;
+
+    /**
+     * 市政取水
+     */
+    private Integer municipalGetWater;
+
+
+    /**
+     * 地下取水
+     */
+    private Integer landGetWater;
+
+    /**
+     * 市政取水占比
+     */
+    private Double municipalGetWaterRadio;
+
+    /**
+     * 地下取水占比
+     */
+    private Double landGetWaterRadio;
+
+    /**
+     * 水源完好率
+     */
+    private Double waterIntact;
+
+}