diff --git a/relational_migration/relational_comm/pom.xml b/relational_migration/relational_comm/pom.xml index 2064aa7..dbfc788 100644 --- a/relational_migration/relational_comm/pom.xml +++ b/relational_migration/relational_comm/pom.xml @@ -24,32 +24,7 @@ spring-boot-starter-web - - cn.hutool - hutool-all - - - commons-io - commons-io - - - - org.bouncycastle - bcprov-jdk15on - - - - org.apache.commons - commons-compress - 1.21 - - - - org.projectlombok - lombok - ${lombok.version} - @@ -63,12 +38,7 @@ druid-spring-boot-starter ${druid.version} - - - mysql - mysql-connector-java - ${mysql.version} - + @@ -101,6 +71,23 @@ + + + org.projectlombok + lombok + + + + com.alibaba + fastjson + 1.2.28 + + + + cn.hutool + hutool-all + 5.8.16 + diff --git a/relational_migration/relational_comm/src/main/java/com/njcn/relational/mapper/SgConPlantCMapper.java b/relational_migration/relational_comm/src/main/java/com/njcn/relational/mapper/SgConPlantCMapper.java new file mode 100644 index 0000000..ab27f17 --- /dev/null +++ b/relational_migration/relational_comm/src/main/java/com/njcn/relational/mapper/SgConPlantCMapper.java @@ -0,0 +1,14 @@ +package com.njcn.relational.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.relational.pojo.po.SgConPlantC; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Author: cdf + * @CreateTime: 2026-06-17 + * @Description: + */ +@Mapper +public interface SgConPlantCMapper extends BaseMapper { +} diff --git a/relational_migration/relational_comm/src/main/java/com/njcn/relational/pojo/dto/DcloudSyncQuery.java b/relational_migration/relational_comm/src/main/java/com/njcn/relational/pojo/dto/DcloudSyncQuery.java new file mode 100644 index 0000000..7caa57c --- /dev/null +++ b/relational_migration/relational_comm/src/main/java/com/njcn/relational/pojo/dto/DcloudSyncQuery.java @@ -0,0 +1,52 @@ +package com.njcn.relational.pojo.dto; + +import cn.hutool.core.util.StrUtil; +import lombok.Data; + +/** + * DCloud数据同步查询参数封装实体 + */ +@Data +public class DcloudSyncQuery { + /** 表名 */ + private String tableName; + /** 当前页码 */ + private Integer pageIndex; + /** 每页条数 */ + private Integer pageSize; + /** 过滤条件 */ + private String filter; + /** 排序语句 */ + private String orderStr; + /** 查询字段列表,逗号分隔 */ + private String propertyList; + + /** + * 参数空值兜底处理,防止空指针 + */ + public void emptyCover() { + if (StrUtil.isBlank(filter)) { + filter = StrUtil.EMPTY; + } + if (StrUtil.isBlank(orderStr)) { + orderStr = StrUtil.EMPTY; + } + if (StrUtil.isBlank(propertyList)) { + propertyList = StrUtil.EMPTY; + } + } + + /** + * 快速构建厂站默认查询参数 + */ + public static DcloudSyncQuery buildPlantDefault(String filter, String orderStr, Integer pageIndex, Integer pageSize) { + DcloudSyncQuery query = new DcloudSyncQuery(); + query.setTableName("SG_CON_PLANT_C"); + query.setFilter(filter); + query.setOrderStr(orderStr); + query.setPageIndex(pageIndex); + query.setPageSize(pageSize); + query.setPropertyList("D5000_ID,D5000_NAME,DCLOUD_ID,DCLOUD_NAME,DCLOUD_VOLTAGELEVEL,OWNER,STATUS,UPDATE_TIME"); + return query; + } +} \ No newline at end of file diff --git a/relational_migration/relational_comm/src/main/java/com/njcn/relational/pojo/po/SgConPlantC.java b/relational_migration/relational_comm/src/main/java/com/njcn/relational/pojo/po/SgConPlantC.java new file mode 100644 index 0000000..17da704 --- /dev/null +++ b/relational_migration/relational_comm/src/main/java/com/njcn/relational/pojo/po/SgConPlantC.java @@ -0,0 +1,45 @@ +package com.njcn.relational.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * @Author: cdf + * @CreateTime: 2026-06-17 + * @Description: 发电厂ID映射表 SG_CON_PLANT_C + */ +@Data +@TableName(value = "SG_CON_PLANT_C") +public class SgConPlantC { + + + /** 云平台ID 复合主键 */ + @TableId + private String dcloudId; + + /** 云平台名称 */ + private String dcloudName; + + + + private String d5000Id; + + /** D5000名称 */ + private String d5000Name; + + + + /** 电压等级 */ + private String dcloudVoltagelevel; + + /** 所属单位/产权 */ + private String owner; + + /** 状态 0停用 1正常(VARCHAR类型) */ + private String status; + + /** 更新时间(字符串存储) */ + private String updateTime; + +} diff --git a/relational_migration/relational_target/pom.xml b/relational_migration/relational_target/pom.xml index 93b19bf..8ed3e7f 100644 --- a/relational_migration/relational_target/pom.xml +++ b/relational_migration/relational_target/pom.xml @@ -38,6 +38,59 @@ spring-boot-starter-security + + + com.njcn + model-server-api + 2021 + + + com.driver.dm7 + dm + + + com.driver.ifxjdbc + ifxjdbc + + + + com.alibaba + druid + + + + + + + com.epri + zeus-core + 2.0.3 + + + org.slf4j + slf4j-log4j12 + + + + + + commons-io + commons-io + + + + org.bouncycastle + bcprov-jdk15on + + + + org.apache.commons + commons-compress + 1.21 + + + + diff --git a/relational_migration/relational_target/src/main/java/com/njcn/relational/RelationalTargetApplication.java b/relational_migration/relational_target/src/main/java/com/njcn/relational/RelationalTargetApplication.java index 4dafe35..579ad67 100644 --- a/relational_migration/relational_target/src/main/java/com/njcn/relational/RelationalTargetApplication.java +++ b/relational_migration/relational_target/src/main/java/com/njcn/relational/RelationalTargetApplication.java @@ -3,10 +3,13 @@ package com.njcn.relational; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.scheduling.annotation.EnableScheduling; -@SpringBootApplication(scanBasePackages = {"com.njcn.relational"} ) -@MapperScan(value = "com.njcn.relational") +@SpringBootApplication( + scanBasePackages = {"com.njcn.relational"} +) +@MapperScan(value = "com.njcn.relational.mapper") @EnableScheduling public class RelationalTargetApplication { diff --git a/relational_migration/relational_target/src/main/java/com/njcn/relational/controller/DataTransportController.java b/relational_migration/relational_target/src/main/java/com/njcn/relational/controller/DataTransportController.java index 0d10d39..d1743ba 100644 --- a/relational_migration/relational_target/src/main/java/com/njcn/relational/controller/DataTransportController.java +++ b/relational_migration/relational_target/src/main/java/com/njcn/relational/controller/DataTransportController.java @@ -1,10 +1,11 @@ package com.njcn.relational.controller; + import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.njcn.relational.service.SyncTableConfigService; import com.njcn.relational.service.SyncTableParseService; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; diff --git a/relational_migration/relational_target/src/main/java/com/njcn/relational/controller/DcloudBusController.java b/relational_migration/relational_target/src/main/java/com/njcn/relational/controller/DcloudBusController.java new file mode 100644 index 0000000..e1bea44 --- /dev/null +++ b/relational_migration/relational_target/src/main/java/com/njcn/relational/controller/DcloudBusController.java @@ -0,0 +1,25 @@ +package com.njcn.relational.controller; + +import com.njcn.relational.service.DcloudBusService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author: cdf + * @CreateTime: 2026-06-17 + * @Description: + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/bus") +public class DcloudBusController { + + private final DcloudBusService dcloudBusService; + + @GetMapping("/sync") + public void syncData() { + dcloudBusService.syncDataToDb(); + } +} diff --git a/relational_migration/relational_target/src/main/java/com/njcn/relational/service/DcloudBusService.java b/relational_migration/relational_target/src/main/java/com/njcn/relational/service/DcloudBusService.java new file mode 100644 index 0000000..db3aedb --- /dev/null +++ b/relational_migration/relational_target/src/main/java/com/njcn/relational/service/DcloudBusService.java @@ -0,0 +1,18 @@ +package com.njcn.relational.service; + + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import dcloud.common.InnerServiceBus.ServiceBus; +import dcloud.model.common.ConModel; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + + +public interface DcloudBusService { + + boolean syncDataToDb(); + +} diff --git a/relational_migration/relational_target/src/main/java/com/njcn/relational/service/DynamicDataImportService.java b/relational_migration/relational_target/src/main/java/com/njcn/relational/service/DynamicDataImportService.java deleted file mode 100644 index 35d698f..0000000 --- a/relational_migration/relational_target/src/main/java/com/njcn/relational/service/DynamicDataImportService.java +++ /dev/null @@ -1,79 +0,0 @@ -//package com.njcn.relational.service; -// -//import com.njcn.relational.utils.PowerDataParser; -//import lombok.AllArgsConstructor; -//import lombok.Data; -//import lombok.RequiredArgsConstructor; -//import org.apache.ibatis.session.ExecutorType; -//import org.apache.ibatis.session.SqlSession; -//import org.apache.ibatis.session.SqlSessionFactory; -//import org.springframework.stereotype.Service; -//import org.springframework.transaction.annotation.Transactional; -// -//import java.io.IOException; -//import java.util.List; -//import java.util.Map; -//import java.util.Set; -//import java.util.stream.Collectors; -//import java.util.stream.IntStream; -// -///** -// * @Author: cdf -// * @CreateTime: 2025-05-28 -// * @Description: -// */ -//@Service -//@RequiredArgsConstructor -//public class DynamicDataImportService { -// private final PowerDataParser powerDataParser; -// private final SqlSessionFactory sqlSessionFactory; -// -// @Transactional -// public void dynamicImportData(String filePath) throws IOException { -// Map>> tableDataMap = powerDataParser.parseMultiTableFile(filePath); -// -// // 批量大小设置为1000,可根据实际情况调整 -// final int batchSize = 1000; -// -// try (SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH)) { -// for (Map.Entry>> entry : tableDataMap.entrySet()) { -// String tableName = entry.getKey(); -// List> dataList = entry.getValue(); -// -// if (dataList.isEmpty()) continue; -// -// // 获取列名 -// Set columns = dataList.get(0).keySet(); -// -// // 分批处理 -// for (int i = 0; i < dataList.size(); i += batchSize) { -// List> batch = dataList.subList(i, Math.min(i + batchSize, dataList.size())); -// -// // 执行批量插入 -// sqlSession.insert("dynamicBatchInsert", new DynamicInsertParam( -// tableName, -// columns, -// batch, -// batch.size() -// )); -// -// // 定期刷新并清空缓存 -// sqlSession.flushStatements(); -// sqlSession.clearCache(); -// } -// System.out.println(tableName+"——表数据转移成功"); -// } -// } -// } -// -// -// -// @Data -// @AllArgsConstructor -// public static class DynamicInsertParam { -// private String tableName; -// private Set columns; -// private List> batchData; -// private int batchSize; -// } -//} diff --git a/relational_migration/relational_target/src/main/java/com/njcn/relational/service/SgConPlantCService.java b/relational_migration/relational_target/src/main/java/com/njcn/relational/service/SgConPlantCService.java new file mode 100644 index 0000000..0672ae3 --- /dev/null +++ b/relational_migration/relational_target/src/main/java/com/njcn/relational/service/SgConPlantCService.java @@ -0,0 +1,15 @@ +package com.njcn.relational.service; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.relational.pojo.po.SgConPlantC; + +public interface SgConPlantCService extends IService { + + /** + * 批量同步DCloud接口JSON数据,主键存在更新、不存在新增 + * @param dataArr dcloud返回的数据集 + * @return 同步结果 + */ + boolean batchSyncFromDcloud(JSONArray dataArr); +} diff --git a/relational_migration/relational_target/src/main/java/com/njcn/relational/service/impl/DcloudBusServiceImpl.java b/relational_migration/relational_target/src/main/java/com/njcn/relational/service/impl/DcloudBusServiceImpl.java new file mode 100644 index 0000000..326910c --- /dev/null +++ b/relational_migration/relational_target/src/main/java/com/njcn/relational/service/impl/DcloudBusServiceImpl.java @@ -0,0 +1,254 @@ +package com.njcn.relational.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.njcn.relational.pojo.dto.DcloudSyncQuery; +import com.njcn.relational.service.DcloudBusService; +import com.njcn.relational.service.SgConPlantCService; +import dcloud.common.InnerServiceBus.ServiceBus; +import dcloud.model.common.ConModel; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Author: cdf + * @CreateTime: 2026-06-17 + * @Description: 云平台模型服务实现类 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class DcloudBusServiceImpl implements DcloudBusService { + + private static final String MODEL_STR = "dcloud.model.common.ConModel"; + private static final int DEFAULT_PAGE_SIZE = 1000; + private static final int MAX_RETRY = 3; + + private final SgConPlantCService sgConPlantCService; + + /** + * 统一同步入口 + */ + public void syncData(DcloudSyncQuery query) { + query.emptyCover(); + String tableName = query.getTableName(); + log.info("【{}】开始同步数据,查询参数:{}", MODEL_STR, query); + + ServiceBus serviceBus = initServiceBus(); + if (serviceBus == null) { + log.error("ServiceBus初始化失败,终止同步,tableName={}", tableName); + return; + } + + handleConModelSync(serviceBus, query); + } + + /** + * 初始化服务总线 + */ + private ServiceBus initServiceBus() { + ServiceBus bus = new ServiceBus(); + try { + bus.init(); + log.info("ServiceBus初始化成功"); + return bus; + } catch (Exception e) { + log.error("ServiceBus初始化异常", e); + return null; + } + } + + /** + * 获取数据总数 + */ + private Integer getDataSize(ConModel model, String tableName, String filter) { + try { + JSONObject result = model.getDataSize(tableName, filter); + log.info("[{}] 获取数据总数,filter: {}", tableName, filter); + + if (result == null) { + log.error("[{}] 获取数据总数返回空", tableName); + return 0; + } + + String code = StrUtil.nullToEmpty(result.getString("code")); + if (!"200".equals(code)) { + log.error("[{}] 获取数据总数失败,响应码:{}", tableName, code); + return 0; + } + + Integer dataSize = result.getInteger("dataSize"); + log.info("[{}] 数据总数: {}", tableName, dataSize); + return dataSize != null ? dataSize : 0; + } catch (Exception e) { + log.error("[{}] 获取数据总数异常", tableName, e); + return 0; + } + } + + /** + * 分页查询数据 + */ + private JSONArray getDataList(ConModel model, DcloudSyncQuery query, int pageIndex, int pageSize) { + try { + JSONObject result = model.getDataList( + query.getTableName(), + pageSize, + pageIndex, + query.getFilter(), + query.getOrderStr(), + query.getPropertyList() + ); + + if (result == null) { + log.error("[{}] 分页查询返回空,pageIndex: {}", query.getTableName(), pageIndex); + return new JSONArray(); + } + + String code = StrUtil.nullToEmpty(result.getString("code")); + if (!"200".equals(code)) { + log.error("[{}] 分页查询失败,响应码:{},pageIndex: {}", query.getTableName(), code, pageIndex); + return new JSONArray(); + } + + JSONArray dataArr = result.getJSONArray("data"); + return dataArr != null ? dataArr : new JSONArray(); + } catch (Exception e) { + log.error("[{}] 分页查询异常,pageIndex: {}", query.getTableName(), pageIndex, e); + return new JSONArray(); + } + } + + /** + * ConModel模型同步逻辑(先查总数,再分批查询入库) + */ + private void handleConModelSync(ServiceBus bus, DcloudSyncQuery query) { + String tableName = query.getTableName(); + int successCount = 0; + int failCount = 0; + + try { + ConModel model = (ConModel) bus.locateService(MODEL_STR); + + // 1. 先查询总数 + Integer totalCount = getDataSize(model, tableName, query.getFilter()); + if (totalCount == null || totalCount == 0) { + log.info("[{}] 无数据需要同步", tableName); + return; + } + log.info("[{}] 总共需要同步 {} 条数据", tableName, totalCount); + + // 2. 计算分页参数 + int pageSize = query.getPageSize() != null ? query.getPageSize() : DEFAULT_PAGE_SIZE; + int totalPages = (totalCount + pageSize - 1) / pageSize; + log.info("[{}] 分页参数: 每页{}条, 共{}页", tableName, pageSize, totalPages); + + // 3. 分批查询并入库 + for (int pageIndex = 1; pageIndex <= totalPages; pageIndex++) { + log.info("[{}] 开始查询第 {}/{} 页", tableName, pageIndex, totalPages); + + // 带重试的分页查询 + JSONArray pageData = null; + for (int retry = 0; retry < MAX_RETRY; retry++) { + pageData = getDataList(model, query, pageIndex, pageSize); + if (pageData != null && !pageData.isEmpty()) { + break; + } + if (retry < MAX_RETRY - 1) { + log.warn("[{}] 第{}页查询失败(第{}次重试),等待后重试", tableName, pageIndex, retry + 1); + try { + Thread.sleep(1000 * (retry + 1)); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + } + + if (pageData == null || pageData.isEmpty()) { + log.warn("[{}] 第{}页无数据,跳过", tableName, pageIndex); + failCount++; + continue; + } + + log.info("[{}] 第{}页查询到 {} 条数据,开始入库", tableName, pageIndex, pageData.size()); + + // 分批入库(每页数据直接入库) + boolean batchResult = sgConPlantCService.batchSyncFromDcloud(pageData); + if (batchResult) { + successCount += pageData.size(); + log.info("[{}] 第{}页入库成功,当前累计成功 {} 条", tableName, pageIndex, successCount); + } else { + failCount += pageData.size(); + log.error("[{}] 第{}页入库失败", tableName, pageIndex); + } + } + + log.info("[{}] 同步完成: 成功={}, 失败={}, 总计={}", tableName, successCount, failCount, totalCount); + + } catch (Exception e) { + log.error("[{}] ConModel同步数据异常", tableName, e); + } + } + + /** + * 数据入库入口 + */ + @Override + public boolean syncDataToDb() { + log.info("开始从云平台同步厂站数据到本地数据库"); + + DcloudSyncQuery query = DcloudSyncQuery.buildPlantDefault(null, null, 1, DEFAULT_PAGE_SIZE); + + ServiceBus serviceBus = initServiceBus(); + if (serviceBus == null) { + log.error("ServiceBus初始化失败,终止同步"); + return false; + } + + try { + handleConModelSync(serviceBus, query); + log.info("厂站数据同步完成"); + return true; + } catch (Exception e) { + log.error("厂站数据同步失败", e); + return false; + } + } + + // ===================== 便捷方法 ===================== + + /** + * 快速同步厂站表数据 + */ + public void syncPlantConData(Integer pageIndex, Integer pageSize, String filter, String orderStr) { + DcloudSyncQuery query = DcloudSyncQuery.buildPlantDefault(filter, orderStr, pageIndex, pageSize); + syncData(query); + } + + /** + * 快速同步厂站表数据(使用默认分页) + */ + public void syncPlantConData() { + syncPlantConData(1, DEFAULT_PAGE_SIZE, null, null); + } + + /** + * 根据更新时间增量同步厂站数据 + */ + public void syncPlantConDataByUpdateTime(String updateTime) { + String filter = "UPDATE_TIME >= '" + updateTime + "'"; + DcloudSyncQuery query = DcloudSyncQuery.buildPlantDefault(filter, null, 1, DEFAULT_PAGE_SIZE); + syncData(query); + } + + /** + * 根据ID同步指定厂站数据 + */ + public void syncPlantConDataById(String dcloudId) { + String filter = "ID = '" + dcloudId + "'"; + DcloudSyncQuery query = DcloudSyncQuery.buildPlantDefault(filter, null, 1, DEFAULT_PAGE_SIZE); + syncData(query); + } +} \ No newline at end of file diff --git a/relational_migration/relational_target/src/main/java/com/njcn/relational/service/impl/SgConPlantCServiceImpl.java b/relational_migration/relational_target/src/main/java/com/njcn/relational/service/impl/SgConPlantCServiceImpl.java new file mode 100644 index 0000000..3e70230 --- /dev/null +++ b/relational_migration/relational_target/src/main/java/com/njcn/relational/service/impl/SgConPlantCServiceImpl.java @@ -0,0 +1,71 @@ +package com.njcn.relational.service.impl; + +import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import com.njcn.relational.mapper.SgConPlantCMapper; +import com.njcn.relational.pojo.po.SgConPlantC; +import com.njcn.relational.service.SgConPlantCService; +import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + +@Service +public class SgConPlantCServiceImpl extends ServiceImpl implements SgConPlantCService { + + @Override + public boolean batchSyncFromDcloud(JSONArray dataArr) { + if (CollUtil.isEmpty(dataArr)) { + return true; + } + List entityList = new ArrayList<>(dataArr.size()); + for (Object obj : dataArr) { + JSONObject json = (JSONObject) obj; + SgConPlantC plant = new SgConPlantC(); + plant.setD5000Id(json.getString("D5000_ID")); + plant.setD5000Name(json.getString("D5000_NAME")); + plant.setDcloudId(json.getString("DCLOUD_ID")); + plant.setDcloudName(json.getString("DCLOUD_NAME")); + plant.setDcloudVoltagelevel(json.getString("DCLOUD_VOLTAGELEVEL")); + plant.setOwner(json.getString("OWNER")); + plant.setStatus(json.getString("STATUS")); + plant.setUpdateTime(json.getString("UPDATE_TIME")); + entityList.add(plant); + } + // 批次500条,复合主键冲突自动更新 + return saveOrUpdateBatch(entityList, 500); + } + + /** + * 根据双主键查询单条 + */ + public SgConPlantC getByPk(String d5000Id, String dcloudId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SgConPlantC::getD5000Id, d5000Id) + .eq(SgConPlantC::getDcloudId, dcloudId); + return getOne(wrapper); + } + + /** + * 根据双主键删除 + */ + public boolean removeByPk(String d5000Id, String dcloudId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SgConPlantC::getD5000Id, d5000Id) + .eq(SgConPlantC::getDcloudId, dcloudId); + return remove(wrapper); + } + + /** + * 根据双主键更新 + */ + public boolean updateByPk(SgConPlantC entity) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SgConPlantC::getD5000Id, entity.getD5000Id()) + .eq(SgConPlantC::getDcloudId, entity.getDcloudId()); + return update(entity, wrapper); + } +} \ No newline at end of file diff --git a/relational_migration/relational_target/src/main/resources/application-insert.yml b/relational_migration/relational_target/src/main/resources/application-insert.yml index 8f459b4..0e960a9 100644 --- a/relational_migration/relational_target/src/main/resources/application-insert.yml +++ b/relational_migration/relational_target/src/main/resources/application-insert.yml @@ -3,8 +3,8 @@ spring: datasource: druid: driver-class-name: dm.jdbc.driver.DmDriver - url: jdbc:dm://192.168.1.21:5236/PQSINFO_LN?useUnicode=true&characterEncoding=utf-8 - username: PQSINFO_LN + url: jdbc:dm://127.0.0.1:5236/PQSADMIN?useUnicode=true&characterEncoding=utf-8 + username: PQSADMIN password: Pqsadmin123 #初始化建立物理连接的个数、最小、最大连接数 initial-size: 5 diff --git a/relational_migration/relational_target/src/main/resources/application-insert_up.yml b/relational_migration/relational_target/src/main/resources/application-insert_up.yml index 1c89175..52a7e9f 100644 --- a/relational_migration/relational_target/src/main/resources/application-insert_up.yml +++ b/relational_migration/relational_target/src/main/resources/application-insert_up.yml @@ -34,3 +34,22 @@ sync: export: localPath: D:/data/export/ remotePath: /home/export/ + + +# Dubbo 下面的配置用于调控云消息总线 +dubbo: + application: + # ??????????? + name: cloud.njcndnzl + registry: + # zookeeper?????????????? + address: 28.34.131.11:2181,28.34.131.12:2181,28.34.131.13:2181 + protocol: + # Dubbo?????? + port: 20991 + +# ElasticSearch ?? +es: + hosts: 28.34.133.3,28.34.133.4 + cluster: + name: yundiz-log \ No newline at end of file diff --git a/relational_migration/relational_target/src/main/resources/application.yml b/relational_migration/relational_target/src/main/resources/application.yml index f70b4ff..8811081 100644 --- a/relational_migration/relational_target/src/main/resources/application.yml +++ b/relational_migration/relational_target/src/main/resources/application.yml @@ -10,11 +10,11 @@ spring: name: dmTransport profiles: #active: query_up - active: query_up + active: insert_up security: user: - name: data_njcn - password: dnzl@#002 + name: njcn + password: dnzl@#001 #mybatis配置信息 mybatis-plus: #别名扫描 diff --git a/relational_migration/relational_target/src/main/resources/logback-spring.xml b/relational_migration/relational_target/src/main/resources/logback-spring.xml index fa95188..85e83a4 100644 --- a/relational_migration/relational_target/src/main/resources/logback-spring.xml +++ b/relational_migration/relational_target/src/main/resources/logback-spring.xml @@ -12,29 +12,36 @@ - - - /home/lnyw/logs/transport/transport${appName}.log - - /home/lnyw/logs/transport/transport${appName}-%d{yyyy-MM-dd}.log - 15 - 10GB - - - %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n - UTF-8 - - + + - + + + + + + + + + + + + + + + + + + + + - /home/lnyw/logs/transport/transport${appName}-info.log + ${LOG_PATH}/info/transport-${appName}-info.log - /home/lnyw/logs/transport/transport${appName}-info-%d{yyyy-MM-dd}.log + ${LOG_PATH}/info/transport-${appName}-info-%d{yyyy-MM-dd}.log 15 5GB - INFO ACCEPT @@ -48,9 +55,9 @@ - /home/lnyw/logs/transport/transport${appName}-error.log + ${LOG_PATH}/error/transport-${appName}-error.log - /home/lnyw/logs/transport/transport${appName}-error-%d{yyyy-MM-dd}.log + ${LOG_PATH}/error/transport-${appName}-error-%d{yyyy-MM-dd}.log 30 5GB @@ -68,7 +75,6 @@ - @@ -78,4 +84,4 @@ - + \ No newline at end of file