diff --git a/shuili-system/src/main/java/com/kms/yg/cz/enmu/MarkTypeEnum.java b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MarkTypeEnum.java index f3631168..fbaf9294 100644 --- a/shuili-system/src/main/java/com/kms/yg/cz/enmu/MarkTypeEnum.java +++ b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MarkTypeEnum.java @@ -16,7 +16,7 @@ import java.util.Map; @Getter public enum MarkTypeEnum implements MonitorIndexInfo { - FSLTDZ_LIMIT("汛限水位", "m", Constants.DEFAULT_KEY_FIELD, "rsltdz", AttResRfkwlvMapper.class), + FSLTDZ_LIMIT("汛限水位", "m", Constants.DEFAULT_KEY_FIELD, "fsltdz", AttResRfkwlvMapper.class), CHFLLV("校准洪核水位", "m", Constants.DEFAULT_KEY_FIELD, "chfllv", AttResRsppMapper.class), NORM_WAT_LEV("正常蓄水位", "m", Constants.DEFAULT_KEY_FIELD, "normWatLev ", BsSgcSzSwtzMapper.class), DSFLLV("设计洪水位", "m", Constants.DEFAULT_KEY_FIELD, "dsfllv", BsSgcSzSwtzMapper.class); @@ -47,7 +47,7 @@ public enum MarkTypeEnum implements MonitorIndexInfo { List> results = mapper.selectMaps(new QueryWrapper<>().select(valueField).eq(keyField, code)); if (!results.isEmpty()) { Map result = results.get(0); - String value = result.get(valueField).toString(); + String value = result.getOrDefault(valueField, "").toString(); if (StringUtils.isNotBlank(value)) { markLine.setValue(value); } diff --git a/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorSourceEnum.java b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorSourceEnum.java index c8b4ddd7..45be18d6 100644 --- a/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorSourceEnum.java +++ b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorSourceEnum.java @@ -8,6 +8,7 @@ import com.kms.yg.cz.dto.MonitorQueDto; import com.kms.yxgh.base.domain.monitor.*; import lombok.Data; import lombok.Getter; +import lombok.extern.slf4j.Slf4j; import java.util.Arrays; import java.util.List; @@ -19,6 +20,7 @@ import java.util.function.Function; * @author hry * @date 2024/3/4 18:57 */ +@Slf4j @Getter public enum MonitorSourceEnum { @@ -32,7 +34,7 @@ public enum MonitorSourceEnum { MS_DSM_SRHRDS("表面水平位移监测表", Mock.MS_DSM_SRHRDS, MsHdmSrhrds.class), MS_DSM_INVRDS("内部垂直位移监测表", MsDsmInvrds.class), MS_DSM_INHRDS("内部水平位移监测表", MsDsmInhrds.class), - MS_HDM_TMP("气温水温监测表",MsHdmTmp.class), + MS_HDM_TMP("气温水温监测表", MsHdmTmp.class), MS_DSM_ENV("环境监测表", MsDsmEnv.class), MS_HDM_TMPEVS("温度监测表", MsHdmTmpevs.class), MS_DSM_PTMP("测压管(计)水位监测表", MsDsmPtmp.class), @@ -92,6 +94,10 @@ public enum MonitorSourceEnum { } if (this.type == MonitorTypeEnum.MONITOR) { MonitorResponse response = JSON.parseObject(json, MonitorResponse.class); + if (!response.isSuccess()) { + log.error("record获取数据失败:{}", this.clazz); + return new Page<>(); + } DataInfo dataInfo = JSON.parseObject(response.getData(), DataInfo.class); Page page = new Page<>(dataInfo.getCurrent(), dataInfo.getSize(), dataInfo.getTotal()); List data = JSON.parseArray(response.getRecords(), this.clazz); @@ -99,6 +105,10 @@ public enum MonitorSourceEnum { return page; } else { DataResponse response = JSON.parseObject(json, DataResponse.class); + if (!response.isSuccess()) { + log.error("data获取数据失败:{}", this.clazz); + return new Page<>(); + } MonitorQueDto queDto = resultWrapper.getQueDto(); Page page = new Page<>(queDto.getPageNum(), queDto.getPageSize()); List data = JSON.parseArray(response.getData(), this.clazz); @@ -124,6 +134,10 @@ public enum MonitorSourceEnum { private String msg; private String code; private String data; + + public Boolean isSuccess() { + return "200".equals(getCode()); + } } @Data diff --git a/shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java b/shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java index deea383a..21d01269 100644 --- a/shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java +++ b/shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java @@ -26,11 +26,12 @@ import org.springframework.stereotype.Service; import java.util.*; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.TimeUnit; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; +import static com.kms.yg.cz.enmu.MonitorSourceEnum.MS_HDM_RSVR; + @Service @Slf4j public class MonitorService { @@ -78,19 +79,17 @@ public class MonitorService { private Map>> queryData(List sourceEnums, MonitorQueDto queDto) { Map>> futureMap = sourceEnums.stream() - .collect(Collectors.toMap(Function.identity(), item -> CompletableFuture.supplyAsync(() -> queryDataList(item, queDto))) - ); + .collect(Collectors.toMap(Function.identity(), item -> CompletableFuture.supplyAsync(() -> queryDataList(item, queDto)))); try { - CompletableFuture.allOf(futureMap.values().toArray(new CompletableFuture[0])).get(1, TimeUnit.MINUTES); + CompletableFuture.allOf(futureMap.values().toArray(new CompletableFuture[0])).join(); return futureMap.entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, item -> { CompletableFuture> future = item.getValue(); - return future.getNow(Collections.emptyList()) + return future.join() .stream() .map(BeanCopyUtils::copyToMap) .collect(Collectors.toList()); })); - } catch (Exception e) { log.error("查询数据异常", e); return Collections.emptyMap(); @@ -98,7 +97,7 @@ public class MonitorService { } public CurrentWaterMonitorDto watter(MonitorQueDto sp) { - CompletableFuture currentWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.MS_HDM_RSVR, sp)); + CompletableFuture currentWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MS_HDM_RSVR, sp)); CompletableFuture avWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.MS_HDM_RSVRAV, sp)); CompletableFuture mxWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.MS_HDM_RSVREVS, sp)); CompletableFuture> currentFlowFuture = CompletableFuture.supplyAsync(() -> queryDataList(MonitorSourceEnum.MS_HDM_OBP, sp)); @@ -200,6 +199,7 @@ public class MonitorService { IPage page = source.getMockData(queDto); return (IPage) page; } + log.debug("请求接口:{}", dataSyncUrl + path); String json = dataCenterRestTemplateUtils.doPostRequest(dataSyncUrl + path, queDto); resultWrapper.setResultJson(json); return (IPage) source.getRecords().apply(resultWrapper); diff --git a/shuili-system/src/main/java/com/kms/yg/sk/domain/AttResRfkwlv.java b/shuili-system/src/main/java/com/kms/yg/sk/domain/AttResRfkwlv.java index 6b267dc9..d00365bf 100644 --- a/shuili-system/src/main/java/com/kms/yg/sk/domain/AttResRfkwlv.java +++ b/shuili-system/src/main/java/com/kms/yg/sk/domain/AttResRfkwlv.java @@ -20,7 +20,7 @@ public class AttResRfkwlv extends BaseEntity { private String bgmd; @ApiModelProperty("汛限水位") - private String rsltdz; + private String fsltdz; @ApiModelProperty("结束日期") private String edmd; diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/job/DataSyncJob.java b/shuili-system/src/main/java/com/kms/yxgh/common/job/DataSyncJob.java index 181be41d..4abc2b0e 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/job/DataSyncJob.java +++ b/shuili-system/src/main/java/com/kms/yxgh/common/job/DataSyncJob.java @@ -25,7 +25,6 @@ import java.util.*; import java.util.concurrent.Executor; import java.util.function.Function; import java.util.stream.Collectors; -import java.util.stream.Stream; /** * 数据同步 @@ -104,6 +103,9 @@ public class DataSyncJob { doSync(tableName, paths.get(tableName), (records) -> { //records = JSONArray.parseArray("[{\"resCode\":'123456',\"resName\":'测试',\"startDate\":'2024-02-03 00:00:00',\"watShedArea\":23.232},{\"resCode\":'a123456',\"resName\":'a测试',\"cmun\":'数元科技',\"watShedArea\":211.232}]"); // 解析数据 + if (tableName.equalsIgnoreCase("ATT_RES_RFKWLV")) { + log.debug("ATT_RES_RFKWLV:{}", records); + } List dataList = processDataList(records, fieldStr, fieldInfoMap, table); // 插入数据 @@ -188,12 +190,7 @@ public class DataSyncJob { if (dataList.isEmpty()) { return; } - //使用stream api将dataList按每组BATCH_COUNT个分组,分批插入 - int groupSize = (dataList.size() + BATCH_COUNT - 1) / BATCH_COUNT; - Stream.iterate(0, n -> n + 1).limit(groupSize).forEach(i -> { - List subList = dataList.stream().skip(i * BATCH_COUNT).limit(BATCH_COUNT).collect(Collectors.toList()); - baseDdlMapper.insertOrUpdate(filed, updateStr, subList, tableName); - }); + baseDdlMapper.insertOrUpdate(filed, updateStr, dataList, tableName); } diff --git a/sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql b/sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql index a06abf51..810a7d48 100644 --- a/sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql +++ b/sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql @@ -28,7 +28,7 @@ CREATE TABLE `att_res_rfkwlv` ( `RES_CODE` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '水库编码', `ACTYR` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '开启年份', `BGMD` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '开启日期', - `RSLTDZ` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '汛限水位', + `FSLTDZ` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '汛限水位', `EDMD` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '结束日期', `FLSTDW` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '汛限制库容', `ENABLE_FLAG` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '启用标识',