Ver Fonte

接口同步楼层工位信息

ZhangManMan há 2 anos atrás
pai
commit
40d44e9e22

+ 17 - 0
src/main/java/com/sky/ioc/entity/domain/space/BuildingFloor.java

@@ -0,0 +1,17 @@
+package com.sky.ioc.entity.domain.space;
+
+import lombok.Data;
+
+@Data
+public class BuildingFloor {
+    private Integer id;
+    private String name;
+    private String code;
+
+    private Integer buildingId;
+    private String createTime;
+    private String updateTime;
+
+    private Integer isDel;
+
+}

+ 30 - 0
src/main/java/com/sky/ioc/entity/domain/space/BuildingRoom.java

@@ -0,0 +1,30 @@
+package com.sky.ioc.entity.domain.space;
+
+import lombok.Data;
+/**
+ * TODO
+ *
+ * @Description  楼层房间
+
+ **/
+@Data
+public class BuildingRoom {
+
+    private Integer id;
+
+    private String name;
+    private String code;
+
+    private Integer floorId;
+    private Integer buildingId;
+    private Integer deptId;
+
+    private String buildingArea;
+    private String useableArea;
+    private String publicArea;
+
+    private Integer status;
+    private Integer isDel;
+
+
+}

+ 22 - 0
src/main/java/com/sky/ioc/entity/domain/space/BuildingStation.java

@@ -0,0 +1,22 @@
+package com.sky.ioc.entity.domain.space;
+
+import lombok.Data;
+
+@Data
+public class BuildingStation {
+
+    private Integer id;
+
+    private String type;
+    private String code;
+
+    private Integer roomId;
+    private Integer deptId;
+
+    private String createTime;
+    private String updateTime;
+
+    private Integer status;
+    private Integer isDel;
+
+}

+ 5 - 0
src/main/java/com/sky/ioc/entity/params/IocParam.java

