Pārlūkot izejas kodu

警情消防站点api

yq 3 gadi atpakaļ
vecāks
revīzija
bb8df91241

+ 64 - 0
mhfire-controller/src/main/java/com/bizmatics/mhfire/controller/web/TestController.java

@@ -0,0 +1,64 @@
+package com.bizmatics.mhfire.controller.web;
+
+import com.bizmatics.mhfire.model.Alert;
+import com.bizmatics.mhfire.model.FireSite;
+import com.bizmatics.mhfire.service.api.AlertAndSiteApi;
+import com.bizmatics.mhfire.service.job.AlertJob;
+import com.bizmatics.mhfire.service.job.FireSiteJob;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author yq
+ * @date 2021/8/12 11:05
+ */
+@Log4j2
+@RestController
+public class TestController {
+
+    @Autowired
+    private AlertJob alertJob;
+
+    @Autowired
+    private FireSiteJob fireSiteJob;
+
+    @GetMapping("login")
+    public String login(){
+        return AlertAndSiteApi.login(AlertAndSiteApi.USER_NAME,AlertAndSiteApi.USER_PASSWORD);
+    }
+
+    @GetMapping("alert")
+    public List<Alert> alert(@RequestParam(required = false) String ajlx,
+                             @RequestParam(required = false) String searchValue,
+                             @RequestParam Integer page,
+                             @RequestParam Integer size,
+                             @RequestParam String token){
+        return AlertAndSiteApi.alertPage(ajlx,searchValue,page,size,token);
+    }
+
+    @GetMapping("fireSite")
+    public List<FireSite> fireSite(@RequestParam(required = false) String dwxz,
+                                   @RequestParam(required = false) String xfzlx,
+                                   @RequestParam(required = false) String rang,
+                                   @RequestParam(required = false) String addr,
+                                   @RequestParam String token){
+        return AlertAndSiteApi.fireSiteList(dwxz, xfzlx, rang, addr, token);
+    }
+
+    @GetMapping("alertJob")
+    public void alertJob(){
+        alertJob.execute();
+    }
+
+
+    @GetMapping("fireSiteJob")
+    public void fireSiteJob(){
+        fireSiteJob.execute();
+    }
+
+}

+ 4 - 0
mhfire-model/src/main/java/com/bizmatics/mhfire/model/Alert.java

