Browse Source

feat: 同步监测要素数据

master_tdsql
hxh 4 months ago
parent
commit
cb7bda5c58
  1. 29
      shuili-system/src/main/java/com/kms/yg/cz/domain/BsSgcStMon.java
  2. 17
      shuili-system/src/main/java/com/kms/yg/cz/mapper/BsSgcStMonMapper.java
  3. 17
      shuili-system/src/main/java/com/kms/yg/cz/service/BsSgcStMonService.java
  4. 40
      shuili-system/src/main/java/com/kms/yxgh/common/enums/DataSyncBasicEnum.java
  5. 3
      shuili-system/src/main/java/com/kms/yxgh/common/job/DataSyncJob.java

29
shuili-system/src/main/java/com/kms/yg/cz/domain/BsSgcStMon.java

@ -0,0 +1,29 @@
package com.kms.yg.cz.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kms.yxgh.base.SyBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@TableName("bs_sgc_st_mon")
@Data
@ApiModel("水文水工程监测站基础信息")
public class BsSgcStMon extends SyBaseEntity {
@TableField(exist = false)
private String Id;
@TableId()
@ApiModelProperty("测站编码")
private String stcd;
@ApiModelProperty("测站监测要素")
private String monProj;
@TableField(exist = false)
private String remark;
}

17
shuili-system/src/main/java/com/kms/yg/cz/mapper/BsSgcStMonMapper.java

@ -0,0 +1,17 @@
package com.kms.yg.cz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kms.yg.cz.domain.BsSgcStMon;
import org.springframework.stereotype.Repository;
/**
* 请填写功能名称Mapper接口
*
* @author kms
* @date 2024-04-24
*/
@Repository
public interface BsSgcStMonMapper extends BaseMapper<BsSgcStMon> {
}

17
shuili-system/src/main/java/com/kms/yg/cz/service/BsSgcStMonService.java

@ -0,0 +1,17 @@
package com.kms.yg.cz.service;
import com.kms.yg.cz.domain.BsSgcStMon;
import com.kms.yg.cz.mapper.BsSgcStMonMapper;
import com.shuili.common.core.service.BaseService;
import org.springframework.stereotype.Service;
/**
* 请填写功能名称Service接口
*
* @author kms
* @date 2024-04-24
*/
@Service
public class BsSgcStMonService extends BaseService<BsSgcStMonMapper, BsSgcStMon> {
}

40
shuili-system/src/main/java/com/kms/yxgh/common/enums/DataSyncBasicEnum.java

@ -1,16 +1,21 @@
package com.kms.yxgh.common.enums; package com.kms.yxgh.common.enums;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import com.kms.yg.cz.domain.BsSgcStMon;
import com.kms.yg.cz.service.BsSgcStMonService;
import com.kms.yxgh.common.job.JsonObjProxy; import com.kms.yxgh.common.job.JsonObjProxy;
import com.shuili.common.core.redis.RedisCache; import com.shuili.common.core.redis.RedisCache;
import com.shuili.common.utils.SpringUtils; import com.shuili.common.utils.SpringUtils;
import com.shuili.common.utils.StringUtils; import com.shuili.common.utils.StringUtils;
import lombok.Getter; import lombok.Getter;
import java.util.HashMap; import java.util.*;
import java.util.Map; import java.util.function.Consumer;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* 基础数据同步服务枚举 * 基础数据同步服务枚举
@ -31,17 +36,46 @@ public enum DataSyncBasicEnum {
ATT_RV_BASE("河流基础信息", Constants.RV_MAP), ATT_RV_BASE("河流基础信息", Constants.RV_MAP),
ATT_DPDS_BASE("险工险峻信息", Constants.DPDS_MAP), ATT_DPDS_BASE("险工险峻信息", Constants.DPDS_MAP),
ATT_BAS_BASE("流域基础信息", Constants.BAS_MAP), ATT_BAS_BASE("流域基础信息", Constants.BAS_MAP),
ATT_ST_BASE( "水文水工程监测站基础信息", Constants.ST_MAP), ATT_ST_BASE("水文水工程监测站基础信息", Constants.ST_MAP, records -> {
Map<String, List<BsSgcStMon>> monMap = records.stream().map(JSONObject.class::cast)
.map(JsonObjProxy::new)
.collect(Collectors.toMap(obj -> obj.getString("stcd"), obj -> {
String monProj = obj.getString("monProj");
if (StringUtils.isEmpty(monProj)) {
return Collections.emptyList();
}
String stcd = obj.getString("stcd");
return Arrays.stream(monProj.split(","))
.map(proj -> {
BsSgcStMon monProjObj = new BsSgcStMon();
monProjObj.setStcd(stcd);
monProjObj.setMonProj(proj);
return monProjObj;
}).collect(Collectors.toList());
}, (a, b) -> a));
BsSgcStMonService monMapper = SpringUtils.getBean(BsSgcStMonService.class);
monMapper.removeByIds(monMap.keySet());
monMapper.saveBatch(monMap.values().stream().flatMap(Collection::stream)
.filter(Objects::nonNull)
.collect(Collectors.toList()), 1000);
}),
ATT_ST_MP("水工程监测测点信息", Constants.ST_MP_MAP), ATT_ST_MP("水工程监测测点信息", Constants.ST_MP_MAP),
; ;
private final String name; private final String name;
private final Map<String, Function<JsonObjProxy, Object>> valueHandler; private final Map<String, Function<JsonObjProxy, Object>> valueHandler;
private final Consumer<JSONArray> afterHandler;
DataSyncBasicEnum(String name, Map<String, Function<JsonObjProxy, Object>> valueHandler) { DataSyncBasicEnum(String name, Map<String, Function<JsonObjProxy, Object>> valueHandler) {
this(name, valueHandler, a -> {
});
}
DataSyncBasicEnum(String name, Map<String, Function<JsonObjProxy, Object>> valueHandler, Consumer<JSONArray> afterHandler) {
this.name = name; this.name = name;
this.valueHandler = valueHandler; this.valueHandler = valueHandler;
this.afterHandler = afterHandler;
} }
public TableInfo getTableInfo() { public TableInfo getTableInfo() {

3
shuili-system/src/main/java/com/kms/yxgh/common/job/DataSyncJob.java

@ -42,6 +42,7 @@ public class DataSyncJob {
private Map<String, String> paths = new HashMap<>(); private Map<String, String> paths = new HashMap<>();
@Autowired @Autowired
private DataCenterRestTemplateUtils dataCenterRestTemplateUtils; private DataCenterRestTemplateUtils dataCenterRestTemplateUtils;
@Autowired @Autowired
private BaseDdlMapper baseDdlMapper; private BaseDdlMapper baseDdlMapper;
@ -107,6 +108,8 @@ public class DataSyncJob {
// 插入数据 // 插入数据
insertData(filed, updateStr, dataList, tableName); insertData(filed, updateStr, dataList, tableName);
table.getAfterHandler().accept(records);
return dataList.size(); return dataList.size();
}); });
} }

Loading…
Cancel
Save