Browse Source

完善整合代码

yq 3 years ago
parent
commit
364dd793cb

+ 101 - 6
mhfire-controller/src/main/java/com/bizmatics/mhfire/controller/web/JcjAjxxController.java

@@ -1,21 +1,116 @@
 package com.bizmatics.mhfire.controller.web;
 
 
+import com.bizmatics.common.core.bean.ApiResult;
+import com.bizmatics.common.core.bean.CommonPage;
+import com.bizmatics.mhfire.model.JcjAjxx;
+import com.bizmatics.mhfire.service.JcjAjxxService;
+import com.bizmatics.mhfire.service.vo.AlertMapVO;
+import com.bizmatics.mhfire.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.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
- * <p>
- *  前端控制器
- * </p>
- *
+
+ * 警情
  * @author ya
  * @since 2021-11-23
  */
-@Controller
+@RestController
 @RequestMapping("/jcjAjxx")
 public class JcjAjxxController {
 
+    @Autowired
+    private JcjAjxxService jcjAjxxService;
+
+
+
+    /**
+     * 查询当天24小时警情
+     *
+     * @return
+     */
+    @GetMapping("/alertStatisticsByHouse")
+    public ApiResult<Map<String, List<AlertStatisticsVO>>> getAlertStatisticsByHouse(@RequestParam Date startTime,
+                                                                                     @RequestParam Date endTime) {
+        return ApiResult.success(jcjAjxxService.getAlertStatisticsByHouse(startTime,endTime));
+    }
+
+
+    /**
+     * 查询每年12个月警情
+     *
+     * @return
+     */
+    @GetMapping("/alertStatisticsByMonth")
+    public ApiResult<Map<String, List<AlertStatisticsVO>>> getAlertStatisticsByMonth(@RequestParam Date startTime,
+                                                                                     @RequestParam Date endTime) {
+        return ApiResult.success(jcjAjxxService.getAlertStatisticsByMonth(startTime,endTime));
+    }
+
+
+    /**
+     * 警情详细信息
+     *
+     * @param current   页数
+     * @param size      条数
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     * @return
+     */
+    @GetMapping("/page")
+    public ApiResult<CommonPage<JcjAjxx>> page(@RequestParam Integer current,
+                                             @RequestParam Integer size,
+                                             @RequestParam(required = false) Date startTime,
+                                             @RequestParam(required = false) Date endTime) {
+        return ApiResult.success(jcjAjxxService.page(current, size, startTime, endTime));
+    }
+
+    /**
+     * 地图撒点
+     *
+     * @param current   页数
+     * @param size      条数
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     * @return
+     */
+    @GetMapping("/pageMap")
+    public ApiResult<CommonPage<AlertMapVO>> pageMap(@RequestParam(required = false) Integer current,
+                                                     @RequestParam(required = false) Integer size,
+                                                     @RequestParam(required = false) Date startTime,
+                                                     @RequestParam(required = false) Date endTime) {
+        return ApiResult.success(jcjAjxxService.pageMap(current, size, startTime, endTime));
+    }
+
+    /**
+     * 查询不同警情(社会救助,警情,火灾)的占比
+     *
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     * @return
+     */
+    @GetMapping("/alertStatistics")
+    public ApiResult<List<AlertStatisticsVO>> getAlertStatistics(@RequestParam(required = false) Date startTime,
+                                                                 @RequestParam(required = false) Date endTime) {
+        return ApiResult.success(jcjAjxxService.getAlertStatistics(startTime, endTime));
+    }
+
+    /**
+     * 警情详细信息
+     * @param id
+     * @return
+     */
+    @GetMapping("/one")
+    public ApiResult<JcjAjxx> getOne(@RequestParam String id) {
+        return ApiResult.success(jcjAjxxService.getOne(id));
+    }
 }
 

+ 40 - 6
mhfire-controller/src/main/java/com/bizmatics/mhfire/controller/web/XfzWxzController.java

@@ -1,21 +1,55 @@
 package com.bizmatics.mhfire.controller.web;
 
 
+import com.bizmatics.common.core.bean.ApiResult;
+import com.bizmatics.common.core.bean.CommonPage;
+import com.bizmatics.mhfire.model.JcjZzclxx;
+import com.bizmatics.mhfire.model.XfzWxz;
+import com.bizmatics.mhfire.service.XfzWxzService;
+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;
 
 /**
- * <p>
- *  前端控制器
- * </p>
- *
+ * 消防站点
  * @author ya
  * @since 2021-11-23
  */