@@ -1,6 +1,7 @@
 package com.bizmatics.mhfire.model;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonAlias;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -51,9 +52,11 @@ public class Alert implements Serializable {
 
     private Date fdsj;
 
+    @JsonAlias("gIS_X")
     @TableField("gIS_X")
     private String gisX;
 
+    @JsonAlias("gIS_Y")
     @TableField("gIS_Y")
     private String gisY;
 
@@ -69,6 +72,7 @@ public class Alert implements Serializable {
 
     private String qy;
 
+    @JsonAlias("sJC")
     @TableField("sJC")
     private Date sJC;
 

+ 7 - 0
mhfire-model/src/main/java/com/bizmatics/mhfire/model/FireSite.java

@@ -1,6 +1,7 @@
 package com.bizmatics.mhfire.model;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonAlias;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -22,9 +23,12 @@ public class FireSite implements Serializable {
 
     private static final long serialVersionUID=1L;
 
+
+    @JsonAlias("DWXZ")
     @TableField("DWXZ")
     private String dwxz;
 
+    @JsonAlias("LDGDDH")
     @TableField("LDGDDH")
     private String ldgddh;
 
@@ -40,12 +44,15 @@ public class FireSite implements Serializable {
 
     private String addr;
 
+    @JsonAlias("SSZD")
     @TableField("SSZD")
     private String sszd;
 
+    @JsonAlias("SZWZ")
     @TableField("SZWZ")
     private String szwz;
 
+    @JsonAlias("WD")
     @TableField("WD")
     private String wd;
 

+ 149 - 0
mhfire-service/src/main/java/com/bizmatics/mhfire/service/api/AlertAndSiteApi.java

@@ -0,0 +1,149 @@
+package com.bizmatics.mhfire.service.api;
+
+import com.bizmatics.common.core.exception.BusinessException;
+import com.bizmatics.common.core.util.HttpUtils;
+import com.bizmatics.common.spring.util.JsonUtils;
+import com.bizmatics.mhfire.model.Alert;
+import com.bizmatics.mhfire.model.FireSite;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import lombok.extern.log4j.Log4j2;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author yq
+ * @date 2021/8/12 9:38
+ */
+@Log4j2
+public class AlertAndSiteApi {
+    /**
+     * 账号
+     */
+    public static final String USER_NAME = "zhgl";
+    /**
+     * 密码
+     */
+    public static final String USER_PASSWORD = "4VshDAQwHJEQSikJKE3oIiwxDcjfUEbi5nTWsNX6Y8ZFX2rk6c6ez7uDZdRjsQfzwSEGVVqdIfPeq1JPLYqw==";
+    /**
+     * 登录url
+     */
+    private static final String LOGIN_URL = "http://172.200.50.4:7100/bsUser/user/login";
+    /**
+     * 警情url
+     */
+    private static final String ALERT_URL = "http://172.200.50.4:7100/xf/case/queryCase";
+    /**
+     * 消防站点url
+     */
+    private static final String FIRE_SITE_URL = "http://172.200.50.4:7100/xf/fire/queryNature";
+
+    private static final ObjectMapper MAPPER = new ObjectMapper();
+
+    /**
+     * 登录
+     * @return
+     */
+    public static String login(String userName,String userPassword){
+        Map<String,String> params = new HashMap<>();
+        params.put("userName",userName);
+        params.put("userPassword",userPassword);
+        String token = "";
+        try {
+            String result = HttpUtils.postJson(LOGIN_URL, JsonUtils.toJson(params), null);
+            JsonNode arrNode = new ObjectMapper().readTree(result);
+            log.info("获取登录接口信息"+arrNode);
+            if ("200".equals(arrNode.get("code").asText())){
+                token = arrNode.get("data").asText();
+            }else {
+                log.error("调用登录api失败"+arrNode.get("msg"));
+            }
+        } catch (IOException e) {
+            log.error("调用登录api异常"+ e.getMessage());
+        }
+        return token;
+    }
+
+    /**
+     *
+     * @param ajlx 案件类型
+     * @param searchValue 地址或补充信息
+     * @return
+     */
+    public static List<Alert> alertPage(String ajlx,String searchValue,Integer page,Integer size,String token){
+        List<Alert> alerts = new ArrayList<>();
+        //添加参数信息
+        Map<String,Object> params = new HashMap<>();
+        params.put("ajlx",ajlx);
+        params.put("searchValue",searchValue);
+        params.put("page",page);
+        params.put("size",size);
+        //添加token信息
+        Map<String,String> header = new HashMap<>();
+        header.put("Authorization",token);
+        try {
+            String result = HttpUtils.postJson(ALERT_URL, JsonUtils.toJson(params), header);
+            JsonNode arrNode = MAPPER.readTree(result);
+            log.info("获取警情接口信息"+arrNode);
+            if ("200".equals(arrNode.get("code").asText())){
+                JsonNode data = arrNode.get("data");
+                JsonNode iterms = data.get("items");
+                if (iterms.isArray() && iterms.size() > 0){
+                    alerts = MAPPER.readValue(iterms.traverse(), new TypeReference<List<Alert>>() {});
+                }
+            }else {
+                log.error("调用警情api失败:"+arrNode.get("msg"));
+            }
+        } catch (IOException e) {
+            log.error("调用警情api异常"+ e.getMessage());
+            throw new BusinessException("调用警情api异常:"+e.getMessage());
+        }
+        return alerts;
+    }
+
+
+    /**
+     * 站点集合
+     * @param dwxz 单位
+     * @param xfzlx 消防站类型
+     * @param rang 半径范围
+     * @param addr 地址
+     * @return
+     */
+    public static List<FireSite> fireSiteList(String dwxz, String xfzlx, String rang, String addr,String token){
+        List<FireSite> list = new ArrayList<>();
+        //添加参数信息
+        Map<String,String> params = new HashMap<>();
+        params.put("dwxz",dwxz);
+        params.put("xfzlx",xfzlx);
+        params.put("rang",rang);
+        params.put("addr",addr);
+        //添加token信息
+        Map<String,String> header = new HashMap<>();
+        header.put("Authorization",token);
+        try {
+            String result = HttpUtils.postJson(FIRE_SITE_URL, JsonUtils.toJson(params), header);
+            JsonNode arrNode = MAPPER.readTree(result);
+            log.info("获取警情接口信息"+arrNode);
+            if ("200".equals(arrNode.get("code").asText())){
+                JsonNode data = arrNode.get("data");
+                JsonNode iterms = data.get("items");
+                if (iterms.isArray() && iterms.size() > 0){
+                    list = MAPPER.readValue(iterms.traverse(), new TypeReference<List<FireSite>>() {});
+                }
+            }else {
+                log.error("调用站点api异常:"+arrNode.get("msg"));
+            }
+        } catch (IOException e) {
+            log.error("调用站点api异常:"+ e.getMessage());
+            throw new BusinessException("调用站点api异常:"+e.getMessage());
+        }
+        return list;
+    }
+}
+

+ 43 - 0
mhfire-service/src/main/java/com/bizmatics/mhfire/service/job/AlertJob.java

@@ -0,0 +1,43 @@
+package com.bizmatics.mhfire.service.job;
+
+import com.bizmatics.common.core.util.StringUtils;
+import com.bizmatics.mhfire.model.Alert;
+import com.bizmatics.mhfire.service.AlertService;
+import com.bizmatics.mhfire.service.api.AlertAndSiteApi;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author yq
+ * @date 2021/8/12 16:04
+ */
+@Slf4j
+@Component
+public class AlertJob {
+
+    @Autowired
+    private AlertService alertService;
+
+    public void execute(){
+        String token = AlertAndSiteApi.login(AlertAndSiteApi.USER_NAME, AlertAndSiteApi.USER_PASSWORD);
+        boolean nextFlag = true;
+        Integer page = 1;
+        Integer size = 500;
+        Integer count = 0;
+        while (StringUtils.isNotBlank(token) && nextFlag){
+            List<Alert> alerts = AlertAndSiteApi.alertPage(null, null, page, size, token);
+            count+=alerts.size();
+            if (CollectionUtils.isNotEmpty(alerts)){
+                alerts.forEach(alert -> alertService.saveOrUpdate(alert));
+                page++;
+            }else {
+                nextFlag = false;
+            }
+        }
+        log.info("alertJob----完成,获取警情记录:"+ count);
+    }
+}

+ 35 - 0
mhfire-service/src/main/java/com/bizmatics/mhfire/service/job/FireSiteJob.java

@@ -0,0 +1,35 @@
+package com.bizmatics.mhfire.service.job;
+
+import com.bizmatics.common.core.util.StringUtils;
+import com.bizmatics.mhfire.model.FireSite;
+import com.bizmatics.mhfire.service.FireSiteService;
+import com.bizmatics.mhfire.service.api.AlertAndSiteApi;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author yq
+ * @date 2021/8/12 16:04
+ */
+@Slf4j
+@Component
+public class FireSiteJob {
+
+
+    @Autowired
+    private FireSiteService fireSiteService;
+
+    public void execute(){
+        String token = AlertAndSiteApi.login(AlertAndSiteApi.USER_NAME, AlertAndSiteApi.USER_PASSWORD);
+        List<FireSite> list = new ArrayList<>();
+        if (StringUtils.isNotBlank(token)){
+            list = AlertAndSiteApi.fireSiteList(null, null, null, null, token);
+            list.forEach(fireSite -> fireSiteService.saveOrUpdate(fireSite));
+        }
+        log.info("fireSiteJob----完成,获取警情记录:"+ list.size());
+    }
+}