@@ -23,6 +23,11 @@ public class IocParam {
      */
     private Integer floorId;
 
+    /**
+     * 会议室ID
+     */
+    private Integer roomId;
+
     /**
      * 分页数
      */

+ 6 - 0
src/main/java/com/sky/ioc/job/LoginTokenJob.java

@@ -32,6 +32,12 @@ public class LoginTokenJob implements Job {
         String postUrl = "http://192.168.1.45:9001/api/auth/login";
         // 2.请求参数JSON格式
         Map<String,String> map = tokenMapper.getNewToken();
+        if(map==null){
+            map = new HashMap<>();
+            map.put("username","admin");
+            map.put("password","admin123");
+            tokenMapper.addToken(1,"admin","admin123");
+        }
         map.put("loginType","API-TOKEN");
         String json = JSON.toJSONString(map);
         // 3.创建RestTemplate

+ 5 - 1
src/main/java/com/sky/ioc/mapper/job/TokenMapper.java

@@ -12,12 +12,16 @@ import java.util.Map;
 @Mapper
 public interface TokenMapper {
 
-    @Select("select * from  third_token ORDER BY update_time desc ")
+    @Select("select * from  third_token ORDER BY update_time desc limit 1 ")
     Map<String,String> getNewToken();
 
     @Update("update third_token set token = #{token},update_time = now() where id= #{id}")
     Integer updateToken(@Param("id") Integer id,@Param("token") String token);
 
+    @Update("insert into  third_token(id,username,password) values (#{id},#{username},#{password})")
+    Integer addToken(@Param("id") Integer id,@Param("username") String username,
+                     @Param("password") String password);
+
 
 
 }

+ 15 - 0
src/main/java/com/sky/ioc/mapper/meeting/MeetingRecordMapper.java

@@ -2,8 +2,23 @@ package com.sky.ioc.mapper.meeting;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sky.ioc.entity.domain.meeting.MeetingRecord;
+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 MeetingRecordMapper extends BaseMapper<MeetingRecord> {
+
+    @Select("<script> " +
+            "SELECT count(1) FROM meeting_record  where 1=1 " +
+            "<if test='iocParam!=null and iocParam.timeRange != null '>" +
+            "<![CDATA[ and start_time >= #{iocParam.timeRange.startDate} " +
+            " AND end_time <= #{iocParam.timeRange.endDate} ]]> " +
+            "</if>" +
+            "<if test='iocParam!=null and iocParam.roomId != null '>" +
+            " and room_id = #{iocParam.roomId} " +
+            "</if>" +
+            "</script>")
+    Integer getTotalByTimeAndRoomId(@Param("iocParam") IocParam iocParam);
 }

+ 11 - 0
src/main/java/com/sky/ioc/mapper/meeting/MeetingRoomMapper.java

@@ -3,7 +3,18 @@ package com.sky.ioc.mapper.meeting;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sky.ioc.entity.domain.meeting.MeetingRoom;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 @Mapper
 public interface MeetingRoomMapper extends BaseMapper<MeetingRoom> {
+    @Select("<script> " +
+            "select count(1) from meeting_room where 1=1 " +
+            "<if test='floorId!=null '>" +
+            " and floor_id = #{floorId} " +
+            "</if>" +
+            "</script>")
+    List<MeetingRoom> getListRoomByFloorId(@Param("floorId") Integer floorId);
 }

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

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

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

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

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

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

+ 2 - 0
src/main/java/com/sky/ioc/service/meeting/MeetingRoomService.java

@@ -4,4 +4,6 @@ import com.sky.ioc.tool.ReturnMsg;
 
 public interface MeetingRoomService {
     ReturnMsg getMeetingRoomList();
+
+
 }

+ 8 - 0
src/main/java/com/sky/ioc/service/space/BuildingFloorService.java

@@ -0,0 +1,8 @@
+package com.sky.ioc.service.space;
+
+import com.sky.ioc.tool.ReturnMsg;
+
+public interface BuildingFloorService {
+
+    ReturnMsg getBuildingFloorList();
+}

+ 8 - 0
src/main/java/com/sky/ioc/service/space/BuildingRoomService.java

@@ -0,0 +1,8 @@
+package com.sky.ioc.service.space;
+
+import com.sky.ioc.tool.ReturnMsg;
+
+public interface BuildingRoomService {
+
+    ReturnMsg getBuildingRoomList();
+}

+ 8 - 0
src/main/java/com/sky/ioc/service/space/BuildingStationService.java

@@ -0,0 +1,8 @@
+package com.sky.ioc.service.space;
+
+import com.sky.ioc.tool.ReturnMsg;
+
+public interface BuildingStationService {
+
+    ReturnMsg getBuildingStationList();
+}

+ 79 - 0
src/main/java/com/sky/ioc/service/space/impl/BuildingFloorServiceImpl.java

@@ -0,0 +1,79 @@
+package com.sky.ioc.service.space.impl;
+
+import com.sky.ioc.entity.domain.space.BuildingFloor;
+import com.sky.ioc.mapper.job.TokenMapper;
+import com.sky.ioc.mapper.space.BuildingFloorMapper;
+import com.sky.ioc.service.space.BuildingFloorService;
+import com.sky.ioc.tool.ReturnMsg;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+@Service
+@Slf4j
+public class BuildingFloorServiceImpl implements BuildingFloorService {
+    @Autowired
+    BuildingFloorMapper buildingFloorMapper;
+
+    @Autowired
+    TokenMapper tokenMapper;
+
+    final static  String BUILDING_FLOOR_URL="http://192.168.1.45:9001/api/space/SPACE/floorArea/list?pageNum=1&pageSize=90000";
+
+
+    @Override
+    public ReturnMsg getBuildingFloorList() {
+        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);
+        // 3.创建RestTemplate
+        RestTemplate restTemplate = new RestTemplate();
+        // 发送GET请求
+        ResponseEntity<Map> responseEntity = restTemplate.exchange(BUILDING_FLOOR_URL, HttpMethod.GET, httpEntity, Map.class);
+        // 获取响应对象里的 body 对象
+        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){
+                buildingFloorMapper.delete(null);
+                for (int i=0;i<list.size();i++){
+                    LinkedHashMap json = (LinkedHashMap) list.get(i);
+                    BuildingFloor floor = new BuildingFloor();
+                    floor.setId((Integer) json.get("id"));
+                    floor.setName((String) json.get("name"));
+                    floor.setBuildingId(Integer.parseInt(String.valueOf(json.get("buildingId"))));
+                    floor.setCode(String.valueOf(json.get("code")));
+                    floor.setIsDel(Integer.parseInt(String.valueOf(json.get("delFlag"))));
+                    floor.setCreateTime(String.valueOf(json.get("createTime")));
+                    floor.setUpdateTime(String.valueOf(json.get("updateTime")));
+                    buildingFloorMapper.insert(floor);
+                }
+            }
+            return ReturnMsg.ok();
+        }else{
+            log.info("获取楼层数据:"+message);
+            return ReturnMsg.fail(message);
+        }
+    }
+}

+ 87 - 0
src/main/java/com/sky/ioc/service/space/impl/BuildingRoomServiceImpl.java