-@Controller
+@RestController
 @RequestMapping("/xfzWxz")
 public class XfzWxzController {
 
+
+
+    @Autowired
+    private XfzWxzService xfzWxzService;
+
+
+    /**
+     * 分页
+     * @param current 页数
+     * @param size 条数
+     * @return
+     */
+    @GetMapping("/page")
+    public ApiResult<CommonPage<XfzWxz>> page(@RequestParam Integer current,
+                                              @RequestParam Integer size){
+        return ApiResult.success(xfzWxzService.page(current, size));
+    }
+
+
+    /**
+     * get one
+     * @param id id
+     * @return
+     */
+    @GetMapping("/one")
+    public ApiResult<List<JcjZzclxx>> getOne(@RequestParam String id){
+        return ApiResult.success(xfzWxzService.getOne(id));
+    }
 }
 

+ 5 - 1
mhfire-mapping/src/main/java/com/bizmatics/mhfire/persistence/mapper/JcjZzclxxMapper.java

@@ -1,7 +1,10 @@
 package com.bizmatics.mhfire.persistence.mapper;
 
-import com.bizmatics.mhfire.model.JcjZzclxx;
 import com.bizmatics.common.mvc.base.CrudMapper;
+import com.bizmatics.mhfire.model.JcjZzclxx;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.bizmatics.common.mvc.base.CrudMapper;
  */
 public interface JcjZzclxxMapper extends CrudMapper<JcjZzclxx> {
 
+    List<JcjZzclxx> selectByAjId(@Param("ajId") String ajId);
 }

+ 9 - 0
mhfire-mapping/src/main/resources/mapper/mysql/JcjZzclxxMapper.xml

@@ -36,5 +36,14 @@
         <result column="AJID" property="ajid" />
         <result column="DTHH" property="dthh" />
     </resultMap>
+    <select id="selectByAjId" resultType="com.bizmatics.mhfire.model.JcjZzclxx">
+        select jz.*
+        from jcj_zzclxx as jz
+        inner join jcj_cjjl as jc
+        on jz.JCJ_CJJL_ID = jc.ID
+        inner join jcj_ajxx as ja
+        on jc.JCJ_AJXX_ID = ja.ID
+        where ja.ID = #{ajId}
+    </select>
 
 </mapper>

+ 52 - 14
mhfire-model/src/main/java/com/bizmatics/mhfire/model/JcjAjxx.java

@@ -1,14 +1,16 @@
 package com.bizmatics.mhfire.model;
 
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
 /**
  * <p>
  * 
@@ -34,7 +36,7 @@ public class JcjAjxx implements Serializable {
     private BigDecimal gisY;
 
     @TableField("SJC")
-    private LocalDateTime sjc;
+    private Date sjc;
 
     @TableId("ID")
     private String id;
@@ -92,7 +94,7 @@ public class JcjAjxx implements Serializable {
     /**
      * 立案时间
      */
-    private LocalDateTime lasj;
+    private Date lasj;
 
     /**
      * 立案日期
@@ -142,32 +144,32 @@ public class JcjAjxx implements Serializable {
     /**
      * 通知时间
      */
-    private LocalDateTime tzsj;
+    private Date tzsj;
 
     /**
      * 到场时间
      */
-    private LocalDateTime dcsj;
+    private Date dcsj;
 
     /**
      * 出水时间
      */
-    private LocalDateTime cssj;
+    private Date cssj;
 
     /**
      * 控制时间
      */
-    private LocalDateTime kzsj;
+    private Date kzsj;
 
     /**
      * 熄灭时间
      */
-    private LocalDateTime xmsj;
+    private Date xmsj;
 
     /**
      * 返队时间
      */
-    private LocalDateTime fdsj;
+    private Date fdsj;
 
     /**
      * 补充信息
@@ -205,12 +207,12 @@ public class JcjAjxx implements Serializable {
     /**
      * 创建时间
      */
-    private LocalDateTime created;
+    private Date created;
 
     /**
      * 编辑时间
      */
