From 09263106b7b165c72fe8592dd7a6fec1829dae25 Mon Sep 17 00:00:00 2001 From: huangrenya Date: Wed, 29 May 2024 18:25:36 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5&=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E9=97=AE=E9=A2=98&=E8=A1=A5=E5=85=85=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yxgh/base/domain/df/DfDwsRelDiscDike.java | 63 +++++++++++++++++++ .../base/domain/sk/SkDwsRelResDscdnm.java | 2 +- .../yxgh/base/domain/sk/SkDwsRelResRv.java | 2 +- .../yxgh/base/enums/DataSyncBasicEnum.java | 1 + .../yxgh/base/enums/DataSyncMonitorEnum.java | 8 +-- .../com/kms/yxgh/base/job/DataSyncJob.java | 30 +++++---- .../com/kms/yxgh/util/RestTemplateUtils.java | 4 +- sql/sy/v1.3.0/全量脚本/dataSync.sql | 21 ++++++- sql/sy/v1.3.0/增量脚本/v1.3.0-update.sql | 23 ++++++- 9 files changed, 130 insertions(+), 24 deletions(-) create mode 100644 shuili-system/src/main/java/com/kms/yxgh/base/domain/df/DfDwsRelDiscDike.java diff --git a/shuili-system/src/main/java/com/kms/yxgh/base/domain/df/DfDwsRelDiscDike.java b/shuili-system/src/main/java/com/kms/yxgh/base/domain/df/DfDwsRelDiscDike.java new file mode 100644 index 00000000..7f88f36b --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/base/domain/df/DfDwsRelDiscDike.java @@ -0,0 +1,63 @@ +package com.kms.yxgh.base.domain.df; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.kms.yxgh.base.SyBaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@TableName("dws_rel_disc_dike") +@Data +@ApiModel("堤段所属堤防对象关系表") +public class DfDwsRelDiscDike extends SyBaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 堤段代码 + */ + @ApiModelProperty("堤段代码") + @TableField("DISC_CODE") + private String discCode; + + /** + * 堤段名称 + */ + @ApiModelProperty("堤段名称") + @TableField("DISC_NAME") + private String discName; + + /** + * 堤防代码 + */ + @ApiModelProperty("堤防代码") + @TableField("DIKE_CODE") + private String dikeCode; + + /** + * 堤防名称 + */ + @ApiModelProperty("堤防名称") + @TableField("DIKE_NAME") + private String dikeName; + + /** + * 关系建立时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("关系建立时间") + @TableField("FROM_DATE") + private Date fromDate; + + /** + * 关系终止时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("关系终止时间") + @TableField("TO_DATE") + private Date toDate; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkDwsRelResDscdnm.java b/shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkDwsRelResDscdnm.java index 7846a354..419c45e9 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkDwsRelResDscdnm.java +++ b/shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkDwsRelResDscdnm.java @@ -50,7 +50,7 @@ public class SkDwsRelResDscdnm extends SyBaseEntity { */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("关系建立时间") - @TableField("FROM_CODE") + @TableField("FROM_DATE") private Date fromDate; /** diff --git a/shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkDwsRelResRv.java b/shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkDwsRelResRv.java index e3c62fb7..b7e7c044 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkDwsRelResRv.java +++ b/shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkDwsRelResRv.java @@ -50,7 +50,7 @@ public class SkDwsRelResRv extends SyBaseEntity { */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("关系建立时间") - @TableField("FROM_CODE") + @TableField("FROM_DATE") private Date fromDate; /** diff --git a/shuili-system/src/main/java/com/kms/yxgh/base/enums/DataSyncBasicEnum.java b/shuili-system/src/main/java/com/kms/yxgh/base/enums/DataSyncBasicEnum.java index c92ee832..3b4c8cac 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/base/enums/DataSyncBasicEnum.java +++ b/shuili-system/src/main/java/com/kms/yxgh/base/enums/DataSyncBasicEnum.java @@ -27,6 +27,7 @@ public enum DataSyncBasicEnum { REL_WAGA_RES("dws_rel_waga_res", "/dws_rel_waga_res", SzDwsRelWagaRes.class, "水闸所属水库关系表"), REL_WAGA_DIKE("dws_rel_waga_dike", "/dws_rel_waga_dike", SzDwsRelWagaDike.class, "水闸所属堤防对象关系表"), REL_DIKE_RV("dws_rel_dike_rv", "/dws_rel_dike_rv", DfDwsRelDikeRv.class, "堤防所属河流关系表"), + REL_DISC_DIKE("dws_rel_disc_dike", "/dws_rel_disc_dike", DfDwsRelDiscDike.class, "堤段所属堤防对象关系表"), ; private final String name; diff --git a/shuili-system/src/main/java/com/kms/yxgh/base/enums/DataSyncMonitorEnum.java b/shuili-system/src/main/java/com/kms/yxgh/base/enums/DataSyncMonitorEnum.java index 7b29e4f5..21c1a996 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/base/enums/DataSyncMonitorEnum.java +++ b/shuili-system/src/main/java/com/kms/yxgh/base/enums/DataSyncMonitorEnum.java @@ -11,7 +11,7 @@ public enum DataSyncMonitorEnum { MS_HDM_OBP("ms_hdm_obp", "/bzjck/ms_hdm_obp", MsHdmObp.class, "降水量监测表"), MS_HDM_RIVER("ms_hdm_river", "/bzjck/ms_hdm_river", MsHdmRiver.class, "河道水情监测表"), - MS_HDM_RSVR("ms_hdm_rsvr", "/bzjck/ms_hdm_rsvr", MsHdmRiver.class, "水库水情监测表"), + MS_HDM_RSVR("ms_hdm_rsvr", "/bzjck/ms_hdm_rsvr", MsHdmRsvr.class, "水库水情监测表"), MS_HDM_TIDE("ms_hdm_tide", "/bzjck/ms_hdm_tide", MsHdmTide.class, "潮汐水情监测表"), MS_HDM_WDWV("ms_hdm_wdwv", "/bzjck/ms_hdm_wdwv", MsHdmWdwv.class, "风浪监测表"), MS_HDM_SALT("ms_hdm_salt", "/bzjck/ms_hdm_salt", MsHdmSalt.class, "咸潮监测表"), @@ -21,15 +21,15 @@ public enum DataSyncMonitorEnum { MS_HDM_DAYEV("ms_hdm_dayev", "/bzjck/ms_hdm_dayev", MsHdmDayev.class, "日蒸发量表"), MS_HDM_PSTAT("ms_hdm_pstat", "/bzjck/ms_hdm_pstat", MsHdmPstat.class, "降水量统计表"), MS_WQM_WQAMD("ms_wqm_wqamd", "/bzjck/ms_wqm_wqamd", MsHdmWqamd.class, "水质自动监测数据表"), - MS_HPM_SLCRS("ms_hpm_slcrs", "/bzjck/ms_hpm_slcrs", MsHdmStorm.class, "水闸运行状况监测表"), + MS_HPM_SLCRS("ms_hpm_slcrs", "/bzjck/ms_hpm_slcrs", MsHdmSlcrs.class, "水闸运行状况监测表"), MS_HPM_DKRS("ms_hpm_dkrs", "/bzjck/ms_hpm_dkrs", MsHdmDkrs.class, "堤防段运行状况监测表"), MS_HPM_GATE("ms_hpm_gate", "/bzjck/ms_hpm_gate", MsHdmGate.class, "水利工程闸门开度监测表"), MS_DSM_SRVRDS("ms_dsm_srvrds", "/bzjck/ms_dsm_srvrds", MsHdmSvrds.class, "表面垂直位移监测表"), MS_DSM_SRHRDS("ms_dsm_srhrds", "/bzjck/ms_dsm_srhrds", MsHdmSrhrds.class, "表面水平位移监测表"), MS_DSM_INVRDS("ms_dsm_invrds", "/bzjck/ms_dsm_invrds", MsHdmInvrds.class, "内部垂直位移监测表"), MS_DSM_INHRDS("ms_dsm_inhrds", "/bzjck/ms_dsm_inhrds", MsHdmInhrds.class, "内部水平位移监测表"), - MS_DSM_CKOPDG("ms_dsm_ckopdg", "/bzjck/ms_dsm_ckopdg", MsHdmGate.class, "裂缝开合度位移监测表"), - MS_DSM_SPPR("ms_dsm_sppr", "/bzjck/ms_dsm_sppr", MsHdmSvrds.class, "渗流压力水位监测表"), + MS_DSM_CKOPDG("ms_dsm_ckopdg", "/bzjck/ms_dsm_ckopdg", MsHdmCkopdg.class, "裂缝开合度位移监测表"), + MS_DSM_SPPR("ms_dsm_sppr", "/bzjck/ms_dsm_sppr", MsHdmSppr.class, "渗流压力水位监测表"), MS_DSM_PZWL("ms_dsm_pzwl", "/bzjck/ms_dsm_pzwl", MsHdmPzwl.class, "测压管水位监测表"), MS_DSM_SPQN("ms_dsm_spqn", "/bzjck/ms_dsm_spqn", MsHdmSpqn.class, "渗流量监测表"), MS_DSM_ST("ms_dsm_st", "/bzjck/ms_dsm_srhrds", MsHdmSt.class, "应变监测表"), diff --git a/shuili-system/src/main/java/com/kms/yxgh/base/job/DataSyncJob.java b/shuili-system/src/main/java/com/kms/yxgh/base/job/DataSyncJob.java index 6647ae5b..62df94d7 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/base/job/DataSyncJob.java +++ b/shuili-system/src/main/java/com/kms/yxgh/base/job/DataSyncJob.java @@ -44,7 +44,7 @@ public class DataSyncJob { private static final Map FIELD_MAP = TableFieldFactory.getCacheFieldMap(); private static final Map> FIELD_TYPE_MAP = TableFieldFactory.getCacheFieldTypeMap(); private static final int ASYNC_THRESHOLD = 500; - private static final int BATCH_COUNT = 100; + private static final int BATCH_COUNT = 500; private static final SimpleDateFormat DATE_FORMAT_WITH_TIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private static final SimpleDateFormat DATE_FORMAT_WITH_OUT_TIME = new SimpleDateFormat("yyyy-MM-dd"); @@ -67,7 +67,7 @@ public class DataSyncJob { */ @Scheduled(cron = "0 0 2 * * *") public void runMonitor() { - log.info("--------开启监测数据同步请求--------------", dataSyncEnabled); + log.info("--------开启监测数据同步请求:{}--------------", dataSyncEnabled); if (dataSyncEnabled) { Date date = new Date(); for (DataSyncMonitorEnum dataSyncEnum : DataSyncMonitorEnum.values()) { @@ -97,12 +97,12 @@ public class DataSyncJob { do { String requestUrl = String.format("%s%s", dataSyncUrl, url); // 发送POST请求 - Map map = new HashMap(); + Map map = new HashMap<>(); map.put("pageNum", pageNum); map.put("pageSize", pageSize); if(StringUtils.isNotBlank(type)){ - map.put("beginTime", beginTime); - map.put("endTime", endTime); + map.put("START_TIME", beginTime); + map.put("END_TIME", endTime); } String jsonStr = restTemplateUtils.doPostRequest(requestUrl, map); if (StringUtils.isBlank(jsonStr)) { @@ -124,7 +124,7 @@ public class DataSyncJob { // 解析数据 List> dataList = processDataList(jsonArray, filed.split(","), date, tableName, type); // 清除数据 - if (StringUtils.isBlank(type)) { + if (StringUtils.isBlank(type) && pageNum == 1) { baseDdlMapper.delete(tableName); } // 插入数据 @@ -133,13 +133,13 @@ public class DataSyncJob { if (StringUtils.isBlank(type) && jsonArray.size() < pageSize) { break; } - if (pageNum * pageSize >= total) { + if (StringUtils.isNotBlank(type) && pageNum * pageSize >= total) { break; } pageNum += 1; } while (true); } catch (Exception e) { - log.error("--------数据同步出错--------------,表:" + tableName, e); + log.error("--------数据同步出错--------------,表:"+tableName+", 异常:" + e.getMessage()); } } @@ -161,9 +161,9 @@ public class DataSyncJob { Class fieldType = FIELD_TYPE_MAP.getOrDefault(tableName, Collections.emptyMap()).get(fieldName); // 特殊处理:监测数据的入库时间与系统的CREATE_TIME冲突 if (StringUtils.isNotBlank(type)) { - if (fieldName.equals("MS_CREATE_TIME")) { + if ("MS_CREATE_TIME".equals(fieldName)) { return typeConversion(obj, "CREATE_TIME", fieldType); - } else if (fieldName.equals("CREATE_TIME")) { + } else if ("CREATE_TIME".equals(fieldName)) { return nowDate; } } @@ -176,6 +176,9 @@ public class DataSyncJob { * 批量入库 */ private void insertData(String filed, List> dataList, String tableName) { + if(dataList.isEmpty()){ + return; + } // 入库操作 if (dataList.size() > ASYNC_THRESHOLD) { // 先入库100条数据入库 @@ -193,7 +196,9 @@ public class DataSyncJob { cachedDataList = new ArrayList<>(BATCH_COUNT); } } - baseDdlMapper.insert(filed, cachedDataList, tableName); + if(cachedDataList.size()>0) { + baseDdlMapper.insert(filed, cachedDataList, tableName); + } }); } else { baseDdlMapper.insert(filed, dataList, tableName); @@ -230,7 +235,8 @@ public class DataSyncJob { } else if (Date.class.equals(fieldType)) { return convertToDate(obj, fieldName); } else if (Long.class.equals(fieldType)) { - return obj.getLong(fieldName); + return Optional.ofNullable(obj.get(fieldName)).map(Object::toString).filter(s -> !StringUtils.isBlank(s)) + .map(s -> Double.valueOf(s).longValue()).orElse(0L); } return null; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/util/RestTemplateUtils.java b/shuili-system/src/main/java/com/kms/yxgh/util/RestTemplateUtils.java index a5d70748..9c54d5bb 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/util/RestTemplateUtils.java +++ b/shuili-system/src/main/java/com/kms/yxgh/util/RestTemplateUtils.java @@ -69,9 +69,9 @@ public class RestTemplateUtils { String seqResult = ""; try { seqResult = new String(responseEntity.getBody().getBytes(),"utf-8"); - log.info("返回报文:{}", seqResult); + log.info("请求接口:{}, 请求报文:{}, 返回报文:{}", url, requestStr, seqResult); } catch (UnsupportedEncodingException e) { - log.error("接口返回异常", e); + log.error("请求接口:" + url + ",返回异常:" + e.getMessage()); } return seqResult; } diff --git a/sql/sy/v1.3.0/全量脚本/dataSync.sql b/sql/sy/v1.3.0/全量脚本/dataSync.sql index d3692de1..f933f399 100644 --- a/sql/sy/v1.3.0/全量脚本/dataSync.sql +++ b/sql/sy/v1.3.0/全量脚本/dataSync.sql @@ -157,6 +157,21 @@ CREATE TABLE `dws_rel_dike_rv` ( PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防所属河流对象关系表'; +CREATE TABLE `dws_rel_disc_dike` ( + `ID` int NOT NULL AUTO_INCREMENT COMMENT '编号', + `DISC_CODE` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '堤段代码', + `DISC_NAME` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '堤段名称', + `DIKE_CODE` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '堤防代码', + `DIKE_NAME` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '堤防名称', + `FROM_DATE` datetime DEFAULT NULL COMMENT '关系建立时间', + `TO_DATE` datetime DEFAULT NULL COMMENT '关系终止时间', + `REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注', + `CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', + `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', + `UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人', + `UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤段所属堤防对象关系表'; @@ -870,7 +885,7 @@ CREATE TABLE `MS_DSM_AMS` ( CREATE TABLE `MS_DSM_GSTMONREC` ( `ID` int NOT NULL AUTO_INCREMENT COMMENT '编号', `PRJ_STCD` varchar(18) NOT NULL COMMENT '水利工程测站代码', - `MPCD` varchar(13) NOT NULL COMMENT '测点编号', + `MPCD` varchar(20) NOT NULL COMMENT '测点编号', `TM` datetime NOT NULL COMMENT '时间', `STATUS` int DEFAULT NULL COMMENT 'GNSS定位状态(°)', `SATELLITE_NUM` int DEFAULT NULL COMMENT '卫星数', @@ -904,7 +919,7 @@ CREATE TABLE `MS_DSM_GSTMONREC` ( CREATE TABLE `MS_DSM_OSSMONREC` ( `ID` int NOT NULL AUTO_INCREMENT COMMENT '编号', `PRJ_STCD` varchar(18) NOT NULL COMMENT '水利工程测站代码', - `MPCD` varchar(13) NOT NULL COMMENT '测点编号', + `MPCD` varchar(20) NOT NULL COMMENT '测点编号', `TM` datetime NOT NULL COMMENT '时间', `UPLIFTED_PRESSURE` decimal(8,2) DEFAULT NULL COMMENT '扬压力(MPa)', `OSMOTIC_PRESSURE` decimal(8,2) DEFAULT NULL COMMENT '渗透压力(坝体、坝基、绕坝)(MPa)', @@ -929,7 +944,7 @@ CREATE TABLE `MS_DSM_OSSMONREC` ( CREATE TABLE `MS_DSM_ENV` ( `ID` int NOT NULL AUTO_INCREMENT COMMENT '编号', `PRJ_STCD` varchar(18) NOT NULL COMMENT '水利工程测站代码', - `MPCD` varchar(13) NOT NULL COMMENT '测点编号', + `MPCD` varchar(20) NOT NULL COMMENT '测点编号', `TM` datetime NOT NULL COMMENT '时间', `GTP` decimal(6,1) DEFAULT NULL COMMENT '地温(℃)', `AlTP` decimal(6,1) DEFAULT NULL COMMENT '瞬时气温(℃)', diff --git a/sql/sy/v1.3.0/增量脚本/v1.3.0-update.sql b/sql/sy/v1.3.0/增量脚本/v1.3.0-update.sql index 025f4c3f..9bbfed92 100644 --- a/sql/sy/v1.3.0/增量脚本/v1.3.0-update.sql +++ b/sql/sy/v1.3.0/增量脚本/v1.3.0-update.sql @@ -1 +1,22 @@ -SET NAMES utf8mb4; \ No newline at end of file +SET NAMES utf8mb4; + +CREATE TABLE `dws_rel_disc_dike` ( + `ID` int NOT NULL AUTO_INCREMENT COMMENT '编号', + `DISC_CODE` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '堤段代码', + `DISC_NAME` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '堤段名称', + `DIKE_CODE` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '堤防代码', + `DIKE_NAME` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '堤防名称', + `FROM_DATE` datetime DEFAULT NULL COMMENT '关系建立时间', + `TO_DATE` datetime DEFAULT NULL COMMENT '关系终止时间', + `REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注', + `CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', + `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', + `UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人', + `UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤段所属堤防对象关系表'; + +ALTER TABLE `MS_DSM_ENV` MODIFY COLUMN MPCD varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '测点编号'; +ALTER TABLE `MS_DSM_GSTMONREC` MODIFY COLUMN MPCD varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '测点编号'; +ALTER TABLE `MS_DSM_OSSMONREC` MODIFY COLUMN MPCD varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '测点编号'; +