diff --git a/src/main/java/com/xydl/cac/adapter/BusiAdapter.java b/src/main/java/com/xydl/cac/adapter/BusiAdapter.java index e0e93fd..e952eaa 100644 --- a/src/main/java/com/xydl/cac/adapter/BusiAdapter.java +++ b/src/main/java/com/xydl/cac/adapter/BusiAdapter.java @@ -2,6 +2,7 @@ package com.xydl.cac.adapter; import com.xydl.cac.adapter.busiclient.XydlService; import com.xydl.cac.adapter.busiclient.XydlServiceImplServiceLocator; +import com.xydl.cac.entity.I2syncConfig; import com.xydl.cac.entity.I2syncField; import com.xydl.cac.entity.I2syncRecord; import com.xydl.cac.entity.NSensor; @@ -25,10 +26,10 @@ public class BusiAdapter { @Resource I2DataTransformer dataTransformer; - public void uploadData(NSensor sensor, I2syncRecord record, + public void uploadData(NSensor sensor, I2syncRecord record, I2syncConfig config, List fieldList, List> dataList) throws Exception { // 格式转换 - Request request = dataTransformer.transform(sensor, record, fieldList, dataList); + Request request = dataTransformer.transform(sensor, record, config, fieldList, dataList); // 转换结构 String xml = JSONUtil.object2Xml(request); diff --git a/src/main/java/com/xydl/cac/controller/I2syncController.java b/src/main/java/com/xydl/cac/controller/I2syncController.java index f8b53ff..8923bf9 100644 --- a/src/main/java/com/xydl/cac/controller/I2syncController.java +++ b/src/main/java/com/xydl/cac/controller/I2syncController.java @@ -12,7 +12,7 @@ import com.xydl.cac.model.i2sync.Datanode; import com.xydl.cac.model.i2sync.Monitordata; import com.xydl.cac.model.i2sync.Request; import com.xydl.cac.service.I2syncService; -import com.xydl.cac.util.DataTable; +import com.xydl.cac.service.ModevTypeService; import com.xydl.cac.util.DateUtil; import com.xydl.cac.util.JSONUtil; import io.swagger.annotations.Api; @@ -35,6 +35,8 @@ public class I2syncController extends BasicController { @Resource I2syncService service; + @Resource + ModevTypeService modevTypeService; @GetMapping("listFieldConfig") @ApiOperation("查询字段映射") @@ -93,8 +95,9 @@ public class I2syncController extends BasicController { @GetMapping("prewXml") @ApiOperation("预览xml结构") - public Response prewXml(String tablename) throws Exception { - List fieldList = service.listFieldConfig(tablename); + public Response prewXml(Integer modevtypeId) throws Exception { + ModevType modevType = modevTypeService.detail(modevtypeId); + List fieldList = service.listFieldConfig(modevType.getTablename()); List attrs = new ArrayList<>(); Attr attr = new Attr(); attr.setName("Phase"); @@ -110,7 +113,7 @@ public class I2syncController extends BasicController { } Datanode node = new Datanode(); node.setSensorid("HNHFT001Q1W000104"); - node.setType(DataTable.getDevType(tablename)); + node.setType(modevType.getTypeCode()); node.setEquipmentid("HNHFT001Q1W000104"); node.setTimestamp(DateUtil.format(new Date())); node.setAttr(attrs); @@ -125,7 +128,7 @@ public class I2syncController extends BasicController { String xml = JSONUtil.object2Xml(request); Response resp = Response.success(xml); if (StringUtils.isBlank(node.getType())) { - resp.setWarnMsg("该类型还未配置对应的监测类型编码将导致type为空"); + resp.setWarnMsg("该类型还未配置对应的类型编码将导致type为空"); } return resp; } diff --git a/src/main/java/com/xydl/cac/entity/I2syncConfig.java b/src/main/java/com/xydl/cac/entity/I2syncConfig.java index 8cdfcdf..796f488 100644 --- a/src/main/java/com/xydl/cac/entity/I2syncConfig.java +++ b/src/main/java/com/xydl/cac/entity/I2syncConfig.java @@ -40,5 +40,8 @@ public class I2syncConfig { @ApiModelProperty("对应的表名") @Transient private String tableName; + @ApiModelProperty("类型编码") + @Transient + private String typeCode; } \ No newline at end of file diff --git a/src/main/java/com/xydl/cac/entity/ModevType.java b/src/main/java/com/xydl/cac/entity/ModevType.java index c515cd8..8782b24 100644 --- a/src/main/java/com/xydl/cac/entity/ModevType.java +++ b/src/main/java/com/xydl/cac/entity/ModevType.java @@ -36,6 +36,9 @@ public class ModevType { @Column(name = "tablename") private String tablename; + @Column(name = "type_code") + private String typeCode; + @Transient private long sensorCount; diff --git a/src/main/java/com/xydl/cac/service/impl/I2syncServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/I2syncServiceImpl.java index 435fe20..a32b568 100644 --- a/src/main/java/com/xydl/cac/service/impl/I2syncServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/I2syncServiceImpl.java @@ -86,6 +86,7 @@ public class I2syncServiceImpl implements I2syncService { if (type.getId().equals(item.getModevtypeId())) { item.setTypeName(type.getMc()); item.setTableName(type.getTablename()); + item.setTypeCode(type.getTypeCode()); } } } diff --git a/src/main/java/com/xydl/cac/task/I2syncTask.java b/src/main/java/com/xydl/cac/task/I2syncTask.java index e753b5f..f8a0c84 100644 --- a/src/main/java/com/xydl/cac/task/I2syncTask.java +++ b/src/main/java/com/xydl/cac/task/I2syncTask.java @@ -76,12 +76,13 @@ public class I2syncTask { List list = sensorRepository.findByTypeId(config.getModevtypeId()); for (NSensor sensor : list) { sensor.setTableName(config.getTableName()); - this.syncOneSensor(sensor, fieldList, points); + this.syncOneSensor(sensor, config, fieldList, points); } } // 同步一个装置 - private void syncOneSensor(NSensor sensor, List fieldList, List points) throws Exception { + private void syncOneSensor(NSensor sensor, I2syncConfig config, + List fieldList, List points) throws Exception { I2syncRecord record; List recordList = recordRepository.findByEqmid(sensor.getDevId()); if (CollectionUtils.isEmpty(recordList)) { @@ -99,7 +100,7 @@ public class I2syncTask { } // 同步和导出 - busiAdapter.uploadData(sensor, record, fieldList, dataList); + busiAdapter.uploadData(sensor, record, config, fieldList, dataList); recordRepository.save(record); int count = dataList.size(); @@ -108,7 +109,7 @@ public class I2syncTask { if (count >= 1000) { dataList.clear(); - this.syncOneSensor(sensor, fieldList, points); + this.syncOneSensor(sensor, config, fieldList, points); } } diff --git a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java index 032ea87..4798760 100644 --- a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java +++ b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java @@ -1,6 +1,7 @@ package com.xydl.cac.transform; import com.alibaba.excel.util.StringUtils; +import com.xydl.cac.entity.I2syncConfig; import com.xydl.cac.entity.I2syncField; import com.xydl.cac.entity.I2syncRecord; import com.xydl.cac.entity.NSensor; @@ -21,7 +22,7 @@ import java.util.Map; @Slf4j public class I2DataTransformer { - public Request transform(NSensor sensor, I2syncRecord record, + public Request transform(NSensor sensor, I2syncRecord record, I2syncConfig config, List fieldList, List> dataList) throws Exception { List nodeList = new ArrayList<>(); @@ -45,7 +46,7 @@ public class I2DataTransformer { attr.setValue(String.valueOf(value)); attr.setAlarm("FALSE"); if (StringUtils.isBlank(node.getType())) { - node.setType(DataTable.getDevType(field.getTableName())); + node.setType(config.getTypeCode()); } attrs.add(attr); }