Selaa lähdekoodia

门禁数据 智能看板-用冷-温度 智慧餐厅数据

ZhangManMan 2 vuotta sitten
vanhempi
commit
9e00249476
20 muutettua tiedostoa jossa 407 lisäystä ja 10 poistoa
  1. 6 0
      src/main/java/com/sky/ioc/controller/life/RestaurantController.java
  2. 12 0
      src/main/java/com/sky/ioc/controller/security/PersonController.java
  3. 2 0
      src/main/java/com/sky/ioc/entity/domain/canteen/Cuisine.java
  4. 14 0
      src/main/java/com/sky/ioc/entity/domain/canteen/CuisineOrderItem.java
  5. 5 2
      src/main/java/com/sky/ioc/entity/domain/canteen/Order.java
  6. 16 0
      src/main/java/com/sky/ioc/entity/domain/security/SecurityDoor.java
  7. 20 0
      src/main/java/com/sky/ioc/entity/domain/security/SecurityDoorRecord.java
  8. 16 0
      src/main/java/com/sky/ioc/entity/domain/space/Building.java
  9. 6 1
      src/main/java/com/sky/ioc/mapper/CuisineMapper.java
  10. 9 0
      src/main/java/com/sky/ioc/mapper/CuisineOderItemMapper.java
  11. 3 1
      src/main/java/com/sky/ioc/mapper/CuisineOrderMapper.java
  12. 9 0
      src/main/java/com/sky/ioc/mapper/security/SecurityDoorMapper.java
  13. 9 0
      src/main/java/com/sky/ioc/mapper/security/SecurityDoorRecordMapper.java
  14. 2 0
      src/main/java/com/sky/ioc/service/canteen/RestaurantService.java
  15. 87 4
      src/main/java/com/sky/ioc/service/canteen/impl/RestaurantServiceImpl.java
  16. 15 2
      src/main/java/com/sky/ioc/service/energy/impl/EnergyServiceImpl.java
  17. 8 0
      src/main/java/com/sky/ioc/service/security/SecurityDoorRecordService.java
  18. 8 0
      src/main/java/com/sky/ioc/service/security/SecurityDoorService.java
  19. 81 0
      src/main/java/com/sky/ioc/service/security/impl/SecurityDoorRecordServiceImpl.java
  20. 79 0
      src/main/java/com/sky/ioc/service/security/impl/SecurityDoorServiceImpl.java

+ 6 - 0
src/main/java/com/sky/ioc/controller/life/RestaurantController.java

@@ -85,6 +85,12 @@ public class RestaurantController {
         return restaurantService.getTodayMenu();
     }
 
+    @ApiOperation("查询智慧生活中订单")
+    @PostMapping("getOrderData")
+    public ReturnMsg  getOrderData(){
+        return restaurantService.getOrderData();
+    }
+
 
 
 

+ 12 - 0
src/main/java/com/sky/ioc/controller/security/PersonController.java

@@ -1,8 +1,11 @@
 package com.sky.ioc.controller.security;
 
+import com.sky.ioc.entity.domain.security.SecurityDoorRecord;
 import com.sky.ioc.entity.params.IocParam;
 import com.sky.ioc.entity.params.Security.PersonParam;
 import com.sky.ioc.service.personnel.PersonnelService;
+import com.sky.ioc.service.security.SecurityDoorRecordService;
+import com.sky.ioc.service.security.SecurityDoorService;
 import com.sky.ioc.service.security.SecurityPersonService;
 import com.sky.ioc.service.security.SecurityService;
 import com.sky.ioc.tool.ReturnMsg;
@@ -65,5 +68,14 @@ public class PersonController {
         return securityPersonService.getPersonList(personParam);
     }
 
+    @Autowired
+    SecurityDoorRecordService securityDoorService;
+
+    @ApiOperation("门禁数据")
+    @PostMapping("/getDoor")
+    public ReturnMsg getDoor(){
+        return securityDoorService.getSecurityDoorRecordData();
+    }
+
 
 }

+ 2 - 0
src/main/java/com/sky/ioc/entity/domain/canteen/Cuisine.java

@@ -1,6 +1,7 @@
 package com.sky.ioc.entity.domain.canteen;
 
 import com.alibaba.fastjson.JSONObject;