-    private LocalDateTime updated;
+    private Date updated;
 
     /**
      * 0有效/1无效
@@ -228,4 +230,40 @@ public class JcjAjxx implements Serializable {
     private Integer fairIs;
 
 
+    //火灾信息
+
+    /**
+     * 报警人
+     */
+    @TableField(exist = false)
+    private String callPolice;
+
+    /**
+     * 电话
+     */
+    @TableField(exist = false)
+    private String policePhone;
+    /**
+     * 财产损失
+     */
+    @TableField(exist = false)
+    private String propertyLoss;
+
+
+    /**
+     * 死亡人数
+     */
+    @TableField(exist = false)
+    private String deathToll;
+
+    /**
+     * 受伤人数
+     */
+    @TableField(exist = false)
+    private String nonFatal;
+    /**
+     * 关联案件的车辆信息
+     */
+    @TableField(exist = false)
+    private List<JcjZzclxx> carList;
 }

+ 6 - 5
mhfire-model/src/main/java/com/bizmatics/mhfire/model/JcjCjjl.java

@@ -1,13 +1,14 @@
 package com.bizmatics.mhfire.model;
 
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
  * 处警记录
@@ -74,9 +75,9 @@ public class JcjCjjl implements Serializable {
      */
     private String jlzt;
 
-    private LocalDateTime created;
+    private Date created;
 
-    private LocalDateTime updated;
+    private Date updated;
 
 
 }

+ 14 - 13
mhfire-model/src/main/java/com/bizmatics/mhfire/model/JcjZzclxx.java

@@ -1,13 +1,14 @@
 package com.bizmatics.mhfire.model;
 
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
  * 车辆作战信息
