Commit b646432f authored by 刘林's avatar 刘林

fix(equip):解析交换站下发数据,更新指标状态

parent e3b525d3
......@@ -6,6 +6,7 @@ import com.yeejoin.equipmanage.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
......@@ -15,6 +16,7 @@ import java.util.Date;
* @since v2.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wl_equipment_specific_index")
@ApiModel(value = "EquipmentSpecificIndex对象", description = "性能指标参数")
public class EquipmentSpecificIndex extends BaseEntity {
......@@ -126,9 +128,6 @@ public class EquipmentSpecificIndex extends BaseEntity {
@TableField(exist = false)
private String alamReason;
@TableField(exist = false)
private String valueEnum;
@ApiModelProperty(value = "设备CODE")
@TableField(exist = false)
private String equipmentSpecificCode;
......@@ -182,4 +181,26 @@ public class EquipmentSpecificIndex extends BaseEntity {
@TableField(value = "unit")
private String unit;
@ApiModelProperty(value = "信号的索引键key,用于唯一索引信号")
@TableField(value = "index_address")
private String indexAddress;
@ApiModelProperty(value = "品质,0为有效,1为无效")
@TableField(value = "quality")
private String quality;
@ApiModelProperty(value = "测点类型,analog/state")
@TableField(value = "data_type")
private String dataType;
@ApiModelProperty(value = "时间")
@TableField(value = "time_stamp")
private String timeStamp;
/**
* 指标值枚举
*/
@ApiModelProperty(value = "指标值枚举")
@TableField("value_enum")
private String valueEnum;
}
......@@ -124,6 +124,7 @@ public class EquipmentIotMqttReceiveConfig {
list.addAll(ConfigPageTopicEnum.getEnumTopicList()); //大屏数据推送接口订阅
list.add("+/+/property"); // 添加iot車輛裝備數據上報事件监听
list.add("+/+/event"); // 添加iot事件监听
list.add("+/+/transmit"); // 添加交换站事件监听
String[] arr = list.toArray(new String[list.size()]);
adapter = new MqttPahoMessageDrivenChannelAdapter(clientId + "_inbound", mqttPahoClientFactory(), arr);
adapter.setCompletionTimeout(completionTimeout);
......@@ -147,6 +148,8 @@ public class EquipmentIotMqttReceiveConfig {
mqttReceiveService.handlerMqttIncrementMessage(topic, msg);
} else if (dataType.equals("event") && StringUtil.isNotEmpty(msg)) {
mqttEventReceiveService.handlerMqttIncrementMessage(topic, msg);
}else if (dataType.equals("transmit") && StringUtil.isNotEmpty(msg)){
mqttReceiveService.handlerMqttRomaMessage(topic,msg);
}
}
};
......
......@@ -199,6 +199,7 @@ public class EquipmentIndexController {
for (EquipmentSpecificIndex y : indexList) {
y.setEquipmentIndexKey(equipmentIndex.getPerfQuotaDefinitionId());
y.setEquipmentIndexName(equipmentIndex.getPerfQuotaName());
y.setValueEnum(equipmentIndex.getValueEnum());
if (bool.get() && !ObjectUtils.isEmpty(signalClassify)) {
y.setEmergencyLevelColor(signalClassify.getEmergencyLevelColor());
y.setIsAlarm(signalClassify.getIsAlarm());
......
......@@ -113,4 +113,6 @@ public interface EquipmentSpecificIndexMapper extends BaseMapper<EquipmentSpecif
List<Map<String, Object>> getEquipSpecificScrap();
List<EquipmentSpecificIndex> getEquipIndexInIndex(@Param("list") List<String> listIndex);
EquipmentSpecificIndex getEquipmentSpeIndexByIndexAddress(String indexAddress);
}
......@@ -34,4 +34,11 @@ public interface IEquipmentSpecificIndexService extends IService<EquipmentSpecif
* @return 列表
*/
List<EquipmentSpecificIndex> getEquipmentSpeIndexByIndex(List<String> listIndex);
/**
* 根据信号索引查询装备性能指标
* @param indexAddress indexAddress
* @return EquipmentSpecificIndex
*/
EquipmentSpecificIndex getEquipmentSpeIndexByIndexAddress(String indexAddress);
}
......@@ -17,4 +17,11 @@ public interface MqttReceiveService {
* @param message 消息内容
*/
void handlerMqttIncrementMessage(String topic, String message);
/**
* 处理交换站消息数据
* @param topic 主题
* @param message 消息内容
*/
void handlerMqttRomaMessage(String topic, String message);
}
......@@ -28,4 +28,9 @@ public class EquipmentSpecificIndexServiceImpl extends ServiceImpl<EquipmentSpec
public List<EquipmentSpecificIndex> getEquipmentSpeIndexByIndex(List<String> listIndex) {
return this.baseMapper.getEquipIndexInIndex(listIndex);
}
@Override
public EquipmentSpecificIndex getEquipmentSpeIndexByIndexAddress(String indexAddress) {
return this.baseMapper.getEquipmentSpeIndexByIndexAddress(indexAddress);
}
}
......@@ -1598,6 +1598,7 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
equipmentSpecificIndex.setEmergencyLevel(index.getEmergencyLevel());
equipmentSpecificIndex.setEmergencyLevelDescribe(index.getEmergencyLevelDescribe());
equipmentSpecificIndex.setUnit(index.getUnit());
equipmentSpecificIndex.setValueEnum(index.getValueEnum());
equipmentSpecificIndices.add(equipmentSpecificIndex);
});
}
......
......@@ -843,4 +843,65 @@
esi.emergency_level_describe = ( SELECT emergency_level_describe FROM wl_equipment_index wei WHERE esi.equipment_index_id = wei.id );
</sql>
</changeSet>
<changeSet author="LiuLin" id="1686212667">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_specific_index" columnName="index_address"/>
</not>
</preConditions>
<comment>新增属性字段 index_address</comment>
<sql>
alter table `wl_equipment_specific_index` add column `index_address` varchar(50) COMMENT '信号的索引键key,用于唯一索引信号';
</sql>
</changeSet>
<changeSet author="LiuLin" id="1686212667-1">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_specific_index" columnName="quality"/>
</not>
</preConditions>
<comment>新增属性字段 quality</comment>
<sql>
alter table `wl_equipment_specific_index` add column `quality` tinyint(4) DEFAULT NULL COMMENT '品质,0为有效,1为无效';
</sql>
</changeSet>
<changeSet author="LiuLin" id="1686212667-2">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_specific_index" columnName="data_type"/>
</not>
</preConditions>
<comment>新增属性字段 data_type</comment>
<sql>
alter table `wl_equipment_specific_index` add column `data_type` varchar(10) DEFAULT NULL COMMENT '测点类型,analog/state';
</sql>
</changeSet>
<changeSet author="LiuLin" id="1686212667-3">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_specific_index" columnName="time_stamp"/>
</not>
</preConditions>
<comment>新增属性字段 time_stamp</comment>
<sql>
alter table `wl_equipment_specific_index` add column `time_stamp` varchar(32) COMMENT '时间';
</sql>
</changeSet>
<changeSet author="LiuLin" id="1686564561">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_specific_index" columnName="value_enum"/>
</not>
</preConditions>
<comment>wl_equipment_specific_index add `value_enum`</comment>
<sql>
ALTER TABLE `wl_equipment_specific_index` ADD COLUMN `value_enum` text NULL COMMENT '指标值枚举' AFTER `value_label`;
</sql>
</changeSet>
</databaseChangeLog>
\ No newline at end of file
......@@ -515,4 +515,49 @@
</if>
</where>
</select>
<!-- 根据信号索引查询装备性能指标 -->
<select id="getEquipmentSpeIndexByIndexAddress"
resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex">
SELECT wesi.id AS id,
wei.name_key AS nameKey,
wesi.value AS value,
wesi.equipment_specific_id AS equipmentSpecificId,
wesi.equipment_index_id AS equipmentIndexId,
wesi.equipment_index_name AS equipmentIndexName,
wesi.equipment_index_key AS equipmentIndexKey,
wesi.value_label AS valueLabel,
wei.type_code AS typeCode,
wei.type_name AS typeName,
wei.name AS indexName,
wei.unit AS indexUnitName,
wes.org_code AS orgCode,
ed.`name` AS equipmentSpecificName,
ed.equipment_name AS equipmentName,
wes.iot_code AS iotCode,
wes.code AS specificCode,
wei.`name` AS equipmentSpecificIndexName,
wei.`value_enum` AS valueEnum,
wei.is_trend AS isTrend,
wes.qr_code AS qrCode,
wesi.update_date AS updateDate,
ed.code AS equipmentCode,
ed.equipment_id AS equipmentId,
ed.id AS equipmentDetailId,
wes.code as equipmentSpecificCode,
wes.system_id as systemId,
wesi.is_alarm as isAlarm,
wesi.emergency_level_color as emergencyLevelColor,
wesi.emergency_level as emergencyLevel,
wesi.emergency_level_describe as emergencyLevelDescribe,
wes.biz_org_name AS bizOrgName,
wes.biz_org_code AS bizOrgCode
FROM wl_equipment_specific_index AS wesi
LEFT JOIN wl_equipment_specific AS wes ON wes.id = wesi.equipment_specific_id
LEFT JOIN wl_equipment_detail ed ON ed.id = wes.equipment_detail_id
LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id
WHERE
wesi.index_address = #{indexAddress}
AND wei.is_iot = true
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment