|
@@ -0,0 +1,463 @@
|
|
|
+package com.usky.fire.service.util;
|
|
|
+
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.Arrays;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.usky.fire.domain.MhBuild;
|
|
|
+import com.usky.fire.domain.MhCompany;
|
|
|
+import com.usky.fire.mapper.MhBuildMapper;
|
|
|
+import com.usky.fire.mapper.MhCompanyMapper;
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
+import org.apache.http.client.methods.HttpGet;
|
|
|
+import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
+import org.apache.http.impl.client.HttpClients;
|
|
|
+import org.apache.http.util.EntityUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.scheduling.annotation.Scheduled;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+@Component
|
|
|
+public class MhScheduledImport {
|
|
|
+ private static final Logger log = LoggerFactory.getLogger(MhScheduledImport.class);
|
|
|
+
|
|
|
+ private static final int PAGE_SIZE = 10000;
|
|
|
+ private static final String BUILD_URL = "https://aqpc.shxf-119.com/Warehouse/minhang/getData/buildDataList?";
|
|
|
+ private static final String COMPANY_URL = "https://aqpc.shxf-119.com/Warehouse/minhang/getData/companyDataList?";
|
|
|
+ private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ @Autowired
|
|
|
+ private MhCompanyMapper mhCompanyMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MhBuildMapper mhBuildMapper;
|
|
|
+
|
|
|
+ // @Scheduled(fixedRate = 86400000)
|
|
|
+ // 24小时执行一次
|
|
|
+
|
|
|
+ @Scheduled(cron = "0 0 8,20 * * ?")
|
|
|
+ // 8点、20点执行一次
|
|
|
+ //@Scheduled(fixedRate = 40000)
|
|
|
+ //@Scheduled(cron = "0 7 10 * * ?")
|
|
|
+ public void executeTask() {
|
|
|
+ log.info("定时任务开始执行: " + new java.util.Date());
|
|
|
+
|
|
|
+ log.info("导入单位信息开始执行,当前时间: " + new java.util.Date());
|
|
|
+ LocalDateTime latestCreateTime = getLatestCreateTimeCompany();
|
|
|
+ // boolean hasMoreData = true;
|
|
|
+ int page = 1;
|
|
|
+ // // while (hasMoreData) {
|
|
|
+ // // List<String[]> dataList = callApiToGetCompanyData(latestCreateTime, page, PAGE_SIZE);
|
|
|
+ // // if (dataList.isEmpty()) {
|
|
|
+ // // hasMoreData = false;
|
|
|
+ // // } else {
|
|
|
+ // // storeDataToLocalDatabase(dataList);
|
|
|
+ // // page++;
|
|
|
+ // // }
|
|
|
+ // // }
|
|
|
+ List<String[]> companyDataList = callApiToGetCompanyData(latestCreateTime, page, PAGE_SIZE);
|
|
|
+ if (CollectionUtils.isNotEmpty(companyDataList)) {
|
|
|
+ storeDataToLocalDatabase(companyDataList);
|
|
|
+ } else {
|
|
|
+ log.info("单位信息没有新数据需要导入!");
|
|
|
+ }
|
|
|
+ log.info("导入单位信息执行完成,当前时间: " + new java.util.Date());
|
|
|
+
|
|
|
+ log.info("导入建筑信息开始执行,当前时间: " + new java.util.Date());
|
|
|
+ LocalDateTime latestUpdateTime = getLatestCreateTimeBuild();
|
|
|
+ List<String[]> bulidDataList = callApiToGetBuildingData(latestUpdateTime, page, PAGE_SIZE);
|
|
|
+ if (CollectionUtils.isNotEmpty(bulidDataList)) {
|
|
|
+ storeBuildingDataToLocalDatabase(bulidDataList);
|
|
|
+ } else {
|
|
|
+ log.info("建筑信息没有新数据需要导入!");
|
|
|
+ }
|
|
|
+ log.info("导入建筑信息开始执行,当前时间: " + new java.util.Date());
|
|
|
+
|
|
|
+ log.info("定时任务执行完成,当前时间: " + new java.util.Date());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理建筑信息的行数据
|
|
|
+ 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 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 List<String[]> callApiToGetBuildingData(LocalDateTime latestCreateTime, int page, int pageSize) {
|
|
|
+ String url = BUILD_URL;
|
|
|
+ return callApiToGetData(url, latestCreateTime, page, pageSize);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取单位数据
|
|
|
+ private List<String[]> callApiToGetCompanyData(LocalDateTime latestCreateTime, int page, int pageSize) {
|
|
|
+ String url = COMPANY_URL;
|
|
|
+ return callApiToGetData(url, latestCreateTime, page, pageSize);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 公共方法:发送 HTTP GET 请求并处理响应
|
|
|
+ private List<String[]> callApiToGetData(String url, LocalDateTime latestCreateTime, int page, int pageSize) {
|
|
|
+ if (latestCreateTime != null) {
|
|
|
+ url += "beginTime=" + latestCreateTime + "&";
|
|
|
+ }
|
|
|
+ url += "pageNum=" + page + "&pageSize=" + pageSize;
|
|
|
+
|
|
|
+ url = url.replaceAll(" ", "%20");
|
|
|
+
|
|
|
+ List<String[]> 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);
|
|
|
+ if (url.contains(BUILD_URL)) {
|
|
|
+ dataList.add(processBuildingRow(row));
|
|
|
+ } else if (url.contains(COMPANY_URL)) {
|
|
|
+ dataList.add(processCompanyRow(row));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("API请求失败,状态码: " + statusCode);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return dataList;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 调用API获取token的方法
|
|
|
+ private static String getToken() {
|
|
|
+ String url = "https://aqpc.shxf-119.com/Warehouse/bigdata/getToken?username=admin";
|
|
|
+ String token = null;
|
|
|
+
|
|
|
+ try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
|
|
|
+ HttpGet request = new HttpGet(url);
|
|
|
+
|
|
|
+ CloseableHttpResponse response = httpClient.execute(request);
|
|
|
+ int statusCode = response.getStatusLine().getStatusCode();
|
|
|
+ if (statusCode == 200) {
|
|
|
+ String responseBody = EntityUtils.toString(response.getEntity());
|
|
|
+ JSONObject jsonResponse = JSON.parseObject(responseBody);
|
|
|
+ String msg = jsonResponse.getString("msg");
|
|
|
+ int code = jsonResponse.getInteger("code");
|
|
|
+
|
|
|
+ if (code == 200) {
|
|
|
+ token = msg;
|
|
|
+ } else {
|
|
|
+ log.error("获取token失败,状态码: " + code + ", 消息: " + msg);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("获取token失败,状态码: " + statusCode);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("获取token失败,异常信息: " + e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return token;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取数据库中mh_company最新的一条记录的 createTime
|
|
|
+ private LocalDateTime getLatestCreateTimeCompany() {
|
|
|
+ LambdaQueryWrapper<MhCompany> newData = Wrappers.lambdaQuery();
|
|
|
+ newData.select(MhCompany::getCreateTime)
|
|
|
+ .orderByDesc(MhCompany::getId)
|
|
|
+ .last("LIMIT 1");
|
|
|
+ MhCompany latestRecord = mhCompanyMapper.selectOne(newData);
|
|
|
+ return latestRecord != null ? latestRecord.getCreateTime() : null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取数据库中mh_build最新的一条记录的 createTime
|
|
|
+ private LocalDateTime getLatestCreateTimeBuild() {
|
|
|
+ LambdaQueryWrapper<MhBuild> newData = Wrappers.lambdaQuery();
|
|
|
+ newData.select(MhBuild::getUpdateTime)
|
|
|
+ .orderByDesc(MhBuild::getId)
|
|
|
+ .last("LIMIT 1");
|
|
|
+ MhBuild latestRecord = mhBuildMapper.selectOne(newData);
|
|
|
+ return latestRecord != null ? latestRecord.getUpdateTime() : null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 将数据存储到本地数据库的方法
|
|
|
+ private void storeDataToLocalDatabase(List<String[]> dataList) {
|
|
|
+ for (String[] data : dataList) {
|
|
|
+ Integer id = Integer.valueOf(data[0]);
|
|
|
+ // String companyName = data[1];
|
|
|
+ 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]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ mhCompanyMapper.insert(mhCompany);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void storeBuildingDataToLocalDatabase(List<String[]> dataList) {
|
|
|
+ for (String[] data : dataList) {
|
|
|
+ Integer id = Integer.valueOf(data[0]);
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检查记录是否已经存在于数据库中-单位
|
|
|
+ private boolean recordExists(Integer companyName) {
|
|
|
+ boolean exists = false;
|
|
|
+ LambdaQueryWrapper<MhCompany> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(MhCompany::getId, companyName);
|
|
|
+ if (mhCompanyMapper.selectOne(queryWrapper) != null) {
|
|
|
+ exists = true;
|
|
|
+ }
|
|
|
+ return exists;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检查记录是否已经存在于数据库中-建筑
|
|
|
+ private boolean buildingRecordExists(Integer companyName) {
|
|
|
+ boolean exists = false;
|
|
|
+ LambdaQueryWrapper<MhBuild> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(MhBuild::getId, companyName);
|
|
|
+ if (mhBuildMapper.selectOne(queryWrapper) != null) {
|
|
|
+ exists = true;
|
|
|
+ }
|
|
|
+ return exists;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|