瀏覽代碼

闵行数据同步接口问题修复

fuyuchuan 2 天之前
父節點
當前提交
f69d0fd2df

+ 5 - 4
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/MhBuild.java

@@ -3,6 +3,7 @@ package com.usky.fire.domain;
 import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
+
 import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.util.List;
@@ -86,12 +87,12 @@ public class MhBuild implements Serializable {
     /**
      * 地上建筑层数
      */
-    private Long buildFloorsUp;
+    private Integer buildFloorsUp;
 
     /**
      * 地下建筑层数
      */
-    private Long buildFloorsDown;
+    private Integer buildFloorsDown;
 
     /**
      * 消防设施
@@ -126,12 +127,12 @@ public class MhBuild implements Serializable {
     /**
      * 租户ID
      */
-    private String leaseholderId;
+    private Long leaseholderId;
 
     /**
      * 公司id
      */
-    private String companyInfoId;
+    private Long companyInfoId;
 
     /**
      * 1:多产权,0:单产权

+ 380 - 241
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/MhScheduledImport.java

@@ -26,6 +26,7 @@ import org.springframework.stereotype.Component;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 
+import javax.annotation.PostConstruct;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -36,21 +37,29 @@ public class MhScheduledImport {
 
     private static final int PAGE_SIZE = 10000;
     private static final String BUILD_URL = "http://10.90.12.78:8085/Warehouse/minhang/getData/buildDataList?";
+    private static final String BUILD_URL_TEST = "https://aqpc.shxf-119.com/Warehouse/minhang/getData/buildDataList?";
     private static final String COMPANY_URL = "http://10.90.12.78:8085/Warehouse/minhang/getData/companyDataList?";
-    private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+    private static final String COMPANY_URL_TEST = "https://aqpc.shxf-119.com/Warehouse/minhang/getData/companyDataList?";
+    // private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+    // private static final DateTimeFormatter inputFormatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
     @Autowired
     private MhCompanyMapper mhCompanyMapper;
 
     @Autowired
     private MhBuildMapper mhBuildMapper;
 
+    // @PostConstruct
+    // public void init() {
+    //     executeTask();
+    // }
+
     // @Scheduled(fixedRate = 86400000)
     // 24小时执行一次
 
     //@Scheduled(cron = "0 0 8,20 * * ?")
     // 8点、20点执行一次
     //@Scheduled(fixedRate = 40000)
-    @Scheduled(cron = "0 0 * * * ?")
+    @Scheduled(fixedRate = 30000)
     public void executeTask() {
         log.info("定时任务开始执行: " + new java.util.Date());
 
@@ -67,7 +76,7 @@ public class MhScheduledImport {
         // //         page++;
         // //     }
         // // }
-        List<String[]> companyDataList = callApiToGetCompanyData(latestCreateTime, page, PAGE_SIZE);
+        List<MhCompany> companyDataList = callApiToGetCompanyData(latestCreateTime, page);
         if (CollectionUtils.isNotEmpty(companyDataList)) {
             storeDataToLocalDatabase(companyDataList);
         } else {
@@ -77,7 +86,7 @@ public class MhScheduledImport {
 
         log.info("导入建筑信息开始执行,当前时间: " + new java.util.Date());
         LocalDateTime latestUpdateTime = getLatestCreateTimeBuild();
-        List<String[]> bulidDataList = callApiToGetBuildingData(latestUpdateTime, page, PAGE_SIZE);
+        List<MhBuild> bulidDataList = callApiToGetBuildingData(latestUpdateTime, page);
         if (CollectionUtils.isNotEmpty(bulidDataList)) {
             storeBuildingDataToLocalDatabase(bulidDataList);
         } else {
@@ -89,120 +98,201 @@ public class MhScheduledImport {
     }
 
     // 处理建筑信息的行数据
-    private String[] processBuildingRow(JSONObject row) {
-        String id = row.getString("id");
-        String buildName = row.getString("buildName");
-        String lon = row.getString("lon");
-        String lat = row.getString("lat");
-        String area = row.getString("area");
-        String street = row.getString("street");
-        String address = row.getString("address");
-        String addressPc = row.getString("addressPc");
-        String buildStructure = row.getString("buildStructure");
-        String buildArea = row.getString("buildArea") == null ? "" : row.getString("buildArea");
-        String height = row.getString("height") == null ? "" : row.getString("height");
-        String buildFloorsUp = row.getString("buildFloorsUp");
-        String buildFloorsDown = row.getString("buildFloorsDown");
-        String fireFightingDevice = row.getString("fireFightingDevice") == null ? "" : row.getString("fireFightingDevice");
-        String buildNature = row.getString("buildNature");
-        String propertyOwner = row.getString("propertyOwner") == null ? "" : row.getString("propertyOwner");
-        String legal = row.getString("legal") == null ? "" : row.getString("legal");
-        String propertyLegal = row.getString("propertyLegal") == null ? "" : row.getString("propertyLegal");
-        String phone = row.getString("phone") == null ? "" : row.getString("phone");
-        String status = row.getString("status");
-        String leaseholderId = row.getString("leaseholderId") == null ? "" : row.getString("leaseholderId");
-        String companyInfoId = row.getString("companyInfoId") == null ? "" : row.getString("companyInfoId");
-        String property = row.getString("property");
-        String propertyStr = row.getString("propertyStr");
-        String manageCompany = row.getString("manageCompany") == null ? "" : row.getString("manageCompany");
-
-        String updateTimeStr1 = row.getString("updateTime");
-        LocalDateTime updateTime = null;
-        if (StringUtils.isNotBlank(updateTimeStr1)) {
-            try {
-
-                updateTime = LocalDateTime.parse(updateTimeStr1, formatter);
-            } catch (Exception e) {
-                log.error("建筑信息ID[{}]更新时间格式异常: {}", row.getString("id"), updateTimeStr1);
-                // 默认赋值为null
-            }
-        }
-
-        String updateTimeStr = row.getString("updateTimeStr");
-        String updateByPhone = row.getString("updateByPhone");
-        String updateBy = row.getString("updateBy");
-        String upperUpdateCompany = row.getString("upperUpdateCompany");
-        String updateCompany = row.getString("updateCompany");
-        String companyOperLogs = row.getString("companyOperLogs") == null ? "" : row.getString("companyOperLogs");
-        String buildNatures = row.getString("buildNatures") == null ? "" : row.getString("buildNatures");
-        String fireFightingDevices = row.getString("fireFightingDevices") == null ? "" : row.getString("fireFightingDevices");
-        String companyInfos = row.getString("companyInfos") == null ? "" : row.getString("companyInfos");
-
-        return new String[]{
-                id, buildName, lon, lat, area, street, address, addressPc, buildStructure,
-                buildArea, height, buildFloorsUp, buildFloorsDown, fireFightingDevice,
-                buildNature, propertyOwner, legal, propertyLegal, phone, status,
-                leaseholderId, companyInfoId, property, propertyStr, manageCompany,
-                buildNatures, fireFightingDevices, companyInfos, companyOperLogs, String.valueOf(updateTime),
-                updateTimeStr, updateBy, upperUpdateCompany, updateCompany, updateByPhone
-        };
+    private MhBuild processBuildingRow(JSONObject row) {
+        MhBuild mhBuild = new MhBuild();
+        mhBuild.setId(row.getLong("id"));
+        mhBuild.setBuildName(row.getString("buildName"));
+        mhBuild.setLon(row.getString("lon"));
+        mhBuild.setLat(row.getString("lat"));
+        mhBuild.setArea(row.getString("area"));
+        mhBuild.setStreet(row.getString("street"));
+        mhBuild.setAddress(row.getString("address"));
+        mhBuild.setAddressPc(row.getString("addressPc"));
+        mhBuild.setBuildStructure(row.getString("buildStructure"));
+        mhBuild.setBuildArea(row.getString("buildArea"));
+        mhBuild.setHeight(row.getString("height"));
+        mhBuild.setBuildFloorsUp(row.getInteger("buildFloorsUp"));
+        mhBuild.setBuildFloorsDown(row.getInteger("buildFloorsDown"));
+        mhBuild.setFireFightingDevice(row.getString("fireFightingDevice"));
+        mhBuild.setBuildNature(row.getString("buildNature"));
+        mhBuild.setPropertyOwner(row.getString("propertyOwner"));
+        mhBuild.setLegal(row.getString("legal"));
+        mhBuild.setPropertyLegal(row.getString("propertyLegal"));
+        mhBuild.setPhone(row.getString("phone"));
+        mhBuild.setStatus(row.getString("status"));
+        mhBuild.setLeaseholderId(row.getLong("leaseholderId"));
+        mhBuild.setCompanyInfoId(row.getLong("companyInfoId"));
+        mhBuild.setProperty(row.getInteger("property"));
+        mhBuild.setPropertyStr(row.getString("propertyStr"));
+        mhBuild.setManageCompany(row.getString("manageCompany"));
+        mhBuild.setBuildNatures(row.getString("buildNatures") != null
+                ? Arrays.asList(row.getString("buildNatures").split(","))
+                : Collections.emptyList());
+        mhBuild.setFireFightingDevices(row.getString("fireFightingDevices") != null
+                ? Arrays.asList(row.getString("fireFightingDevices").split(","))
+                : Collections.emptyList());
+        mhBuild.setCompanyInfos(row.getString("companyInfos") != null
+                ? Arrays.asList(row.getString("companyInfos").split(","))
+                : Collections.emptyList());
+        mhBuild.setCompanyOperLogs(row.getString("companyOperLogs"));
+        mhBuild.setUpdateTime(LocalDateTime.parse(row.getString("updateTime")));
+        mhBuild.setUpdateTimeStr(row.getString("updateTimeStr"));
+        mhBuild.setUpdateBy(row.getString("updateBy"));
+        mhBuild.setUpperUpdateCompany(row.getString("upperUpdateCompany"));
+        mhBuild.setUpdateCompany(row.getString("updateCompany"));
+        mhBuild.setUpdateByPhone(row.getString("updateByPhone"));
+        return mhBuild;
+
+        // Long id = row.getLong("id");
+        // String buildName = row.getString("buildName");
+        // String lon = row.getString("lon");
+        // String lat = row.getString("lat");
+        // String area = row.getString("area");
+        // String street = row.getString("street");
+        // String address = row.getString("address");
+        // String addressPc = row.getString("addressPc");
+        // String buildStructure = row.getString("buildStructure");
+        // String buildArea = row.getString("buildArea") == null ? "" : row.getString("buildArea");
+        // String height = row.getString("height") == null ? "" : row.getString("height");
+        // Integer buildFloorsUp = row.getInteger("buildFloorsUp");
+        // Integer buildFloorsDown = row.getInteger("buildFloorsDown");
+        // String fireFightingDevice = row.getString("fireFightingDevice") == null ? "" : row.getString("fireFightingDevice");
+        // String buildNature = row.getString("buildNature");
+        // String propertyOwner = row.getString("propertyOwner") == null ? "" : row.getString("propertyOwner");
+        // String legal = row.getString("legal") == null ? "" : row.getString("legal");
+        // String propertyLegal = row.getString("propertyLegal") == null ? "" : row.getString("propertyLegal");
+        // String phone = row.getString("phone") == null ? "" : row.getString("phone");
+        // String status = row.getString("status");
+        // Long leaseholderId = row.getLong("leaseholderId");
+        // Long companyInfoId = row.getLong("companyInfoId");
+        // Integer property = row.getInteger("property");
+        // String propertyStr = row.getString("propertyStr");
+        // String manageCompany = row.getString("manageCompany") == null ? "" : row.getString("manageCompany");
+        // String updateTime = row.getString("updateTime");
+
+        // LocalDateTime updateTime = null;
+        // if (StringUtils.isNotBlank(updateTimeStr1)) {
+        //     try {
+        //
+        //         updateTime = LocalDateTime.parse(updateTimeStr1, formatter);
+        //     } catch (Exception e) {
+        //         log.error("建筑信息ID[{}]更新时间格式异常: {}", row.getString("id"), updateTimeStr1);
+        //         // 默认赋值为null
+        //     }
+        // }
+
+        // String updateTimeStr = row.getString("updateTimeStr");
+        // String updateByPhone = row.getString("updateByPhone");
+        // String updateBy = row.getString("updateBy");
+        // String upperUpdateCompany = row.getString("upperUpdateCompany");
+        // String updateCompany = row.getString("updateCompany");
+        // String companyOperLogs = row.getString("companyOperLogs") == null ? "" : row.getString("companyOperLogs");
+        // List<String> buildNatures = row.getString("buildNatures") != null
+        //         ? Arrays.asList(row.getString("buildNatures").split(","))
+        //         : Collections.emptyList();
+        // List<String> fireFightingDevices = row.getString("fireFightingDevices") != null
+        //         ? Arrays.asList(row.getString("fireFightingDevices").split(","))
+        //         : Collections.emptyList();
+        // List<String> companyInfos = row.getString("companyInfos") != null
+        //         ? Arrays.asList(row.getString("companyInfos").split(","))
+        //         : Collections.emptyList();
+
+        // return new String[]{
+        //         id, buildName, lon, lat, area, street, address, addressPc, buildStructure,
+        //         buildArea, height, buildFloorsUp, buildFloorsDown, fireFightingDevice,
+        //         buildNature, propertyOwner, legal, propertyLegal, phone, status,
+        //         leaseholderId, companyInfoId, property, propertyStr, manageCompany,
+        //         buildNatures, fireFightingDevices, companyInfos, companyOperLogs, String.valueOf(updateTime),
+        //         updateTimeStr, updateBy, upperUpdateCompany, updateCompany, updateByPhone
+        // };
     }
 
     // 处理单位数据的行数据
-    private String[] processCompanyRow(JSONObject row) {
-        String id = row.getString("id");
-        String companyName = row.getString("companyName");
-        String companyStatus = row.getString("companyStatus");
-        String companyAddress = row.getString("companyAddress");
-        String qrcode = row.getString("qrcode");
-        String creditCode = row.getString("creditCode");
-        String companyLegal = row.getString("companyLegal");
-        String safetyManager = row.getString("safetyManager") == null ? "" : row.getString("safetyManager");
-        String phone = row.getString("phone");
-        String companyType1 = row.getString("companyType1");
-        String companyType2 = row.getString("companyType2");
-        String companyType3 = row.getString("companyType3");
-        String companyArea = row.getString("companyArea");
-        String interlayerArea = row.getString("interlayerArea");
-        String coldStorageArea = row.getString("coldStorageArea");
-        String usePart = row.getString("usePart") == null ? "" : row.getString("usePart");
-        String street = row.getString("street");
-        String buildId = row.getString("buildId");
-        String state = row.getString("state");
-        String photo = row.getString("photo");
-        String licensePhoto = row.getString("licensePhoto");
-        String reason = row.getString("reason");
-        String status = row.getString("status");
-        String isExamine = row.getString("isExamine");
-        String haveTrouble = row.getString("haveTrouble");
-        String createBy = row.getString("createBy");
-        String createTime = row.getString("createTime");
-        String updateBy = row.getString("updateBy") == null ? "" : row.getString("updateBy");
-        String updateTime = row.getString("updateTime");
-
-        return new String[]{
-                id, companyName, companyStatus, companyAddress, qrcode, creditCode, companyLegal,
-                safetyManager, phone, companyType1, companyType2, companyType3, companyArea,
-                interlayerArea, coldStorageArea, usePart, street, buildId, state, photo,
-                licensePhoto, reason, status, isExamine, haveTrouble, createBy, createTime,
-                updateBy, updateTime
-        };
+    private MhCompany processCompanyRow(JSONObject row) {
+        MhCompany mhCompany = new MhCompany();
+        mhCompany.setId(Long.parseLong(row.getString("id")));
+        mhCompany.setCompanyName(row.getString("companyName"));
+        mhCompany.setCompanyStatus(row.getString("companyStatus"));
+        mhCompany.setCompanyAddress(row.getString("companyAddress"));
+        mhCompany.setQrcode(row.getInteger("qrcode"));
+        mhCompany.setCreditCode(row.getString("creditCode"));
+        mhCompany.setCompanyLegal(row.getString("companyLegal"));
+        mhCompany.setSafetyManager(row.getString("safetyManager"));
+        mhCompany.setPhone(row.getString("phone"));
+        mhCompany.setCompanyType1(row.getString("companyType1"));
+        mhCompany.setCompanyType2(row.getString("companyType2"));
+        mhCompany.setCompanyType3(row.getString("companyType3"));
+        mhCompany.setCompanyArea(row.getString("companyArea"));
+        mhCompany.setInterlayerArea(row.getString("interlayerArea"));
+        mhCompany.setColdStorageArea(row.getString("coldStorageArea"));
+        mhCompany.setUsePart(row.getString("usePart"));
+        mhCompany.setStreet(row.getString("street"));
+        mhCompany.setBuildId(row.getLong("buildId"));
+        mhCompany.setState(row.getString("state"));
+        mhCompany.setPhoto(row.getString("photo"));
+        mhCompany.setLicensePhoto(row.getString("licensePhoto"));
+        mhCompany.setReason(row.getString("reason"));
+        mhCompany.setStatus(row.getInteger("status"));
+        mhCompany.setIsExamine(row.getInteger("isExamine"));
+        mhCompany.setHaveTrouble(row.getString("haveTrouble"));
+        mhCompany.setCreateBy(row.getString("createBy"));
+        mhCompany.setCreateTime(LocalDateTime.parse(row.getString("createTime")));
+        mhCompany.setUpdateBy(row.getString("updateBy"));
+        mhCompany.setUpdateTime(LocalDateTime.parse(row.getString("updateTime")));
+        return mhCompany;
+
+
+        // String id = row.getString("id");
+        // String companyName = row.getString("companyName");
+        // String companyStatus = row.getString("companyStatus");
+        // String companyAddress = row.getString("companyAddress");
+        // String qrcode = row.getString("qrcode");
+        // String creditCode = row.getString("creditCode");
+        // String companyLegal = row.getString("companyLegal");
+        // String safetyManager = row.getString("safetyManager") == null ? "" : row.getString("safetyManager");
+        // String phone = row.getString("phone");
+        // String companyType1 = row.getString("companyType1");
+        // String companyType2 = row.getString("companyType2");
+        // String companyType3 = row.getString("companyType3");
+        // String companyArea = row.getString("companyArea");
+        // String interlayerArea = row.getString("interlayerArea");
+        // String coldStorageArea = row.getString("coldStorageArea");
+        // String usePart = row.getString("usePart") == null ? "" : row.getString("usePart");
+        // String street = row.getString("street");
+        // String buildId = row.getString("buildId");
+        // String state = row.getString("state");
+        // String photo = row.getString("photo");
+        // String licensePhoto = row.getString("licensePhoto");
+        // String reason = row.getString("reason");
+        // String status = row.getString("status");
+        // String isExamine = row.getString("isExamine");
+        // String haveTrouble = row.getString("haveTrouble");
+        // String createBy = row.getString("createBy");
+        // String createTime = row.getString("createTime");
+        // String updateBy = row.getString("updateBy") == null ? "" : row.getString("updateBy");
+        // String updateTime = row.getString("updateTime");
+
+        // return new String[]{
+        //         id, companyName, companyStatus, companyAddress, qrcode, creditCode, companyLegal,
+        //         safetyManager, phone, companyType1, companyType2, companyType3, companyArea,
+        //         interlayerArea, coldStorageArea, usePart, street, buildId, state, photo,
+        //         licensePhoto, reason, status, isExamine, haveTrouble, createBy, createTime,
+        //         updateBy, updateTime
+        // };
     }
 
     // 获取建筑信息
-    private List<String[]> callApiToGetBuildingData(LocalDateTime latestCreateTime, int page, int pageSize) {
-        String url = BUILD_URL;
-        return callApiToGetData(url, latestCreateTime, page, pageSize);
+    private List<MhBuild> callApiToGetBuildingData(LocalDateTime latestCreateTime, int page) {
+        return callApiToGetMhBuildData(BUILD_URL_TEST, latestCreateTime, page, MhScheduledImport.PAGE_SIZE);
     }
 
     // 获取单位数据
-    private List<String[]> callApiToGetCompanyData(LocalDateTime latestCreateTime, int page, int pageSize) {
-        String url = COMPANY_URL;
-        return callApiToGetData(url, latestCreateTime, page, pageSize);
+    private List<MhCompany> callApiToGetCompanyData(LocalDateTime latestCreateTime, int page) {
+        return callApiToGetCompanyData(COMPANY_URL_TEST, latestCreateTime, page, PAGE_SIZE);
     }
 
     // 公共方法:发送 HTTP GET 请求并处理响应
-    private List<String[]> callApiToGetData(String url, LocalDateTime latestCreateTime, int page, int pageSize) {
+    private List<MhBuild> callApiToGetMhBuildData(String url, LocalDateTime latestCreateTime, int page, int pageSize) {
         if (latestCreateTime != null) {
             url += "beginTime=" + latestCreateTime + "&";
         }
@@ -210,7 +300,7 @@ public class MhScheduledImport {
 
         url = url.replaceAll(" ", "%20");
 
-        List<String[]> dataList = new ArrayList<>();
+        List<MhBuild> dataList = new ArrayList<>();
 
         try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
             HttpGet request = new HttpGet(url);
@@ -229,11 +319,47 @@ public class MhScheduledImport {
                 } else {
                     for (int i = 0; i < rows.size(); i++) {
                         JSONObject row = rows.getJSONObject(i);
-                        if (url.contains(BUILD_URL)) {
-                            dataList.add(processBuildingRow(row));
-                        } else if (url.contains(COMPANY_URL)) {
-                            dataList.add(processCompanyRow(row));
-                        }
+                        dataList.add(processBuildingRow(row));
+                    }
+                }
+            } else {
+                log.error("API请求失败,状态码: " + statusCode);
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+
+        return dataList;
+    }
+
+    private List<MhCompany> callApiToGetCompanyData(String url, LocalDateTime latestCreateTime, int page, int pageSize) {
+        if (latestCreateTime != null) {
+            url += "beginTime=" + latestCreateTime + "&";
+        }
+        url += "pageNum=" + page + "&pageSize=" + pageSize;
+
+        url = url.replaceAll(" ", "%20");
+
+        List<MhCompany> dataList = new ArrayList<>();
+
+        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
+            HttpGet request = new HttpGet(url);
+            request.addHeader("Content-Type", "application/json");
+            request.addHeader("token", getToken());
+
+            CloseableHttpResponse response = httpClient.execute(request);
+            int statusCode = response.getStatusLine().getStatusCode();
+            if (statusCode == 200) {
+                String responseBody = EntityUtils.toString(response.getEntity());
+                JSONObject jsonResponse = JSON.parseObject(responseBody);
+                JSONArray rows = jsonResponse.getJSONArray("rows");
+
+                if (rows.isEmpty()) {
+                    return Collections.emptyList();
+                } else {
+                    for (int i = 0; i < rows.size(); i++) {
+                        JSONObject row = rows.getJSONObject(i);
+                        dataList.add(processCompanyRow(row));
                     }
                 }
             } else {
@@ -249,10 +375,11 @@ public class MhScheduledImport {
     // 调用API获取token的方法
     private static String getToken() {
         String url = "http://10.90.12.78:8085/Warehouse/bigdata/getToken?username=admin";
+        String urlTest = "https://aqpc.shxf-119.com/Warehouse/bigdata/getToken?username=admin";
         String token = null;
 
         try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
-            HttpGet request = new HttpGet(url);
+            HttpGet request = new HttpGet(urlTest);
 
             CloseableHttpResponse response = httpClient.execute(request);
             int statusCode = response.getStatusLine().getStatusCode();
@@ -281,161 +408,173 @@ public class MhScheduledImport {
     private LocalDateTime getLatestCreateTimeCompany() {
         LambdaQueryWrapper<MhCompany> newData = Wrappers.lambdaQuery();
         newData.select(MhCompany::getCreateTime)
-                .orderByDesc(MhCompany::getId)
+                .orderByDesc(MhCompany::getCreateTime)
                 .last("LIMIT 1");
         MhCompany latestRecord = mhCompanyMapper.selectOne(newData);
+        log.info("最新一条单位数据{} ", latestRecord);
         return latestRecord != null ? latestRecord.getCreateTime() : null;
     }
 
-    // 获取数据库中mh_build最新的一条记录的 createTime
+    // 获取数据库中mh_build最新的一条记录的 updateTime
     private LocalDateTime getLatestCreateTimeBuild() {
         LambdaQueryWrapper<MhBuild> newData = Wrappers.lambdaQuery();
         newData.select(MhBuild::getUpdateTime)
-                .orderByDesc(MhBuild::getId)
+                .orderByDesc(MhBuild::getUpdateTime)
                 .last("LIMIT 1");
         MhBuild latestRecord = mhBuildMapper.selectOne(newData);
+        log.info("最新一条建筑数据{} ", latestRecord);
         return latestRecord != null ? latestRecord.getUpdateTime() : null;
     }
 
     // 将数据存储到本地数据库的方法
-    private void storeDataToLocalDatabase(List<String[]> dataList) {
-        for (String[] data : dataList) {
-            Integer id = Integer.valueOf(data[0]);
+    private void storeDataToLocalDatabase(List<MhCompany> datmhCompanyaList) {
+        for (MhCompany mhCompany : datmhCompanyaList) {
+            // Integer id = Integer.valueOf(data[0]);
             // String companyName = data[1];
+            Long id = mhCompany.getId();
             if (!recordExists(id)) {
-                MhCompany mhCompany = new MhCompany();
-                mhCompany.setId(Long.valueOf(data[0]));
-                mhCompany.setCompanyName(data[1]);
-                mhCompany.setCompanyStatus(data[2]);
-                mhCompany.setCompanyAddress(data[3]);
-                mhCompany.setQrcode(StringUtils.isBlank(data[4]) ? null : Integer.valueOf(data[4]));
-                mhCompany.setCreditCode(data[5]);
-                mhCompany.setCompanyLegal(data[6]);
-                mhCompany.setSafetyManager(data[7]);
-                mhCompany.setPhone(data[8]);
-                mhCompany.setCompanyType1(data[9]);
-                mhCompany.setCompanyType2(data[10]);
-                mhCompany.setCompanyType3(data[11]);
-                mhCompany.setCompanyArea(data[12]);
-                mhCompany.setInterlayerArea(data[13]);
-                mhCompany.setColdStorageArea(data[14]);
-                mhCompany.setUsePart(data[15]);
-                mhCompany.setStreet(data[16]);
-                mhCompany.setBuildId(StringUtils.isBlank(data[17]) ? null : Long.valueOf(data[17]));
-                mhCompany.setState(data[18]);
-                mhCompany.setPhoto(data[19]);
-                mhCompany.setLicensePhoto(data[20]);
-                mhCompany.setReason(data[21]);
-                mhCompany.setStatus(StringUtils.isBlank(data[22]) ? null : Integer.valueOf(data[22]));
-                mhCompany.setIsExamine(StringUtils.isBlank(data[23]) ? null : Integer.valueOf(data[23]));
-                mhCompany.setHaveTrouble(data[24]);
-                mhCompany.setCreateBy(data[25]);
-                if (data[26] != null) {
-                    try {
-                        LocalDateTime parseCreateTime = LocalDateTime.parse(data[26], formatter);
-                        mhCompany.setCreateTime(parseCreateTime);
-                    } catch (Exception e) {
-                        log.error("解析单位信息创建时间失败,时间字符串: " + data[26]);
-                    }
-                }
-                mhCompany.setUpdateBy(data[27]);
-                if (data[28] != null) {
-                    try {
-                        LocalDateTime parseUpdateTime = LocalDateTime.parse(data[28], formatter);
-                        mhCompany.setUpdateTime(parseUpdateTime);
-                    } catch (Exception e) {
-                        log.error("解析单位信息更新时间失败,时间字符串: " + data[28]);
-                    }
-                }
+                // MhCompany mhCompany = new MhCompany();
+                // mhCompany.setId(Long.valueOf(data[0]));
+                // mhCompany.setCompanyName(data[1]);
+                // mhCompany.setCompanyStatus(data[2]);
+                // mhCompany.setCompanyAddress(data[3]);
+                // mhCompany.setQrcode(StringUtils.isBlank(data[4]) ? null : Integer.valueOf(data[4]));
+                // mhCompany.setCreditCode(data[5]);
+                // mhCompany.setCompanyLegal(data[6]);
+                // mhCompany.setSafetyManager(data[7]);
+                // mhCompany.setPhone(data[8]);
+                // mhCompany.setCompanyType1(data[9]);
+                // mhCompany.setCompanyType2(data[10]);
+                // mhCompany.setCompanyType3(data[11]);
+                // mhCompany.setCompanyArea(data[12]);
+                // mhCompany.setInterlayerArea(data[13]);
+                // mhCompany.setColdStorageArea(data[14]);
+                // mhCompany.setUsePart(data[15]);
+                // mhCompany.setStreet(data[16]);
+                // mhCompany.setBuildId(StringUtils.isBlank(data[17]) ? null : Long.valueOf(data[17]));
+                // mhCompany.setState(data[18]);
+                // mhCompany.setPhoto(data[19]);
+                // mhCompany.setLicensePhoto(data[20]);
+                // mhCompany.setReason(data[21]);
+                // mhCompany.setStatus(StringUtils.isBlank(data[22]) ? null : Integer.valueOf(data[22]));
+                // mhCompany.setIsExamine(StringUtils.isBlank(data[23]) ? null : Integer.valueOf(data[23]));
+                // mhCompany.setHaveTrouble(data[24]);
+                // mhCompany.setCreateBy(data[25]);
+                // if (data[26] != null) {
+                //     try {
+                //         LocalDateTime parseCreateTime = LocalDateTime.parse(data[26], formatter);
+                //         mhCompany.setCreateTime(parseCreateTime);
+                //     } catch (Exception e) {
+                //         log.error("解析单位信息创建时间失败,时间字符串: " + data[26]);
+                //     }
+                // }
+                // mhCompany.setUpdateBy(data[27]);
+                // if (data[28] != null) {
+                //     try {
+                //         LocalDateTime parseUpdateTime = LocalDateTime.parse(data[28], formatter);
+                //         mhCompany.setUpdateTime(parseUpdateTime);
+                //     } catch (Exception e) {
+                //         log.error("解析单位信息更新时间失败,时间字符串: " + data[28]);
+                //     }
+                // }
 
                 mhCompanyMapper.insert(mhCompany);
             }
         }
     }
 
-    private void storeBuildingDataToLocalDatabase(List<String[]> dataList) {
-        for (String[] data : dataList) {
-            Integer id = Integer.valueOf(data[0]);
+    private void storeBuildingDataToLocalDatabase(List<MhBuild> dataList) {
+        for (MhBuild mhBuild : dataList) {
+            // Integer id = Integer.valueOf(data[0]);
+            Long id = mhBuild.getId();
             if (!buildingRecordExists(id)) {
-                MhBuild mhBuilding = new MhBuild();
-                mhBuilding.setId(Long.valueOf(data[0]));
-                mhBuilding.setBuildName(data[1]);
-                mhBuilding.setLon(data[2]);
-                mhBuilding.setLat(data[3]);
-                mhBuilding.setArea(data[4]);
-                mhBuilding.setStreet(data[5]);
-                mhBuilding.setAddress(data[6]);
-                mhBuilding.setAddressPc(data[7]);
-                mhBuilding.setBuildStructure(data[8]);
-                mhBuilding.setBuildArea(StringUtils.isBlank(data[9]) ? null : data[9]);
-                mhBuilding.setHeight(StringUtils.isBlank(data[10]) ? null : data[10]);
-                mhBuilding.setBuildFloorsUp(StringUtils.isBlank(data[11]) ? null : Long.valueOf(data[11]));
-                mhBuilding.setBuildFloorsDown(StringUtils.isBlank(data[12]) ? null : Long.valueOf(data[12]));
-                mhBuilding.setFireFightingDevice(StringUtils.isBlank(data[13]) ? null : data[13]);
-                mhBuilding.setBuildNature(data[14]);
-                mhBuilding.setPropertyOwner(StringUtils.isBlank(data[15]) ? null : data[15]);
-                mhBuilding.setLegal(StringUtils.isBlank(data[16]) ? null : data[16]);
-                mhBuilding.setPropertyLegal(StringUtils.isBlank(data[17]) ? null : data[17]);
-                mhBuilding.setPhone(StringUtils.isBlank(data[18]) ? null : data[18]);
-                mhBuilding.setStatus(data[19]);
-                mhBuilding.setLeaseholderId(StringUtils.isBlank(data[20]) ? null : data[20]);
-                mhBuilding.setCompanyInfoId(StringUtils.isBlank(data[21]) ? null : data[21]);
-                mhBuilding.setProperty(StringUtils.isBlank(data[22]) ? null : Integer.valueOf(data[22]));
-                mhBuilding.setPropertyStr(data[23]);
-                mhBuilding.setManageCompany(StringUtils.isBlank(data[24]) ? null : data[24]);
-
-                if (data[25] != null) {
-                    // 使用 split 方法将字符串拆分为数组,然后转换为列表
-                    String[] companiesArray = data[25].split(",");
-                    List<String> companyInfos = Arrays.asList(companiesArray);
-                    mhBuilding.setCompanyInfos(companyInfos);
-                } else {
-                    // 如果 data[25] 是 null,设置为空列表
-                    mhBuilding.setCompanyInfos(Collections.emptyList());
-                }
-
-                // 检查 data[26] 是否为空
-                if (data[26] != null) {
-                    // 使用 split 方法将字符串拆分为数组,然后转换为列表
-                    String[] devicesArray = data[26].split(",");
-                    List<String> fireFightingDevices = Arrays.asList(devicesArray);
-                    mhBuilding.setFireFightingDevices(fireFightingDevices);
-                } else {
-                    // 如果 data[26] 是 null,设置为空列表
-                    mhBuilding.setFireFightingDevices(Collections.emptyList());
-                }
-
-                if (data[27] != null) {
-                    // 使用 split 方法将字符串拆分为数组,然后转换为列表
-                    String[] companiesArray = data[27].split(",");
-                    List<String> buildNatures = Arrays.asList(companiesArray);
-                    mhBuilding.setBuildNatures(buildNatures);
-                } else {
-                    // 如果 data[27] 是 null,设置为空列表
-                    mhBuilding.setBuildNatures(Collections.emptyList());
-                }
-
-                mhBuilding.setCompanyOperLogs(data[28]);
-                if (data[29] != null) {
-                    try {
-                        LocalDateTime parseUpdateTime = LocalDateTime.parse(data[29], formatter);
-                        mhBuilding.setUpdateTime(parseUpdateTime);
-                    } catch (Exception e) {
-                        log.error("解析建筑信息更新时间失败,时间字符串: " + data[29]);
-                    }
-                }
-                mhBuilding.setUpdateTimeStr(data[30]);
-                mhBuilding.setUpdateBy(data[31]);
-                mhBuilding.setUpperUpdateCompany(StringUtils.isBlank(data[32]) ? null : data[32]);
-                mhBuilding.setUpdateCompany(StringUtils.isBlank(data[33]) ? null : data[33]);
-                mhBuilding.setUpdateByPhone(StringUtils.isBlank(data[34]) ? null : data[34]);
-                mhBuildMapper.insert(mhBuilding);
+                //     log.info("数据{}", data);
+                //     log.info("更新时间{}", data[29]);
+                //     LocalDateTime dateTime  = LocalDateTime.parse(data[29]);
+                //     log.info("更新时间新{}", dateTime);
+                //     log.info("使用性质{}", data[27]);
+                //     log.info("公司信息{}", data[25]);
+                //     MhBuild mhBuilding = new MhBuild();
+                //     mhBuilding.setId(Long.valueOf(data[0]));
+                //     mhBuilding.setBuildName(data[1]);
+                //     mhBuilding.setLon(data[2]);
+                //     mhBuilding.setLat(data[3]);
+                //     mhBuilding.setArea(data[4]);
+                //     mhBuilding.setStreet(data[5]);
+                //     mhBuilding.setAddress(data[6]);
+                //     mhBuilding.setAddressPc(data[7]);
+                //     mhBuilding.setBuildStructure(data[8]);
+                //     mhBuilding.setBuildArea(StringUtils.isBlank(data[9]) ? null : data[9]);
+                //     mhBuilding.setHeight(StringUtils.isBlank(data[10]) ? null : data[10]);
+                //     mhBuilding.setBuildFloorsUp(StringUtils.isBlank(data[11]) ? null : Long.valueOf(data[11]));
+                //     mhBuilding.setBuildFloorsDown(StringUtils.isBlank(data[12]) ? null : Long.valueOf(data[12]));
+                //     mhBuilding.setFireFightingDevice(StringUtils.isBlank(data[13]) ? null : data[13]);
+                //     mhBuilding.setBuildNature(data[14]);
+                //     mhBuilding.setPropertyOwner(StringUtils.isBlank(data[15]) ? null : data[15]);
+                //     mhBuilding.setLegal(StringUtils.isBlank(data[16]) ? null : data[16]);
+                //     mhBuilding.setPropertyLegal(StringUtils.isBlank(data[17]) ? null : data[17]);
+                //     mhBuilding.setPhone(StringUtils.isBlank(data[18]) ? null : data[18]);
+                //     mhBuilding.setStatus(data[19]);
+                //     mhBuilding.setLeaseholderId(StringUtils.isBlank(data[20]) ? null : data[20]);
+                //     mhBuilding.setCompanyInfoId(StringUtils.isBlank(data[21]) ? null : data[21]);
+                //     mhBuilding.setProperty(StringUtils.isBlank(data[22]) ? null : Integer.valueOf(data[22]));
+                //     mhBuilding.setPropertyStr(data[23]);
+                //     mhBuilding.setManageCompany(StringUtils.isBlank(data[24]) ? null : data[24]);
+                //
+                //     if (data[25] != null) {
+                //         // 使用 split 方法将字符串拆分为数组,然后转换为列表
+                //         String[] companiesArray = data[25].split(",");
+                //         List<String> companyInfos = Arrays.asList(companiesArray);
+                //         mhBuilding.setCompanyInfos(companyInfos);
+                //     } else {
+                //         // 如果 data[25] 是 null,设置为空列表
+                //         mhBuilding.setCompanyInfos(Collections.emptyList());
+                //     }
+                //
+                //     // 检查 data[26] 是否为空
+                //     if (data[26] != null) {
+                //         // 使用 split 方法将字符串拆分为数组,然后转换为列表
+                //         String[] devicesArray = data[26].split(",");
+                //         List<String> fireFightingDevices = Arrays.asList(devicesArray);
+                //         mhBuilding.setFireFightingDevices(fireFightingDevices);
+                //     } else {
+                //         // 如果 data[26] 是 null,设置为空列表
+                //         mhBuilding.setFireFightingDevices(Collections.emptyList());
+                //     }
+                //
+                //     if (data[27] != null) {
+                //         // 使用 split 方法将字符串拆分为数组,然后转换为列表
+                //         String[] companiesArray = data[27].split(",");
+                //         List<String> buildNatures = Arrays.asList(companiesArray);
+                //         mhBuilding.setBuildNatures(buildNatures);
+                //     } else {
+                //         // 如果 data[27] 是 null,设置为空列表
+                //         mhBuilding.setBuildNatures(Collections.emptyList());
+                //     }
+                //
+                //     mhBuilding.setCompanyOperLogs(data[28]);
+                //     if (data[29] != null) {
+                //         try {
+                //             LocalDateTime parseUpdateTime = LocalDateTime.parse(data[29], formatter);
+                //             mhBuilding.setUpdateTime(parseUpdateTime);
+                //         } catch (Exception e) {
+                //             log.error("解析建筑信息更新时间失败,时间字符串: " + data[29]);
+                //         }
+                //     }
+                //     mhBuilding.setUpdateTimeStr(data[30]);
+                //     mhBuilding.setUpdateBy(data[31]);
+                //     mhBuilding.setUpperUpdateCompany(StringUtils.isBlank(data[32]) ? null : data[32]);
+                //     mhBuilding.setUpdateCompany(StringUtils.isBlank(data[33]) ? null : data[33]);
+                //     mhBuilding.setUpdateByPhone(StringUtils.isBlank(data[34]) ? null : data[34]);
+                //     mhBuildMapper.insert(mhBuilding);
+
+                mhBuildMapper.insert(mhBuild);
             }
         }
     }
 
     // 检查记录是否已经存在于数据库中-单位
-    private boolean recordExists(Integer companyName) {
+    private boolean recordExists(Long companyName) {
         boolean exists = false;
         LambdaQueryWrapper<MhCompany> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.eq(MhCompany::getId, companyName);
@@ -446,7 +585,7 @@ public class MhScheduledImport {
     }
 
     // 检查记录是否已经存在于数据库中-建筑
-    private boolean buildingRecordExists(Integer companyName) {
+    private boolean buildingRecordExists(Long companyName) {
         boolean exists = false;
         LambdaQueryWrapper<MhBuild> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.eq(MhBuild::getId, companyName);

+ 7 - 7
service-fire/service-fire-biz/src/main/resources/application.yml

@@ -43,13 +43,13 @@ spring:
     dynamic:
       datasource:
         master:
-#          url: jdbc:mysql://192.168.10.165:3306/usky-fire?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&queryTimeout=2400
-#          username: root
-#          password: yt123456
-          driver-class-name: dm.jdbc.driver.DmDriver
-          password: Yt#75Usky
-          url: jdbc:dm://localhost:5237/SYSDBA?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8
-          username: SYSDBA
+          url: jdbc:mysql://192.168.10.165:3306/usky-fire?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&queryTimeout=2400
+          username: root
+          password: yt123456
+#          driver-class-name: dm.jdbc.driver.DmDriver
+#          password: Yt#75Usky
+#          url: jdbc:dm://localhost:5237/SYSDBA?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8
+#          username: SYSDBA
 #        mhsystem:
 #          password: mysql570
 #          url: url=jdbc:mysql://32.1.7.42:3306/minhangsystem?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowMultiQueries=true