Browse Source

feat: 修改标线逻辑

master_tdsql
hxh 1 month ago
parent
commit
3e05c61bac
  1. 4
      shuili-system/src/main/java/com/kms/yg/cz/enmu/MarkTypeEnum.java
  2. 16
      shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorSourceEnum.java
  3. 14
      shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java
  4. 2
      shuili-system/src/main/java/com/kms/yg/sk/domain/AttResRfkwlv.java
  5. 11
      shuili-system/src/main/java/com/kms/yxgh/common/job/DataSyncJob.java
  6. 2
      sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql

4
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<Map<String, Object>> results = mapper.selectMaps(new QueryWrapper<>().select(valueField).eq(keyField, code));
if (!results.isEmpty()) {
Map<String, Object> result = results.get(0);
String value = result.get(valueField).toString();
String value = result.getOrDefault(valueField, "").toString();
if (StringUtils.isNotBlank(value)) {
markLine.setValue(value);
}

16
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<Object> 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<Object> 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

14
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<MonitorSourceEnum, List<Map<String, Object>>> queryData(List<MonitorSourceEnum> sourceEnums, MonitorQueDto queDto) {
Map<MonitorSourceEnum, CompletableFuture<List<Object>>> 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<List<Object>> 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<MsHdmRsvr> currentWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.MS_HDM_RSVR, sp));
CompletableFuture<MsHdmRsvr> currentWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MS_HDM_RSVR, sp));
CompletableFuture<MsHdmRsvrav> avWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.MS_HDM_RSVRAV, sp));
CompletableFuture<MsHdmRsvrevs> mxWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.MS_HDM_RSVREVS, sp));
CompletableFuture<List<MsHdmObp>> currentFlowFuture = CompletableFuture.supplyAsync(() -> queryDataList(MonitorSourceEnum.MS_HDM_OBP, sp));
@ -200,6 +199,7 @@ public class MonitorService {
IPage<Object> page = source.getMockData(queDto);
return (IPage<T>) page;
}
log.debug("请求接口:{}", dataSyncUrl + path);
String json = dataCenterRestTemplateUtils.doPostRequest(dataSyncUrl + path, queDto);
resultWrapper.setResultJson(json);
return (IPage<T>) source.getRecords().apply(resultWrapper);

2
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;

11
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<Object[]> 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<Object[]> 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);
}

2
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 '启用标识',

Loading…
Cancel
Save