feat: 增加类型编码

dev
huangfeng 12 months ago
parent 18dfe6446c
commit cc1b4c4441

@ -2,6 +2,7 @@ package com.xydl.cac.adapter;
import com.xydl.cac.adapter.busiclient.XydlService; import com.xydl.cac.adapter.busiclient.XydlService;
import com.xydl.cac.adapter.busiclient.XydlServiceImplServiceLocator; import com.xydl.cac.adapter.busiclient.XydlServiceImplServiceLocator;
import com.xydl.cac.entity.I2syncConfig;
import com.xydl.cac.entity.I2syncField; import com.xydl.cac.entity.I2syncField;
import com.xydl.cac.entity.I2syncRecord; import com.xydl.cac.entity.I2syncRecord;
import com.xydl.cac.entity.NSensor; import com.xydl.cac.entity.NSensor;
@ -25,10 +26,10 @@ public class BusiAdapter {
@Resource @Resource
I2DataTransformer dataTransformer; I2DataTransformer dataTransformer;
public void uploadData(NSensor sensor, I2syncRecord record, public void uploadData(NSensor sensor, I2syncRecord record, I2syncConfig config,
List<I2syncField> fieldList, List<Map<String, Object>> dataList) throws Exception { List<I2syncField> fieldList, List<Map<String, Object>> 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); String xml = JSONUtil.object2Xml(request);

@ -12,7 +12,7 @@ import com.xydl.cac.model.i2sync.Datanode;
import com.xydl.cac.model.i2sync.Monitordata; import com.xydl.cac.model.i2sync.Monitordata;
import com.xydl.cac.model.i2sync.Request; import com.xydl.cac.model.i2sync.Request;
import com.xydl.cac.service.I2syncService; 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.DateUtil;
import com.xydl.cac.util.JSONUtil; import com.xydl.cac.util.JSONUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -35,6 +35,8 @@ public class I2syncController extends BasicController {
@Resource @Resource
I2syncService service; I2syncService service;
@Resource
ModevTypeService modevTypeService;
@GetMapping("listFieldConfig") @GetMapping("listFieldConfig")
@ApiOperation("查询字段映射") @ApiOperation("查询字段映射")
@ -93,8 +95,9 @@ public class I2syncController extends BasicController {
@GetMapping("prewXml") @GetMapping("prewXml")
@ApiOperation("预览xml结构") @ApiOperation("预览xml结构")
public Response<String> prewXml(String tablename) throws Exception { public Response<String> prewXml(Integer modevtypeId) throws Exception {
List<I2syncField> fieldList = service.listFieldConfig(tablename); ModevType modevType = modevTypeService.detail(modevtypeId);
List<I2syncField> fieldList = service.listFieldConfig(modevType.getTablename());
List<Attr> attrs = new ArrayList<>(); List<Attr> attrs = new ArrayList<>();
Attr attr = new Attr(); Attr attr = new Attr();
attr.setName("Phase"); attr.setName("Phase");
@ -110,7 +113,7 @@ public class I2syncController extends BasicController {
} }
Datanode node = new Datanode(); Datanode node = new Datanode();
node.setSensorid("HNHFT001Q1W000104"); node.setSensorid("HNHFT001Q1W000104");
node.setType(DataTable.getDevType(tablename)); node.setType(modevType.getTypeCode());
node.setEquipmentid("HNHFT001Q1W000104"); node.setEquipmentid("HNHFT001Q1W000104");
node.setTimestamp(DateUtil.format(new Date())); node.setTimestamp(DateUtil.format(new Date()));
node.setAttr(attrs); node.setAttr(attrs);
@ -125,7 +128,7 @@ public class I2syncController extends BasicController {
String xml = JSONUtil.object2Xml(request); String xml = JSONUtil.object2Xml(request);
Response<String> resp = Response.success(xml); Response<String> resp = Response.success(xml);
if (StringUtils.isBlank(node.getType())) { if (StringUtils.isBlank(node.getType())) {
resp.setWarnMsg("该类型还未配置对应的监测类型编码将导致type为空"); resp.setWarnMsg("该类型还未配置对应的类型编码将导致type为空");
} }
return resp; return resp;
} }

@ -40,5 +40,8 @@ public class I2syncConfig {
@ApiModelProperty("对应的表名") @ApiModelProperty("对应的表名")
@Transient @Transient
private String tableName; private String tableName;
@ApiModelProperty("类型编码")
@Transient
private String typeCode;
} }

@ -36,6 +36,9 @@ public class ModevType {
@Column(name = "tablename") @Column(name = "tablename")
private String tablename; private String tablename;
@Column(name = "type_code")
private String typeCode;
@Transient @Transient
private long sensorCount; private long sensorCount;

@ -86,6 +86,7 @@ public class I2syncServiceImpl implements I2syncService {
if (type.getId().equals(item.getModevtypeId())) { if (type.getId().equals(item.getModevtypeId())) {
item.setTypeName(type.getMc()); item.setTypeName(type.getMc());
item.setTableName(type.getTablename()); item.setTableName(type.getTablename());
item.setTypeCode(type.getTypeCode());
} }
} }
} }

@ -76,12 +76,13 @@ public class I2syncTask {
List<NSensor> list = sensorRepository.findByTypeId(config.getModevtypeId()); List<NSensor> list = sensorRepository.findByTypeId(config.getModevtypeId());
for (NSensor sensor : list) { for (NSensor sensor : list) {
sensor.setTableName(config.getTableName()); sensor.setTableName(config.getTableName());
this.syncOneSensor(sensor, fieldList, points); this.syncOneSensor(sensor, config, fieldList, points);
} }
} }
// 同步一个装置 // 同步一个装置
private void syncOneSensor(NSensor sensor, List<I2syncField> fieldList, List<ModevTypePoint> points) throws Exception { private void syncOneSensor(NSensor sensor, I2syncConfig config,
List<I2syncField> fieldList, List<ModevTypePoint> points) throws Exception {
I2syncRecord record; I2syncRecord record;
List<I2syncRecord> recordList = recordRepository.findByEqmid(sensor.getDevId()); List<I2syncRecord> recordList = recordRepository.findByEqmid(sensor.getDevId());
if (CollectionUtils.isEmpty(recordList)) { 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); recordRepository.save(record);
int count = dataList.size(); int count = dataList.size();
@ -108,7 +109,7 @@ public class I2syncTask {
if (count >= 1000) { if (count >= 1000) {
dataList.clear(); dataList.clear();
this.syncOneSensor(sensor, fieldList, points); this.syncOneSensor(sensor, config, fieldList, points);
} }
} }

@ -1,6 +1,7 @@
package com.xydl.cac.transform; package com.xydl.cac.transform;
import com.alibaba.excel.util.StringUtils; import com.alibaba.excel.util.StringUtils;
import com.xydl.cac.entity.I2syncConfig;
import com.xydl.cac.entity.I2syncField; import com.xydl.cac.entity.I2syncField;
import com.xydl.cac.entity.I2syncRecord; import com.xydl.cac.entity.I2syncRecord;
import com.xydl.cac.entity.NSensor; import com.xydl.cac.entity.NSensor;
@ -21,7 +22,7 @@ import java.util.Map;
@Slf4j @Slf4j
public class I2DataTransformer { public class I2DataTransformer {
public Request transform(NSensor sensor, I2syncRecord record, public Request transform(NSensor sensor, I2syncRecord record, I2syncConfig config,
List<I2syncField> fieldList, List<Map<String, Object>> dataList) throws Exception { List<I2syncField> fieldList, List<Map<String, Object>> dataList) throws Exception {
List<Datanode> nodeList = new ArrayList<>(); List<Datanode> nodeList = new ArrayList<>();
@ -45,7 +46,7 @@ public class I2DataTransformer {
attr.setValue(String.valueOf(value)); attr.setValue(String.valueOf(value));
attr.setAlarm("FALSE"); attr.setAlarm("FALSE");
if (StringUtils.isBlank(node.getType())) { if (StringUtils.isBlank(node.getType())) {
node.setType(DataTable.getDevType(field.getTableName())); node.setType(config.getTypeCode());
} }
attrs.add(attr); attrs.add(attr);
} }

Loading…
Cancel
Save