+import io.swagger.models.auth.In;
 import lombok.Data;
 
 import java.util.concurrent.ThreadLocalRandom;
@@ -15,6 +16,7 @@ import java.util.concurrent.ThreadLocalRandom;
 @Data
 public class Cuisine {
 
+    private Integer id;
     private String cuisineName;
     private String cuisineImg;
     /*

+ 14 - 0
src/main/java/com/sky/ioc/entity/domain/canteen/CuisineOrderItem.java

@@ -0,0 +1,14 @@
+package com.sky.ioc.entity.domain.canteen;
+
+import lombok.Data;
+
+@Data
+public class CuisineOrderItem {
+
+
+    private Integer id;
+    private String pName;
+    private String orderNum;
+    private Integer pId;
+    private Double pPrice;
+}

+ 5 - 2
src/main/java/com/sky/ioc/entity/domain/canteen/Order.java

@@ -1,5 +1,6 @@
 package com.sky.ioc.entity.domain.canteen;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
 import java.util.List;
@@ -13,8 +14,10 @@ import java.util.List;
 
 
 @Data
+@TableName("cuisine_order")
 public class Order {
 
+    private Integer id;
 
     /**
      * 菜品信息
@@ -23,7 +26,7 @@ public class Order {
     /**
      * 订单ID
      */
-    private Integer  orderId;
+    private String  orderId;
     /**
      * 人员ID
      */
@@ -48,7 +51,7 @@ public class Order {
      * 线下 19
      * 人脸 4
      */
-    private Integer  payType;
+    private Integer  paytype;
 
 
 

+ 16 - 0
src/main/java/com/sky/ioc/entity/domain/security/SecurityDoor.java

@@ -0,0 +1,16 @@
+package com.sky.ioc.entity.domain.security;
+
+import lombok.Data;
+
+@Data
+public class SecurityDoor {
+
+    private Integer id;
+    private String code;
+    private String type;
+    private String number;
+    private String name;
+    private Integer regionId;
+
+
+}

+ 20 - 0
src/main/java/com/sky/ioc/entity/domain/security/SecurityDoorRecord.java

@@ -0,0 +1,20 @@
+package com.sky.ioc.entity.domain.security;
+
+import lombok.Data;
+
+@Data
+public class SecurityDoorRecord {
+
+    private Integer id;
+    private String type;
+
+    private Integer doorId;
+
+    private String inOutType;
+    private String time;
+    private Integer dept_id;
+    private String name;
+    private Integer company_id;
+
+
+}

+ 16 - 0
src/main/java/com/sky/ioc/entity/domain/space/Building.java

@@ -0,0 +1,16 @@
+package com.sky.ioc.entity.domain.space;
+
+import lombok.Data;
+
+@Data
+public class Building {
+
+    private Integer id;
+    private String name;
+
+    private String type;
+    private String buiildArea;
+    private String useableArea;
+
+    private String enterTime;
+}

+ 6 - 1
src/main/java/com/sky/ioc/mapper/CuisineMapper.java

@@ -1,12 +1,17 @@
 package com.sky.ioc.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sky.ioc.entity.domain.canteen.Cuisine;
 import com.sky.ioc.entity.params.IocParam;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 @Mapper
-public interface CuisineMapper {
+public interface CuisineMapper extends BaseMapper<Cuisine> {
+
+    @Select("SELECT  id,cuisine_name,cuisine_img,price FROM cuisine where cuisine_name = #{name} limit 1")
+    Cuisine getByName(@Param("name") String name);
 
 
 }

+ 9 - 0
src/main/java/com/sky/ioc/mapper/CuisineOderItemMapper.java

@@ -0,0 +1,9 @@
+package com.sky.ioc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sky.ioc.entity.domain.canteen.CuisineOrderItem;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface CuisineOderItemMapper extends BaseMapper<CuisineOrderItem> {
+}

+ 3 - 1
src/main/java/com/sky/ioc/mapper/CuisineOrderMapper.java

@@ -1,5 +1,7 @@
 package com.sky.ioc.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sky.ioc.entity.domain.canteen.Cuisine;
 import com.sky.ioc.entity.domain.canteen.Order;
 import com.sky.ioc.entity.params.IocParam;
 import org.apache.ibatis.annotations.Mapper;
@@ -10,7 +12,7 @@ import java.util.List;
 import java.util.Map;
 
 @Mapper
-public interface CuisineOrderMapper {
+public interface CuisineOrderMapper extends BaseMapper<Order> {
     @Select("<script> " +
             "SELECT count(DISTINCT user_id) FROM cuisine_order  where 1=1 " +
             "<if test='iocParam!=null and iocParam.deptId != null '>" +

+ 9 - 0
src/main/java/com/sky/ioc/mapper/security/SecurityDoorMapper.java

@@ -0,0 +1,9 @@
+package com.sky.ioc.mapper.security;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sky.ioc.entity.domain.security.SecurityDoor;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SecurityDoorMapper extends BaseMapper<SecurityDoor> {
+}

+ 9 - 0
src/main/java/com/sky/ioc/mapper/security/SecurityDoorRecordMapper.java

@@ -0,0 +1,9 @@
+package com.sky.ioc.mapper.security;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sky.ioc.entity.domain.security.SecurityDoorRecord;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SecurityDoorRecordMapper extends BaseMapper<SecurityDoorRecord> {
+}

+ 2 - 0
src/main/java/com/sky/ioc/service/canteen/RestaurantService.java

@@ -30,4 +30,6 @@ public interface RestaurantService {
     ReturnMsg getRestaurantConsumption(IocParam iocParam);
 
     ReturnMsg getRestaurantConsumptionChart(IocParam iocParam);
+
+    ReturnMsg getOrderData();
 }

+ 87 - 4
src/main/java/com/sky/ioc/service/canteen/impl/RestaurantServiceImpl.java

@@ -6,31 +6,40 @@ import com.sky.ioc.entity.Indeicator;
 import com.sky.ioc.entity.Label;
 import com.sky.ioc.entity.Cake;
 import com.sky.ioc.entity.domain.canteen.Cuisine;
+import com.sky.ioc.entity.domain.canteen.CuisineOrderItem;
 import com.sky.ioc.entity.domain.canteen.FoodMenu;
 import com.sky.ioc.entity.domain.canteen.Order;
+import com.sky.ioc.entity.domain.security.SecurityDoorRecord;
 import com.sky.ioc.entity.domain.system.Users;
 import com.sky.ioc.entity.params.IocParam;
 import com.sky.ioc.entity.params.IocTimeRange;
 import com.sky.ioc.mapper.CuisineMapper;
+import com.sky.ioc.mapper.CuisineOderItemMapper;
 import com.sky.ioc.mapper.CuisineOrderMapper;
 import com.sky.ioc.mapper.FoodMenusMapper;
+import com.sky.ioc.mapper.job.TokenMapper;
+import com.sky.ioc.mapper.security.SecurityDoorRecordMapper;
 import com.sky.ioc.service.canteen.RestaurantService;
 import com.sky.ioc.tool.DateUtil;
 import com.sky.ioc.tool.FalseData;
 import com.sky.ioc.tool.GeneralMethod;
 import com.sky.ioc.tool.ReturnMsg;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.ThreadLocalRandom;
 
 
@@ -38,6 +47,7 @@ import java.util.concurrent.ThreadLocalRandom;
  * @author LunCe
  */
 @Service
+@Slf4j
 public class RestaurantServiceImpl implements RestaurantService {
 
     @Autowired
@@ -46,7 +56,19 @@ public class RestaurantServiceImpl implements RestaurantService {
     @Autowired
     FoodMenusMapper foodMenusMapper;
 
+    @Autowired
+    TokenMapper tokenMapper;
+
+    @Value("${sky.dataIp}")
+    private String dataIp;
+
+    @Autowired
+    CuisineMapper cuisineMapper;
 
+    @Autowired
+    CuisineOderItemMapper cuisineOderItemMapper;
+
+    final static  String CANTEEN_ORDER_URL="%s/api/canteen/CANTEEN/order/list";
     /**
      * TODO  查询智慧生活中智慧餐厅的支付分析
      *
@@ -397,4 +419,65 @@ public class RestaurantServiceImpl implements RestaurantService {
         }
         return ReturnMsg.ok(labels1);
     }
+
+    @Override
+    public ReturnMsg getOrderData() {
+        cuisineOrderMapper.delete(null);
+        cuisineOderItemMapper.delete(null);
+        int pageNum = 1;
+        for (int k =0;k<10;k++){
+            pageNum = k+1;
+            String url =   String.format(CANTEEN_ORDER_URL,"http://"+dataIp)+"?pageNum="+pageNum+"&pageSize=1000";
+            Map<String,String> tokenMap = tokenMapper.getNewToken();
+            String token ="Bearer eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6IjUwZTU1NTRkLWJjYzYtNGRhMS1iZDUxLWFhNTc3YzU4YTFiNCIsInVzZXJuYW1lIjoiYWRtaW4ifQ.X10VPYJfeeRTka7OtqNPOGMpL4QkW3fR_TfCKXCmO-yXbIIrr_40fcwiVnpXfYVENo_BvXWEACRd-Y6nXsbkog";
+            if(tokenMap!=null){
+                token = "Bearer "+tokenMap.get("token");
+            }
+            HttpHeaders httpHeaders = new HttpHeaders();
+            httpHeaders.set("authorization", token);
+            HttpEntity<String> httpEntity = new HttpEntity(httpHeaders);
+            RestTemplate restTemplate = new RestTemplate();
+            ResponseEntity<Map> responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, Map.class);
+            Map<String, Object> body = responseEntity.getBody();
+            Integer code = (Integer)body.get("code");
+            String message = (String)body.get("msg");
+            if(code==200){
+                ArrayList list = (ArrayList) body.get("rows");
+                if(list!=null&&list.size()>0){
+                    for (int i=0;i<list.size();i++){
+                        LinkedHashMap json = (LinkedHashMap) list.get(i);
+                        Order order = new Order();
+                        order.setId((Integer) json.get("id"));
+                        order.setOrderId(String.valueOf(json.get("oriId")));
+                        order.setOrderPrice(Double.parseDouble(String.valueOf(json.get("totalFee"))));
+                        order.setOrderTime(String.valueOf(json.get("orderTime")));
+                        order.setPaytype(Integer.parseInt(String.valueOf(json.get("oSource"))));
+                        ArrayList products = (ArrayList) json.get("products");
+                        for(int j=0;j<products.size();j++){
+                            LinkedHashMap product = (LinkedHashMap) products.get(j);
+                            String name = String.valueOf(product.get("name"));
+                            CuisineOrderItem oderItem = new CuisineOrderItem();
+                            Cuisine cuisine = cuisineMapper.getByName(name);
+                            //.selectOne(new LambdaQueryWrapper<Cuisine>().eq(Cuisine::getCuisineName,name));
+                            if(cuisine!=null){
+                                oderItem.setPId(cuisine.getId());
+                                oderItem.setOrderNum(order.getOrderId());
+                                oderItem.setPName(name);
+                                oderItem.setPPrice(Double.parseDouble(String.valueOf(product.get("price"))));
+                                cuisineOderItemMapper.insert(oderItem);
+
+                            }
+                        }
+                        cuisineOrderMapper.insert(order);
+                    }
+                }
+
+            }else{
+                log.info("获取餐厅订单记录数据:"+message);
+                return  ReturnMsg.fail(message);
+            }
+        }
+        return ReturnMsg.ok();
+
+    }
 }

+ 15 - 2
src/main/java/com/sky/ioc/service/energy/impl/EnergyServiceImpl.java

@@ -171,8 +171,21 @@ public class EnergyServiceImpl implements EnergyService {
        /* String[] labKey = {"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"};*/
         List<String> lists = DateUtil.getBetweenDays("2023/03/01", "2023/03/31");
         String[] labKey = lists.toArray(new String[0]);
-        List<Label> labels1 = GeneralMethod.getInstance().dataGeneration(param, labKey);
-        return ReturnMsg.ok(labels1);
+       // List<Label> labels1 = GeneralMethod.getInstance().dataGeneration(param, labKey);
+        List<Label> list = new ArrayList<>();
+        ThreadLocalRandom random = ThreadLocalRandom.current();
+        for (int i = 0; i < labKey.length; i++) {
+            Label label = new Label();
+            JSONObject jsonObject = new JSONObject();
+            int i1 = random.nextInt(50, 150);
+            int i2 = random.nextInt(0, 35);
+            jsonObject.put(param[0],i1);
+            jsonObject.put(param[1],i2);
+            label.setJsonObject(jsonObject);
+            label.setLabel(labKey[i]);
+            list.add(label);
+        }
+        return ReturnMsg.ok(list);
     }
 
     @Override

+ 8 - 0
src/main/java/com/sky/ioc/service/security/SecurityDoorRecordService.java

@@ -0,0 +1,8 @@
+package com.sky.ioc.service.security;
+
+import com.sky.ioc.tool.ReturnMsg;
+
+public interface SecurityDoorRecordService {
+
+    ReturnMsg getSecurityDoorRecordData();
+}

+ 8 - 0
src/main/java/com/sky/ioc/service/security/SecurityDoorService.java

@@ -0,0 +1,8 @@
+package com.sky.ioc.service.security;
+
+import com.sky.ioc.tool.ReturnMsg;
+
+public interface SecurityDoorService {
+
+    ReturnMsg getSecurityDoorData();
+}

+ 81 - 0
src/main/java/com/sky/ioc/service/security/impl/SecurityDoorRecordServiceImpl.java

@@ -0,0 +1,81 @@
+package com.sky.ioc.service.security.impl;
+
+import com.sky.ioc.entity.domain.security.SecurityDoor;
+import com.sky.ioc.entity.domain.security.SecurityDoorRecord;
+import com.sky.ioc.mapper.job.TokenMapper;
+import com.sky.ioc.mapper.security.SecurityDoorMapper;
+import com.sky.ioc.mapper.security.SecurityDoorRecordMapper;
+import com.sky.ioc.service.security.SecurityDoorRecordService;
+import com.sky.ioc.tool.ReturnMsg;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.concurrent.ThreadLocalRandom;
+
+@Service
+@Slf4j
+public class SecurityDoorRecordServiceImpl implements SecurityDoorRecordService {
+    @Autowired
+    TokenMapper tokenMapper;
+
+    @Value("${sky.dataIp}")
+    private String dataIp;
+
+    @Autowired
+    SecurityDoorRecordMapper securityDoorRecordMapper;
+
+    final static  String SECURITY_DOOR_RECORD_URL="%s/api/safety/Hikvision/record/list";
+    @Override
+    public ReturnMsg getSecurityDoorRecordData() {
+        String url =   String.format(SECURITY_DOOR_RECORD_URL,"http://"+dataIp)+"??pageNum=1&pageSize=1000";
+        Map<String,String> tokenMap = tokenMapper.getNewToken();
+        String token ="Bearer eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6IjUwZTU1NTRkLWJjYzYtNGRhMS1iZDUxLWFhNTc3YzU4YTFiNCIsInVzZXJuYW1lIjoiYWRtaW4ifQ.X10VPYJfeeRTka7OtqNPOGMpL4QkW3fR_TfCKXCmO-yXbIIrr_40fcwiVnpXfYVENo_BvXWEACRd-Y6nXsbkog";
+        if(tokenMap!=null){
+            token = "Bearer "+tokenMap.get("token");
+        }
+        HttpHeaders httpHeaders = new HttpHeaders();
+        httpHeaders.set("authorization", token);
+        HttpEntity<String> httpEntity = new HttpEntity(httpHeaders);
+        RestTemplate restTemplate = new RestTemplate();
+        ResponseEntity<Map> responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, Map.class);
+        Map<String, Object> body = responseEntity.getBody();
+        Integer code = (Integer)body.get("code");
+        String message = (String)body.get("msg");
+        if(code==200){
+            ThreadLocalRandom random = ThreadLocalRandom.current();
+            ArrayList list = (ArrayList) body.get("rows");
+            if(list!=null&&list.size()>0){
+                securityDoorRecordMapper.delete(null);
+                for (int i=0;i<list.size();i++){
+                    LinkedHashMap json = (LinkedHashMap) list.get(i);
+                    SecurityDoorRecord securityDoorRecord = new SecurityDoorRecord();
+                    securityDoorRecord.setId((Integer) json.get("id"));
+                    if(json.get("employeeName")!=null){
+                        securityDoorRecord.setName(String.valueOf(json.get("employeeName")));
+                    }
+
+                    securityDoorRecord.setTime(String.valueOf(json.get("eventTime")));
+                    securityDoorRecord.setDoorId(Integer.parseInt(String.valueOf(json.get("doorId"))));
+                    securityDoorRecord.setInOutType(String.valueOf(json.get("inAndOutType")));
+                    securityDoorRecord.setType(String.valueOf(json.get("eventType")));
+                    securityDoorRecordMapper.insert(securityDoorRecord);
+                }
+            }
+            return ReturnMsg.ok();
+
+        }else{
+            log.info("获取门禁记录数据:"+message);
+            return  ReturnMsg.fail(message);
+        }
+    }
+}

+ 79 - 0
src/main/java/com/sky/ioc/service/security/impl/SecurityDoorServiceImpl.java

@@ -0,0 +1,79 @@
+package com.sky.ioc.service.security.impl;
+
+import com.sky.ioc.entity.domain.parking.IllegalParking;
+import com.sky.ioc.entity.domain.security.SecurityDoor;
+import com.sky.ioc.mapper.IllegalParkingMapper;
+import com.sky.ioc.mapper.job.TokenMapper;
+import com.sky.ioc.mapper.security.SecurityDoorMapper;
+import com.sky.ioc.service.security.SecurityDoorService;
+import com.sky.ioc.tool.ReturnMsg;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.concurrent.ThreadLocalRandom;
+
+@Service
+@Slf4j
+public class SecurityDoorServiceImpl implements SecurityDoorService {
+    @Autowired
+    TokenMapper tokenMapper;
+
+    @Value("${sky.dataIp}")
+    private String dataIp;
+
+    @Autowired
+    SecurityDoorMapper securityDoorMapper;
+
+    final static  String SECURITY_DOOR_URL="%s/api/safety/Hikvision/door/list";
+    @Override
+    public ReturnMsg getSecurityDoorData() {
+        String url =   String.format(SECURITY_DOOR_URL,"http://"+dataIp)+"??pageNum=1&pageSize=1000";
+        Map<String,String> tokenMap = tokenMapper.getNewToken();
+        String token ="Bearer eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6IjUwZTU1NTRkLWJjYzYtNGRhMS1iZDUxLWFhNTc3YzU4YTFiNCIsInVzZXJuYW1lIjoiYWRtaW4ifQ.X10VPYJfeeRTka7OtqNPOGMpL4QkW3fR_TfCKXCmO-yXbIIrr_40fcwiVnpXfYVENo_BvXWEACRd-Y6nXsbkog";
+        if(tokenMap!=null){
+            token = "Bearer "+tokenMap.get("token");
+        }
+        HttpHeaders httpHeaders = new HttpHeaders();
+        httpHeaders.set("authorization", token);
+        HttpEntity<String> httpEntity = new HttpEntity(httpHeaders);
+        RestTemplate restTemplate = new RestTemplate();
+        ResponseEntity<Map> responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, Map.class);
+        Map<String, Object> body = responseEntity.getBody();
+        Integer code = (Integer)body.get("code");
+        String message = (String)body.get("msg");
+        if(code==200){
+            ThreadLocalRandom random = ThreadLocalRandom.current();
+            ArrayList list = (ArrayList) body.get("rows");
+            if(list!=null&&list.size()>0){
+                securityDoorMapper.delete(null);
+                for (int i=0;i<list.size();i++){
+                    LinkedHashMap json = (LinkedHashMap) list.get(i);
+                    SecurityDoor securityDoor = new SecurityDoor();
+                    securityDoor.setId((Integer) json.get("id"));
+                    securityDoor.setName(String.valueOf(json.get("doorName")));
+                    securityDoor.setCode(String.valueOf(json.get("doorIndexCode")));
+                    securityDoor.setType(String.valueOf(json.get("channelType")));
+                    securityDoor.setNumber(String.valueOf(json.get("channelNo")));
+                    securityDoor.setRegionId(Integer.parseInt(String.valueOf(json.get("regionId"))));
+                    securityDoorMapper.insert(securityDoor);
+                }
+            }
+            return ReturnMsg.ok();
+
+        }else{
+            log.info("获取门禁点数据:"+message);
+            return  ReturnMsg.fail(message);
+        }
+    }
+
+}