feat: 增加类型编码

iec104
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.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<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);

@ -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<String> prewXml(String tablename) throws Exception {
List<I2syncField> fieldList = service.listFieldConfig(tablename);
public Response<String> prewXml(Integer modevtypeId) throws Exception {
ModevType modevType = modevTypeService.detail(modevtypeId);
List<I2syncField> fieldList = service.listFieldConfig(modevType.getTablename());
List<Attr> 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<String> resp = Response.success(xml);
if (StringUtils.isBlank(node.getType())) {
resp.setWarnMsg("该类型还未配置对应的监测类型编码将导致type为空");
resp.setWarnMsg("该类型还未配置对应的类型编码将导致type为空");
}
return resp;
}

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

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

@ -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());
}
}
}

@ -76,12 +76,13 @@ public class I2syncTask {
List<NSensor> 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<I2syncField> fieldList, List<ModevTypePoint> points) throws Exception {
private void syncOneSensor(NSensor sensor, I2syncConfig config,
List<I2syncField> fieldList, List<ModevTypePoint> points) throws Exception {
I2syncRecord record;
List<I2syncRecord> 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);
}
}

@ -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<I2syncField> fieldList, List<Map<String, Object>> dataList) throws Exception {
List<Datanode> 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);
}

Loading…
Cancel
Save