@@ -66,43 +67,43 @@ public class JcjZzclxx implements Serializable {
      * 通知时间
      */
     @TableField("TZSJ")
-    private LocalDateTime tzsj;
+    private Date tzsj;
 
     /**
      * 出动时间
      */
     @TableField("CDSJ")
-    private LocalDateTime cdsj;
+    private Date cdsj;
 
     /**
      * 到场时间
      */
     @TableField("DCSJ")
-    private LocalDateTime dcsj;
+    private Date dcsj;
 
     /**
      * 出水时间
      */
     @TableField("CSSJ")
-    private LocalDateTime cssj;
+    private Date cssj;
 
     /**
      * 停水时间
      */
     @TableField("TSSJ")
-    private LocalDateTime tssj;
+    private Date tssj;
 
     /**
      * 返队时间
      */
     @TableField("FDSJ")
-    private LocalDateTime fdsj;
+    private Date fdsj;
 
     /**
      * 实际出动时间
      */
     @TableField("SJCDSJ")
-    private LocalDateTime sjcdsj;
+    private Date sjcdsj;
 
     /**
      * 驾驶员
@@ -161,16 +162,16 @@ public class JcjZzclxx implements Serializable {
     /**
      * 时间戳
      */
-    private LocalDateTime sjc;
+    private Date sjc;
 
     /**
      * 记录状态
      */
     private String jlzt;
 
-    private LocalDateTime created;
+    private Date created;
 
-    private LocalDateTime updated;
+    private Date updated;
 
     /**
      * 主管中队

+ 3 - 3
mhfire-model/src/main/java/com/bizmatics/mhfire/model/WaterAj.java

@@ -1,8 +1,5 @@
 package com.bizmatics.mhfire.model;
 
-import java.time.LocalDateTime;
-import java.io.Serializable;
-import java.util.Date;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -10,6 +7,9 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
  * 

+ 44 - 1
mhfire-service/src/main/java/com/bizmatics/mhfire/service/JcjAjxxService.java

@@ -1,7 +1,14 @@
 package com.bizmatics.mhfire.service;
 
-import com.bizmatics.mhfire.model.JcjAjxx;
+import com.bizmatics.common.core.bean.CommonPage;
 import com.bizmatics.common.mvc.base.CrudService;
+import com.bizmatics.mhfire.model.JcjAjxx;
+import com.bizmatics.mhfire.service.vo.AlertMapVO;
+import com.bizmatics.mhfire.service.vo.AlertStatisticsVO;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +20,40 @@ import com.bizmatics.common.mvc.base.CrudService;
  */
 public interface JcjAjxxService extends CrudService<JcjAjxx> {
 
+
+    /**
+     * 按小时统计警情
+     * @return
+     */
+    Map<String, List<AlertStatisticsVO>> getAlertStatisticsByHouse(Date startTime, Date endTime);
+
+
+
+    /**
+     * 按月份统计警情
+     * @return
+     */
+    Map<String, List<AlertStatisticsVO>> getAlertStatisticsByMonth(Date startTime,Date endTime);
+
+
+    /**
+     * 警情详细信息
+     * @param current
+     * @param size
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    CommonPage<JcjAjxx> page(Integer current, Integer size, Date startTime, Date endTime);
+
+    CommonPage<AlertMapVO> pageMap(Integer current, Integer size, Date startTime, Date endTime);
+    /**
+     * 查询不同警情(社会救助,警情,火灾)的占比
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    List<AlertStatisticsVO> getAlertStatistics(Date startTime, Date endTime);
+
+    JcjAjxx getOne(String id);
 }

+ 9 - 1
mhfire-service/src/main/java/com/bizmatics/mhfire/service/JcjZzclxxService.java

@@ -1,7 +1,9 @@
 package com.bizmatics.mhfire.service;
 
-import com.bizmatics.mhfire.model.JcjZzclxx;
 import com.bizmatics.common.mvc.base.CrudService;
+import com.bizmatics.mhfire.model.JcjZzclxx;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +15,10 @@ import com.bizmatics.common.mvc.base.CrudService;
  */
 public interface JcjZzclxxService extends CrudService<JcjZzclxx> {
 
+    /**
+     * 根据案件id查询车辆信息
+     * @param ajId
+     * @return
+     */
+    List<JcjZzclxx> getByAjId(String ajId);
 }

+ 18 - 1
mhfire-service/src/main/java/com/bizmatics/mhfire/service/XfzWxzService.java

@@ -1,7 +1,11 @@
 package com.bizmatics.mhfire.service;
 
-import com.bizmatics.mhfire.model.XfzWxz;
+import com.bizmatics.common.core.bean.CommonPage;
 import com.bizmatics.common.mvc.base.CrudService;
+import com.bizmatics.mhfire.model.JcjZzclxx;
+import com.bizmatics.mhfire.model.XfzWxz;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,17 @@ import com.bizmatics.common.mvc.base.CrudService;
  */
 public interface XfzWxzService extends CrudService<XfzWxz> {
 
+    /**
+     * 分页
+     * @return
+     */
+    CommonPage<XfzWxz> page(Integer current, Integer size);
+
+
+    /**
+     * get one
+     * @param id
+     * @return
+     */
+    List<JcjZzclxx> getOne(String id);
 }

+ 204 - 1
mhfire-service/src/main/java/com/bizmatics/mhfire/service/impl/JcjAjxxServiceImpl.java

@@ -1,11 +1,34 @@
 package com.bizmatics.mhfire.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.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.bizmatics.common.core.bean.CommonPage;
+import com.bizmatics.common.core.util.BeanMapperUtils;
+import com.bizmatics.common.core.util.DateUtils;
+import com.bizmatics.common.core.util.StringUtils;
+import com.bizmatics.common.mvc.base.AbstractCrudService;
 import com.bizmatics.mhfire.model.JcjAjxx;
+import com.bizmatics.mhfire.model.JcjZzclxx;
 import com.bizmatics.mhfire.persistence.mapper.JcjAjxxMapper;
+import com.bizmatics.mhfire.persistence.mapper.po.FireStatisticsPO;
+import com.bizmatics.mhfire.persistence.mapper.vo.LocateInfo;
+import com.bizmatics.mhfire.service.FireStatisticsService;
 import com.bizmatics.mhfire.service.JcjAjxxService;
-import com.bizmatics.common.mvc.base.AbstractCrudService;
+import com.bizmatics.mhfire.service.JcjZzclxxService;
+import com.bizmatics.mhfire.service.util.Arith;
+import com.bizmatics.mhfire.service.util.GouldUtil;
+import com.bizmatics.mhfire.service.vo.AlertMapVO;
+import com.bizmatics.mhfire.service.vo.AlertStatisticsVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.*;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +40,184 @@ import org.springframework.stereotype.Service;
 @Service
 public class JcjAjxxServiceImpl extends AbstractCrudService<JcjAjxxMapper, JcjAjxx> implements JcjAjxxService {
 
+
+    @Autowired
+    private FireStatisticsService fireStatisticsService;
+
+    @Autowired
+    private JcjZzclxxService jcjZzclxxService;
+
+
+    private static final String[] ALERT_TYPE = {"火灾","社会救助","抢险救援"};
+
+    @Override
+    public Map<String, List<AlertStatisticsVO>> getAlertStatisticsByHouse(Date startTime, Date endTime) {
+        QueryWrapper<JcjAjxx> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("HOUR(lasj) monthTime","COUNT(id) as aCount","ajlx as aType")
+                .between("lasj",startTime,endTime)
+                .groupBy("monthTime","ajlx");
+        Map<String, List<AlertStatisticsVO>> typeMap = enhanceList(this.listMaps(queryWrapper));
+        int distanceOfTwoDate = DateUtils.getDistanceOfTwoDateNew(startTime, endTime);
+        perfect(typeMap,24,distanceOfTwoDate,0);
+        return typeMap;
+    }
+
+    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())));
+    }
+
+
+
+    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));
+    }
+
+
+    @Override
+    public Map<String, List<AlertStatisticsVO>> getAlertStatisticsByMonth(Date startTime,Date endTime) {
+        QueryWrapper<JcjAjxx> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("month(lasj) monthTime","COUNT(id) as aCount","ajlx as aType")
+                .between("lasj",startTime,endTime)
+                .groupBy("monthTime","ajlx");
+        Map<String, List<AlertStatisticsVO>> typeMap = enhanceList(this.listMaps(queryWrapper));
+        int distanceOfTwoDate =Integer.parseInt(DateUtils.getYear(endTime)) - Integer.parseInt(DateUtils.getYear(startTime)) + 1;
+        perfect(typeMap,13,distanceOfTwoDate,1);
+        return typeMap;
+    }
+
+    @Override
+    public CommonPage<JcjAjxx> page(Integer current, Integer size, Date startTime, Date endTime) {
+        IPage<JcjAjxx> page = new Page<>(current, size);
+        LambdaQueryWrapper<JcjAjxx> queryWrapper = Wrappers.lambdaQuery();
+        if (null != startTime && null != endTime){
+            queryWrapper.between(JcjAjxx::getDcsj,startTime,endTime);
+        }
+        page = this.page(page, queryWrapper);
+        return  this.ToCommonPage(page);
+    }
+
+    @Override
+    public CommonPage<AlertMapVO> pageMap(Integer current, Integer size, Date startTime, Date endTime) {
+
+        LambdaQueryWrapper<JcjAjxx> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(JcjAjxx::getId,JcjAjxx::getGisX,JcjAjxx::getGisY);
+        if (null != startTime && null != endTime){
+            queryWrapper.between(JcjAjxx::getDcsj,startTime,endTime);
+        }
+        CommonPage<AlertMapVO> commonPage;
+        if (null != current && size != null){
+            IPage<JcjAjxx> page = new Page<>(current,size);
+            page = this.page(page,queryWrapper);
+            commonPage = new CommonPage<>(BeanMapperUtils.mapList(page.getRecords(),JcjAjxx.class,AlertMapVO.class),page.getTotal(),page.getSize(),page.getCurrent());
+        }else {
+            List<JcjAjxx> list = this.list(queryWrapper);
+            commonPage = new CommonPage<>(BeanMapperUtils.mapList(list,JcjAjxx.class,AlertMapVO.class),list.size(),list.size(),1);
+        }
+        return commonPage;
+    }
+
+
+    @Override
+    public JcjAjxx getOne(String id) {
+        JcjAjxx jcjAjxx = this.getById(id);
+        if (jcjAjxx.getAjlx().equals(ALERT_TYPE[0])){
+            Date startTime = DateUtils.addMonths(jcjAjxx.getLasj(), -30);
+            Date endTime = DateUtils.addMonths(jcjAjxx.getLasj(), 30);
+            List<LocateInfo> lonLat = GouldUtil.getLonLat(jcjAjxx.getAfdz());
+            LocateInfo locateInfo = lonLat.get(0);
+            //计算精度维度在一定范围内的数据和火灾关联
+            List<FireStatisticsPO> list = fireStatisticsService.distanceList(locateInfo.getLongitude(), locateInfo.getLatitude(), startTime, endTime);
+            if (CollectionUtils.isNotEmpty(list)){
+                FireStatisticsPO fireStatisticsPo = list.get(0);
+                jcjAjxx.setPropertyLoss(fireStatisticsPo.getPropertyLoss());
+                jcjAjxx.setDeathToll(fireStatisticsPo.getDeathToll());
+                jcjAjxx.setNonFatal(fireStatisticsPo.getNonFatal());
+            }
+        }
+        //查询车辆和人员信息
+        List<JcjZzclxx> carLit = jcjZzclxxService.getByAjId(jcjAjxx.getId());
+        jcjAjxx.setCarList(carLit);
+        return jcjAjxx;
+    }
+
+    @Override
+    public List<AlertStatisticsVO> getAlertStatistics(Date startTime, Date endTime) {
+
+        //获取同比
+        Date upStartTime = DateUtils.addYears(startTime, -1);
+        Date upEndTime = DateUtils.addYears(endTime, -1);
+        List<AlertStatisticsVO> list = new ArrayList<>();
+        list.add(getAsV(startTime, endTime, ALERT_TYPE[0]));
+        list.add(getAsV(startTime, endTime, ALERT_TYPE[1]));
+        list.add(getAsV(startTime, endTime, ALERT_TYPE[2]));
+        list.forEach(alertStatisticsVO -> {
+            AlertStatisticsVO upAsv = getAsV(upStartTime, upEndTime, alertStatisticsVO.getType());
+            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;
+    }
+    public AlertStatisticsVO getAsV(Date startTime, Date endTime, String type){
+        AlertStatisticsVO alertStatisticsVo = new AlertStatisticsVO();
+        LambdaQueryWrapper<JcjAjxx> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(StringUtils.isNotBlank(type),JcjAjxx::getAjlx,type);
+        if (null != startTime && null != endTime){
+            queryWrapper.between(JcjAjxx::getDcsj,startTime,endTime);
+        }
+        alertStatisticsVo.setType(type);
+        alertStatisticsVo.setNumber(this.count(queryWrapper));
+        return alertStatisticsVo;
+    }
 }

+ 8 - 1
mhfire-service/src/main/java/com/bizmatics/mhfire/service/impl/JcjZzclxxServiceImpl.java

@@ -1,11 +1,14 @@
 package com.bizmatics.mhfire.service.impl;
 
+import com.bizmatics.common.mvc.base.AbstractCrudService;
+import com.bizmatics.mhfire.model.CarPerson;
 import com.bizmatics.mhfire.model.JcjZzclxx;
 import com.bizmatics.mhfire.persistence.mapper.JcjZzclxxMapper;
 import com.bizmatics.mhfire.service.JcjZzclxxService;
-import com.bizmatics.common.mvc.base.AbstractCrudService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 车辆作战信息 服务实现类
@@ -17,4 +20,8 @@ import org.springframework.stereotype.Service;
 @Service
 public class JcjZzclxxServiceImpl extends AbstractCrudService<JcjZzclxxMapper, JcjZzclxx> implements JcjZzclxxService {
 
+    @Override
+    public List<JcjZzclxx> getByAjId(String ajId) {
+        return baseMapper.selectByAjId(ajId);
+    }
 }

+ 32 - 1
mhfire-service/src/main/java/com/bizmatics/mhfire/service/impl/XfzWxzServiceImpl.java

@@ -1,11 +1,22 @@
 package com.bizmatics.mhfire.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.bizmatics.common.core.bean.CommonPage;
+import com.bizmatics.common.mvc.base.AbstractCrudService;
+import com.bizmatics.mhfire.model.JcjZzclxx;
 import com.bizmatics.mhfire.model.XfzWxz;
 import com.bizmatics.mhfire.persistence.mapper.XfzWxzMapper;
+import com.bizmatics.mhfire.service.FireSiteDetailService;
+import com.bizmatics.mhfire.service.JcjZzclxxService;
 import com.bizmatics.mhfire.service.XfzWxzService;
-import com.bizmatics.common.mvc.base.AbstractCrudService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +28,24 @@ import org.springframework.stereotype.Service;
 @Service
 public class XfzWxzServiceImpl extends AbstractCrudService<XfzWxzMapper, XfzWxz> implements XfzWxzService {
 
+
+    @Autowired
+    private FireSiteDetailService fireSiteDetailService;
+
+    @Autowired
+    private JcjZzclxxService jcjZzclxxService;
+    @Override
+    public CommonPage<XfzWxz> page(Integer current, Integer size) {
+        IPage<XfzWxz> page = new Page<>(current, size);
+        LambdaQueryWrapper<XfzWxz> queryWrapper = Wrappers.lambdaQuery();
+        page = this.page(page, queryWrapper);
+        return this.ToCommonPage(page);
+    }
+
+    @Override
+    public List<JcjZzclxx> getOne(String id) {
+        LambdaQueryWrapper<JcjZzclxx> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(JcjZzclxx::getJgxxXfjgId,id);
+        return jcjZzclxxService.list(queryWrapper);
+    }
 }