@@ -0,0 +1,87 @@
+package com.sky.ioc.service.space.impl;
+
+import com.sky.ioc.entity.domain.meeting.MeetingRoom;
+import com.sky.ioc.entity.domain.space.BuildingRoom;
+import com.sky.ioc.mapper.job.TokenMapper;
+import com.sky.ioc.mapper.space.BuildingRoomMapper;
+import com.sky.ioc.service.space.BuildingRoomService;
+import com.sky.ioc.tool.ReturnMsg;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+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.regex.Matcher;
+import java.util.regex.Pattern;
+
+@Service
+@Slf4j
+public class BuildingRoomServiceImpl implements BuildingRoomService {
+
+    @Autowired
+    BuildingRoomMapper buildingRoomMapper;
+
+    @Autowired
+    TokenMapper tokenMapper;
+
+    final static  String BUILDING_ROOM_URL="http://192.168.1.45:9001/api/space/SPACE/roomArea/list?pageNum=1&pageSize=90000";
+
+
+    @Override
+    public ReturnMsg getBuildingRoomList() {
+        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);
+        // 3.创建RestTemplate
+        RestTemplate restTemplate = new RestTemplate();
+        // 发送GET请求
+        ResponseEntity<Map> responseEntity = restTemplate.exchange(BUILDING_ROOM_URL, HttpMethod.GET, httpEntity, Map.class);
+        // 获取响应对象里的 body 对象
+        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){
+                buildingRoomMapper.delete(null);
+                for (int i=0;i<list.size();i++){
+                    LinkedHashMap json = (LinkedHashMap) list.get(i);
+                    BuildingRoom room = new BuildingRoom();
+                    room.setId((Integer) json.get("id"));
+                    room.setName((String) json.get("name"));
+                    room.setFloorId(Integer.parseInt(String.valueOf(json.get("floorId"))));
+                    room.setBuildingId(Integer.parseInt(String.valueOf(json.get("buildingId"))));
+                    room.setBuildingArea(String.valueOf(json.get("buildingArea")));
+                    room.setUseableArea(String.valueOf(json.get("usableArea")));
+                    room.setPublicArea(String.valueOf(json.get("publicArea")));
+                    room.setCode(String.valueOf(json.get("code")));
+                    room.setDeptId(Integer.parseInt(String.valueOf(json.get("officeId"))));
+                    room.setStatus(Integer.parseInt(String.valueOf(json.get("status"))));
+                    room.setIsDel(Integer.parseInt(String.valueOf(json.get("delFlag"))));
+                    buildingRoomMapper.insert(room);
+                }
+            }
+            return ReturnMsg.ok();
+        }else{
+            log.info("获取楼层房间数据:"+message);
+            return ReturnMsg.fail(message);
+        }
+    }
+}

+ 88 - 0
src/main/java/com/sky/ioc/service/space/impl/BuildingStationServiceImpl.java

@@ -0,0 +1,88 @@
+package com.sky.ioc.service.space.impl;
+
+import com.sky.ioc.entity.domain.space.BuildingStation;
+import com.sky.ioc.mapper.job.TokenMapper;
+import com.sky.ioc.mapper.space.BuildingStationMapper;
+import com.sky.ioc.service.space.BuildingStationService;
+import com.sky.ioc.tool.ReturnMsg;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+@Service
+@Slf4j
+public class BuildingStationServiceImpl implements BuildingStationService {
+
+    @Autowired
+    BuildingStationMapper buildingStationMapper;
+
+    @Autowired
+    TokenMapper tokenMapper;
+
+    final static  String BUILDING_STATION_URL="http://192.168.1.45:9001/api/space/SPACE/cellArea/list?pageNum=1&pageSize=90000";
+
+
+    @Override
+    public ReturnMsg getBuildingStationList() {
+        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);
+        // 3.创建RestTemplate
+        RestTemplate restTemplate = new RestTemplate();
+        // 发送GET请求
+        ResponseEntity<Map> responseEntity = restTemplate.exchange(BUILDING_STATION_URL, HttpMethod.GET, httpEntity, Map.class);
+        // 获取响应对象里的 body 对象
+        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){
+                buildingStationMapper.delete(null);
+                for (int i=0;i<list.size();i++){
+                    LinkedHashMap json = (LinkedHashMap) list.get(i);
+                    BuildingStation station = new BuildingStation();
+                    station.setId((Integer) json.get("id"));
+                    station.setCode(String.valueOf(json.get("code")));
+                    if(json.get("officeId")!=null){
+                        station.setDeptId(Integer.parseInt(String.valueOf(json.get("officeId"))));
+                    }
+                    if(json.get("roomId")!=null){
+                        station.setRoomId(Integer.parseInt(String.valueOf(json.get("roomId"))));
+                    }
+                   // station.setDeptId(Integer.parseInt(String.valueOf(json.get("officeId"))));
+                    station.setStatus(Integer.parseInt(String.valueOf(json.get("status"))));
+                    station.setIsDel(Integer.parseInt(String.valueOf(json.get("delFlag"))));
+
+                    station.setType(String.valueOf(json.get("type")));
+                    station.setCreateTime(String.valueOf(json.get("createTime")));
+                    station.setUpdateTime(String.valueOf(json.get("updateTime")));
+                    buildingStationMapper.insert(station);
+                }
+            }
+            return ReturnMsg.ok();
+        }else{
+            log.info("获取工位数据:"+message);
+            return ReturnMsg.fail(message);
+        }
+    }
+}