Commit 815440f3 authored by tangwei's avatar tangwei

Merge branch 'developer' into develop_ccs

# Conflicts: # amos-boot-module/amos-boot-module-api/amos-boot-module-equip-api/src/main/java/com/yeejoin/equipmanage/common/entity/EquipmentIndex.java # amos-boot-module/amos-boot-module-api/amos-boot-module-equip-api/src/main/java/com/yeejoin/equipmanage/common/entity/vo/EquipmentIndexVO.java # amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/mapper/EquipmentSpecificMapper.java # amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/FireFightingSystemServiceImpl.java # amos-boot-system-equip/src/main/resources/changelog/wl-3.0.1.xml # amos-boot-system-equip/src/main/resources/mapper/EquipmentIndexMapper.xml # amos-boot-system-equip/src/main/resources/mapper/EquipmentSpecificMapper.xml
parents 1e7468e3 5b9215af
...@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName; ...@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.equipmanage.common.entity.publics.BaseEntity; import com.yeejoin.equipmanage.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
...@@ -51,6 +52,32 @@ public class CarProperty extends BaseEntity { ...@@ -51,6 +52,32 @@ public class CarProperty extends BaseEntity {
*/ */
@TableField(value = "equipment_index_key") @TableField(value = "equipment_index_key")
private String equipmentIndexKey; private String equipmentIndexKey;
/**
* 颜色
*/
@TableField(value = "emergency_level_color")
private String emergencyLevelColor;
/**
* 是否告警:0-否;1-是
*/
@TableField(value = "is_alarm")
private Integer isAlarm;
/**
* 紧急程度枚举(1:紧急,2:严重,3:轻微,4:正常,5:无效,6:备用,7:其他)
*/
@TableField(value = "emergency_level")
private String emergencyLevel;
/**
* 紧急程度描述
*/
@TableField(value = "emergency_level_describe")
private String emergencyLevelDescribe;
@TableField(exist = false) @TableField(exist = false)
private String unitName; private String unitName;
...@@ -58,7 +85,12 @@ public class CarProperty extends BaseEntity { ...@@ -58,7 +85,12 @@ public class CarProperty extends BaseEntity {
private String perfQuotaName; private String perfQuotaName;
@TableField(exist = false) @TableField(exist = false)
private String groupName; private String groupName;
@TableField(exist = false) @TableField(exist = false)
private String nameKey; private String nameKey;
@TableField(exist = false)
private String iotCode;
} }
...@@ -83,4 +83,7 @@ public class EquipmentAlarmReportDay extends BaseEntity { ...@@ -83,4 +83,7 @@ public class EquipmentAlarmReportDay extends BaseEntity {
@ApiModelProperty(value = "指标最新值") @ApiModelProperty(value = "指标最新值")
private String value; private String value;
@ApiModelProperty(value = "是否告警:0-否;1-是")
private Integer isAlarm;
} }
...@@ -98,7 +98,6 @@ public class EquipmentIndex extends BaseEntity { ...@@ -98,7 +98,6 @@ public class EquipmentIndex extends BaseEntity {
@TableField(value = "perf_value") @TableField(value = "perf_value")
private String perfValue; private String perfValue;
/** /**
* 性能指标(临时) * 性能指标(临时)
*/ */
...@@ -111,4 +110,17 @@ public class EquipmentIndex extends BaseEntity { ...@@ -111,4 +110,17 @@ public class EquipmentIndex extends BaseEntity {
*/ */
@TableField(value = "is_trend") @TableField(value = "is_trend")
private Boolean isTrend; private Boolean isTrend;
@TableField(value = "emergency_level_color")
private String emergencyLevelColor;
@TableField(value = "is_alarm")
private Integer isAlarm;
@TableField(value = "emergency_level")
private String emergencyLevel;
@TableField(value = "emergency_level_describe")
private String emergencyLevelDescribe;
} }
...@@ -146,7 +146,7 @@ public class EquipmentSpecificAlarm extends BaseEntity { ...@@ -146,7 +146,7 @@ public class EquipmentSpecificAlarm extends BaseEntity {
@ApiModelProperty(value = "设备编码") @ApiModelProperty(value = "设备编码")
@TableField(exist = false) @TableField(exist = false)
private String code; private String equipmentSpecificCode;
@ApiModelProperty(value = "消防系统名称",notes = "告警详情时使用") @ApiModelProperty(value = "消防系统名称",notes = "告警详情时使用")
@TableField(exist = false) @TableField(exist = false)
...@@ -180,4 +180,22 @@ public class EquipmentSpecificAlarm extends BaseEntity { ...@@ -180,4 +180,22 @@ public class EquipmentSpecificAlarm extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private String buildId; private String buildId;
/**
* 颜色
*/
@TableField(value = "emergency_level_color")
private String emergencyLevelColor;
/**
* 紧急程度枚举(1:紧急,2:严重,3:轻微,4:正常,5:无效,6:备用,7:其他)
*/
@TableField(value = "emergency_level")
private String emergencyLevel;
/**
* 紧急程度描述
*/
@TableField(value = "emergency_level_describe")
private String emergencyLevelDescribe;
} }
...@@ -188,4 +188,22 @@ public class EquipmentSpecificAlarmLog extends BaseEntity { ...@@ -188,4 +188,22 @@ public class EquipmentSpecificAlarmLog extends BaseEntity {
@ApiModelProperty(value = "消除状态") @ApiModelProperty(value = "消除状态")
@TableField(exist = false) @TableField(exist = false)
private String cleanStatus; private String cleanStatus;
/**
* 颜色
*/
@TableField(value = "emergency_level_color")
private String emergencyLevelColor;
/**
* 紧急程度枚举(1:紧急,2:严重,3:轻微,4:正常,5:无效,6:备用,7:其他)
*/
@TableField(value = "emergency_level")
private String emergencyLevel;
/**
* 紧急程度描述
*/
@TableField(value = "emergency_level_describe")
private String emergencyLevelDescribe;
} }
...@@ -50,7 +50,31 @@ public class EquipmentSpecificIndex extends BaseEntity { ...@@ -50,7 +50,31 @@ public class EquipmentSpecificIndex extends BaseEntity {
@ApiModelProperty(value = "指标key(冗余字段)") @ApiModelProperty(value = "指标key(冗余字段)")
@TableField("equipment_index_key") @TableField("equipment_index_key")
private String equipmentIndexKey; private String equipmentIndexKey;
/**
* 颜色
*/
@TableField(value = "emergency_level_color")
private String emergencyLevelColor;
/**
* 是否告警:0-否;1-是
*/
@TableField(value = "is_alarm")
private Integer isAlarm;
/**
* 紧急程度枚举(1:紧急,2:严重,3:轻微,4:正常,5:无效,6:备用,7:其他)
*/
@TableField(value = "emergency_level")
private String emergencyLevel;
/**
* 紧急程度描述
*/
@TableField(value = "emergency_level_describe")
private String emergencyLevelDescribe;
@TableField(exist = false) @TableField(exist = false)
private String nameKey; private String nameKey;
...@@ -109,4 +133,14 @@ public class EquipmentSpecificIndex extends BaseEntity { ...@@ -109,4 +133,14 @@ public class EquipmentSpecificIndex extends BaseEntity {
@ApiModelProperty(value = "设备所属系统ids") @ApiModelProperty(value = "设备所属系统ids")
@TableField(exist = false) @TableField(exist = false)
private String systemId; private String systemId;
@ApiModelProperty(value = "详细位置")
@TableField(exist = false)
private String location;
@ApiModelProperty(value = "所属建筑id")
@TableField(exist = false)
private String buildId;
} }
package com.yeejoin.equipmanage.common.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.equipmanage.common.entity.publics.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 信号分类量测枚举表
*
* @author system_generator
* @date 2022-02-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("wl_signal_classify")
public class SignalClassify extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableField("id")
private Long id;
/**
* 量测枚举key
*/
@TableField("type_code")
private String typeCode;
/**
* 类型名称
*/
@TableField("type_name")
private String typeName;
/**
* 十六进制颜色
*/
@TableField("emergency_level_color")
private String emergencyLevelColor;
/**
* 是否删除:0-否;1-是
*/
@TableField("is_alarm")
private Integer isAlarm;
/**
* 紧急程度枚举(1:紧急,2:严重,3:轻微,4:正常,5:无效,6:备用,7:其他)
*/
@TableField("emergency_level")
private String emergencyLevel;
/**
* 紧急程度描述
*/
@TableField("emergency_level_describe")
private String emergencyLevelDescribe;
}
...@@ -65,4 +65,8 @@ public class EquipmentIndexVO { ...@@ -65,4 +65,8 @@ public class EquipmentIndexVO {
@ApiModelProperty(value = "是否支持趋势查看") @ApiModelProperty(value = "是否支持趋势查看")
private Integer isTrend; private Integer isTrend;
@ApiModelProperty(value = "指标枚举")
private String valueEnum;
} }
...@@ -54,4 +54,10 @@ public class EquipmentStateVo { ...@@ -54,4 +54,10 @@ public class EquipmentStateVo {
*/ */
private List<SpeIndexVo> speindexList; private List<SpeIndexVo> speindexList;
/**
* 紧急程度颜色
*/
private String color;
} }
...@@ -16,7 +16,7 @@ public enum CarForGisEnum { ...@@ -16,7 +16,7 @@ public enum CarForGisEnum {
DL("电量","FireCar_Power"), DL("电量","FireCar_Power"),
DDHX("对地航向","FireCar_CourseOverGround"), DDHX("对地航向","FireCar_CourseOverGround"),
SJ("时间","time"), SJ("时间","time"),
QT("启停","state"); QT("启停","FireCar_Start");
private String describe; private String describe;
......
...@@ -10,7 +10,7 @@ package com.yeejoin.equipmanage.common.enums; ...@@ -10,7 +10,7 @@ package com.yeejoin.equipmanage.common.enums;
*/ */
public enum EquipmentIndexLabelsEnum { public enum EquipmentIndexLabelsEnum {
labels("labels", "装备指标编码"); labels("FireCar_Labels", "装备指标编码");
public final String name; public final String name;
......
...@@ -6,17 +6,19 @@ import com.yeejoin.equipmanage.common.enums.EquipmentRiskTypeEnum; ...@@ -6,17 +6,19 @@ import com.yeejoin.equipmanage.common.enums.EquipmentRiskTypeEnum;
import com.yeejoin.equipmanage.common.enums.EquipmentStateEnum; import com.yeejoin.equipmanage.common.enums.EquipmentStateEnum;
import com.yeejoin.equipmanage.common.enums.TrueOrFalseEnum; import com.yeejoin.equipmanage.common.enums.TrueOrFalseEnum;
import com.yeejoin.equipmanage.common.vo.AlarmDataVO; import com.yeejoin.equipmanage.common.vo.AlarmDataVO;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.validation.Validation;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* @author keyong
* @title: EquipmentStateUtil * @title: EquipmentStateUtil
* <pre> * <pre>
* @description: 通过性能指标判断设备状态(火灾报警 > 故障告警 > 屏蔽 > 运行状态) * @description: 通过性能指标判断设备状态(火灾报警 > 故障告警 > 屏蔽 > 运行状态)
...@@ -265,15 +267,9 @@ public class EquipmentStateUtil { ...@@ -265,15 +267,9 @@ public class EquipmentStateUtil {
} }
public static String judgeEquipState(EquipmentSpecificIndex index) { public static String judgeEquipState(EquipmentSpecificIndex index) {
String status = EquipmentStateEnum.ZC.getStatus(); if (TrueOrFalseEnum.real.value.toUpperCase().equals(String.valueOf(index.getValue()).toUpperCase())) {
String keyValue = String.valueOf(index.getValue()); return index.getEmergencyLevelColor();
for (EquipmentRiskTypeEnum enums : EquipmentRiskTypeEnum.values()) {
if (enums.getCode().equals(index.getTypeCode()) && TrueOrFalseEnum.real.value.equals(keyValue)) {
status = enums.getStateCode();
break;
}
} }
log.info("此装备的状态为: " + status + "(屏蔽-5, 火灾告警-4, 故障-3, 正常-2, 挂起-1)"); return "";
return status;
} }
} }
...@@ -19,4 +19,16 @@ public class SpeIndexVo { ...@@ -19,4 +19,16 @@ public class SpeIndexVo {
private String typeCode = ""; private String typeCode = "";
private Long equipmentSpecificId; private Long equipmentSpecificId;
private String color = "";
private Integer isAlarm = 0;
private String emergencyLevel = "";
private String emergencyLevelDescribe = "";
private String indexValue;
private String indexName;
} }
package com.yeejoin.equipmanage.controller; package com.yeejoin.equipmanage.controller;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.mapper.SignalClassifyMapper;
import com.yeejoin.equipmanage.service.*;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -15,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -15,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
...@@ -23,15 +31,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -23,15 +31,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence; import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.equipmanage.common.entity.Equipment;
import com.yeejoin.equipmanage.common.entity.EquipmentIndex;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.dto.PerfQuotaIotDTO; import com.yeejoin.equipmanage.common.entity.dto.PerfQuotaIotDTO;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentIndexVO; import com.yeejoin.equipmanage.common.entity.vo.EquipmentIndexVO;
import com.yeejoin.equipmanage.service.ICarPropertyService;
import com.yeejoin.equipmanage.service.IEquipmentIndexService;
import com.yeejoin.equipmanage.service.IEquipmentService;
import com.yeejoin.equipmanage.service.IEquipmentSpecificIndexSerivce;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -58,6 +59,10 @@ public class EquipmentIndexController { ...@@ -58,6 +59,10 @@ public class EquipmentIndexController {
ICarPropertyService carPropertyService; ICarPropertyService carPropertyService;
@Autowired @Autowired
private Sequence sequence; private Sequence sequence;
@Autowired
IEquipmentDetailService iEquipmentDetailService;
@Autowired
SignalClassifyMapper signalClassifyMapper;
/** /**
* 新增消防装备/消防车指标 * 新增消防装备/消防车指标
...@@ -101,7 +106,6 @@ public class EquipmentIndexController { ...@@ -101,7 +106,6 @@ public class EquipmentIndexController {
return true; return true;
} }
/** /**
* 修改消防装备/消防车指标 * 修改消防装备/消防车指标
* *
...@@ -114,6 +118,35 @@ public class EquipmentIndexController { ...@@ -114,6 +118,35 @@ public class EquipmentIndexController {
if (equipmentIndex.getIsImportentParameter()) { if (equipmentIndex.getIsImportentParameter()) {
//如果不是物联指标项,清空物联指标项信息 //如果不是物联指标项,清空物联指标项信息
if(equipmentIndex.getIsIot()==false){ if(equipmentIndex.getIsIot()==false){
QueryWrapper<EquipmentDetail> equipmentDetailQueryWrapper = new QueryWrapper<>();
equipmentDetailQueryWrapper.eq("equipment_id", equipmentIndex.getEquipmentId());
List<EquipmentDetail> equipDetailList = iEquipmentDetailService.list(equipmentDetailQueryWrapper);
if (ObjectUtils.isEmpty(equipDetailList)) {
LambdaUpdateWrapper<CarProperty> carWrapper = new LambdaUpdateWrapper<>();
carWrapper.eq(CarProperty::getEquipmentIndexId, equipmentIndex.getId());
List<CarProperty> list = carPropertyService.list(carWrapper);
// 因为是非物联指标信息,所以此处手动定义了默认值(color:#49AA19[绿色];isAlarm:0;alarmDescribe:否;emergencyLevel:4;emergencyLevelDescribe:正常)
list.forEach(x -> {
x.setEmergencyLevelColor("#49AA19");
x.setIsAlarm(0);
x.setEmergencyLevel("4");
x.setEmergencyLevelDescribe("正常");
});
carPropertyService.updateBatchById(list);
} else {
LambdaUpdateWrapper<EquipmentSpecificIndex> equipWrapper = new LambdaUpdateWrapper<>();
equipWrapper.eq(EquipmentSpecificIndex::getEquipmentIndexId, equipmentIndex.getId());
List<EquipmentSpecificIndex> indexList = equipmentSpecificIndexSerivce.list(equipWrapper);
if (!ObjectUtils.isEmpty(indexList)) {
indexList.forEach(y -> {
y.setEmergencyLevelColor("#49AA19");
y.setIsAlarm(0);
y.setEmergencyLevel("4");
y.setEmergencyLevelDescribe("正常");
});
equipmentSpecificIndexSerivce.updateBatchById(indexList);
}
}
LambdaUpdateWrapper<EquipmentIndex> equipmentIndexLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<EquipmentIndex> equipmentIndexLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
equipmentIndexLambdaUpdateWrapper.eq(EquipmentIndex::getId,equipmentIndex.getId()); equipmentIndexLambdaUpdateWrapper.eq(EquipmentIndex::getId,equipmentIndex.getId());
equipmentIndexLambdaUpdateWrapper.set(EquipmentIndex::getEquipmentId,equipmentIndex.getEquipmentId()); equipmentIndexLambdaUpdateWrapper.set(EquipmentIndex::getEquipmentId,equipmentIndex.getEquipmentId());
...@@ -129,6 +162,55 @@ public class EquipmentIndexController { ...@@ -129,6 +162,55 @@ public class EquipmentIndexController {
equipmentIndexLambdaUpdateWrapper.set(EquipmentIndex::getPerfValue,equipmentIndex.getPerfValue()); equipmentIndexLambdaUpdateWrapper.set(EquipmentIndex::getPerfValue,equipmentIndex.getPerfValue());
return equipmentIndexService.update(equipmentIndexLambdaUpdateWrapper); return equipmentIndexService.update(equipmentIndexLambdaUpdateWrapper);
}else{ }else{
AtomicBoolean bool = new AtomicBoolean(true);
if (ValidationUtil.isEmpty(equipmentIndex.getTypeCode())) {
bool.set(false);
}
SignalClassify signalClassify = null;
if (bool.get()) {
LambdaQueryWrapper<SignalClassify> queryWrapper = new LambdaQueryWrapper();
queryWrapper.inSql(SignalClassify::getTypeCode,
"SELECT type_code FROM wl_signal_classify WHERE UPPER(type_code) ='" + equipmentIndex.getTypeCode().toUpperCase() +"'");
signalClassify = signalClassifyMapper.selectOne(queryWrapper);
}
QueryWrapper<EquipmentDetail> equipmentDetailQueryWrapper = new QueryWrapper<>();
equipmentDetailQueryWrapper.eq("equipment_id", equipmentIndex.getEquipmentId());
List<EquipmentDetail> equipDetailList = iEquipmentDetailService.list(equipmentDetailQueryWrapper);
if (ObjectUtils.isEmpty(equipDetailList)) {
LambdaUpdateWrapper<CarProperty> carWrapper = new LambdaUpdateWrapper<>();
carWrapper.eq(CarProperty::getEquipmentIndexId, equipmentIndex.getId());
List<CarProperty> list = carPropertyService.list(carWrapper);
if (!ObjectUtils.isEmpty(list)) {
for (CarProperty x : list) {
x.setEquipmentIndexKey(equipmentIndex.getPerfQuotaDefinitionId());
x.setEquipmentIndexName(equipmentIndex.getPerfQuotaName());
if (bool.get()) {
x.setEmergencyLevelColor(signalClassify.getEmergencyLevelColor());
x.setIsAlarm(signalClassify.getIsAlarm());
x.setEmergencyLevel(signalClassify.getEmergencyLevel());
x.setEmergencyLevelDescribe(signalClassify.getEmergencyLevelDescribe());
}
}
carPropertyService.updateBatchById(list);
}
} else {
LambdaUpdateWrapper<EquipmentSpecificIndex> equipWrapper = new LambdaUpdateWrapper<>();
equipWrapper.eq(EquipmentSpecificIndex::getEquipmentIndexId, equipmentIndex.getId());
List<EquipmentSpecificIndex> indexList = equipmentSpecificIndexSerivce.list(equipWrapper);
if (!ObjectUtils.isEmpty(indexList)) {
for (EquipmentSpecificIndex y : indexList) {
y.setEquipmentIndexKey(equipmentIndex.getPerfQuotaDefinitionId());
y.setEquipmentIndexName(equipmentIndex.getPerfQuotaName());
if (bool.get()) {
y.setEmergencyLevelColor(signalClassify.getEmergencyLevelColor());
y.setIsAlarm(signalClassify.getIsAlarm());
y.setEmergencyLevel(signalClassify.getEmergencyLevel());
y.setEmergencyLevelDescribe(signalClassify.getEmergencyLevelDescribe());
}
}
equipmentSpecificIndexSerivce.updateBatchById(indexList);
}
}
return equipmentIndexService.updateById(equipmentIndex); return equipmentIndexService.updateById(equipmentIndex);
} }
} else { } else {
......
package com.yeejoin.equipmanage.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.entity.SignalClassify;
import com.yeejoin.equipmanage.service.ISignalClassifyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* 信号分类量测枚举表
*
* @author system_generator
* @date 2022-02-18
*/
@RestController
@Api(tags = "信号分类量测枚举表Api")
@RequestMapping(value = "/signal/classify", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class SignalClassifyController extends AbstractBaseController {
@Autowired
ISignalClassifyService iSignalClassifyService;
/**
* 新增信号分类量测枚举表
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增信号分类量测枚举表", notes = "新增信号分类量测枚举表")
public ResponseModel<SignalClassify> save(@RequestBody SignalClassify model) {
boolean bool = iSignalClassifyService.save(model);
return ResponseHelper.buildResponse(model);
}
/**
* 根据id更新
*
* @param id 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{id}")
@ApiOperation(httpMethod = "PUT", value = "根据id更新信号分类量测枚举表", notes = "根据id更新信号分类量测枚举表")
public ResponseModel<SignalClassify> updateByidWlSignalClassify(@RequestBody SignalClassify model, @PathVariable(value = "id") Long id) {
model.setId(id);
boolean bool = iSignalClassifyService.updateById(model);
return ResponseHelper.buildResponse(model);
}
/**
* 根据id删除
*
* @param id 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{id}")
@ApiOperation(httpMethod = "DELETE", value = "根据id删除信号分类量测枚举表", notes = "根据id删除信号分类量测枚举表")
public ResponseModel<Boolean> deleteByid(HttpServletRequest request, @PathVariable(value = "id") Long id){
return ResponseHelper.buildResponse(iSignalClassifyService.removeById(id));
}
/**
* 根据id查询
*
* @param id 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{id}")
@ApiOperation(httpMethod = "GET",value = "根据id查询单个信号分类量测枚举表", notes = "根据id查询单个信号分类量测枚举表")
public ResponseModel<SignalClassify> selectOne(@PathVariable Long id) {
return ResponseHelper.buildResponse(iSignalClassifyService.getById(id));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "信号分类量测枚举表列表全部数据查询", notes = "信号分类量测枚举表列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<SignalClassify>> selectForList() {
return ResponseHelper.buildResponse(iSignalClassifyService.query().list());
}
}
package com.yeejoin.equipmanage.mapper; package com.yeejoin.equipmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentFireAlarm;
import com.yeejoin.equipmanage.common.datasync.vo.AppAlarmExtVo; import com.yeejoin.equipmanage.common.datasync.vo.AppAlarmExtVo;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarm; import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarm;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog; import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog;
...@@ -28,4 +29,7 @@ public interface EquipmentSpecificAlarmLogMapper extends BaseMapper<EquipmentSpe ...@@ -28,4 +29,7 @@ public interface EquipmentSpecificAlarmLogMapper extends BaseMapper<EquipmentSpe
List<AppAlarmExtVo> findByIdListNoBuildId(@Param("list") List<Long> idBNullList); List<AppAlarmExtVo> findByIdListNoBuildId(@Param("list") List<Long> idBNullList);
List<EquipmentSpecificAlarmLog> getIsConfirmByAlarmId(@Param("equipmentSpecificAlarmId") Long equipmentSpecificAlarmId, @Param("isConfirm") String isConfirm); List<EquipmentSpecificAlarmLog> getIsConfirmByAlarmId(@Param("equipmentSpecificAlarmId") Long equipmentSpecificAlarmId, @Param("isConfirm") String isConfirm);
List<FireEquipmentFireAlarm> getFireEquipAlarmLogDetailsById(@Param("list") List<Long> ids);
} }
...@@ -106,7 +106,7 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> { ...@@ -106,7 +106,7 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> {
IPage<SourceNameByEquipSpeIdVO> getSourceNameList(IPage page, Long warehouseStructureId, Long sourceId, String equipmentName, String equipmentCode); IPage<SourceNameByEquipSpeIdVO> getSourceNameList(IPage page, Long warehouseStructureId, Long sourceId, String equipmentName, String equipmentCode);
FireEquipment getEquipSpecificDetail(EquipmentSpecific equipmentSpecific); FireEquipment getEquipSpecificDetail(Long id);
List<EquipmentCategory> getEquipSpeTypeByQrcode(@Param("qrCode") String qrCode); List<EquipmentCategory> getEquipSpeTypeByQrcode(@Param("qrCode") String qrCode);
...@@ -205,4 +205,6 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> { ...@@ -205,4 +205,6 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> {
String getEquipmentBySpecificId(@Param("specificId") Long specificId); String getEquipmentBySpecificId(@Param("specificId") Long specificId);
List<EquiplistSpecificBySystemVO> getListByWarehouseStructureId(Long floorId); List<EquiplistSpecificBySystemVO> getListByWarehouseStructureId(Long floorId);
List<Map<String,String>> getStationInfo();
} }
package com.yeejoin.equipmanage.mapper;
import com.yeejoin.equipmanage.common.entity.SignalClassify;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 信号分类量测枚举表 Mapper 接口
*
* @author system_generator
* @date 2022-02-18
*/
public interface SignalClassifyMapper extends BaseMapper<SignalClassify> {
}
package com.yeejoin.equipmanage.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.equipmanage.common.entity.SignalClassify;
import java.util.List;
/**
* 信号分类量测枚举表接口类
*
* @author system_generator
* @date 2022-02-18
*/
public interface ISignalClassifyService extends IService<SignalClassify> {
}
package com.yeejoin.equipmanage.service.impl; package com.yeejoin.equipmanage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.equipmanage.common.entity.*; import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentIndexVO; import com.yeejoin.equipmanage.common.entity.vo.EquipmentIndexVO;
import com.yeejoin.equipmanage.mapper.EquipmentIndexMapper; import com.yeejoin.equipmanage.mapper.EquipmentIndexMapper;
import com.yeejoin.equipmanage.mapper.SignalClassifyMapper;
import com.yeejoin.equipmanage.service.*; import com.yeejoin.equipmanage.service.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.validation.Validation;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
@Service @Service
public class EquipmentIndexImpl extends ServiceImpl<EquipmentIndexMapper, EquipmentIndex> implements IEquipmentIndexService { public class EquipmentIndexImpl extends ServiceImpl<EquipmentIndexMapper, EquipmentIndex> implements IEquipmentIndexService {
...@@ -37,6 +42,9 @@ public class EquipmentIndexImpl extends ServiceImpl<EquipmentIndexMapper, Equipm ...@@ -37,6 +42,9 @@ public class EquipmentIndexImpl extends ServiceImpl<EquipmentIndexMapper, Equipm
@Autowired @Autowired
IEquipmentSpecificIndexSerivce iEquipmentSpecificIndexSerivce; IEquipmentSpecificIndexSerivce iEquipmentSpecificIndexSerivce;
@Autowired
SignalClassifyMapper signalClassifyMapper;
@Override @Override
public IPage<EquipmentIndexVO> getPerfQutoaPage(IPage<EquipmentIndex> page, Long id, String groupName) { public IPage<EquipmentIndexVO> getPerfQutoaPage(IPage<EquipmentIndex> page, Long id, String groupName) {
return this.baseMapper.getPage(page, id, groupName); return this.baseMapper.getPage(page, id, groupName);
...@@ -90,7 +98,18 @@ public class EquipmentIndexImpl extends ServiceImpl<EquipmentIndexMapper, Equipm ...@@ -90,7 +98,18 @@ public class EquipmentIndexImpl extends ServiceImpl<EquipmentIndexMapper, Equipm
@Override @Override
public boolean savePerfQuota(EquipmentIndex equipmentIndex) { public boolean savePerfQuota(EquipmentIndex equipmentIndex) {
AtomicBoolean bool = new AtomicBoolean(true);
if (ValidationUtil.isEmpty(equipmentIndex.getTypeCode())) {
bool.set(false);
}
int i = this.baseMapper.insert(equipmentIndex); int i = this.baseMapper.insert(equipmentIndex);
SignalClassify signalClassify = null;
if (bool.get()) {
LambdaQueryWrapper<SignalClassify> queryWrapper = new LambdaQueryWrapper();
queryWrapper.inSql(SignalClassify::getTypeCode,
"SELECT type_code FROM wl_signal_classify WHERE UPPER(type_code) ='" + equipmentIndex.getTypeCode().toUpperCase() +"'");
signalClassify = signalClassifyMapper.selectOne(queryWrapper);
}
QueryWrapper<EquipmentDetail> equipmentDetailQueryWrapper = new QueryWrapper<>(); QueryWrapper<EquipmentDetail> equipmentDetailQueryWrapper = new QueryWrapper<>();
equipmentDetailQueryWrapper.eq("equipment_id", equipmentIndex.getEquipmentId()); equipmentDetailQueryWrapper.eq("equipment_id", equipmentIndex.getEquipmentId());
List<EquipmentDetail> equipDetailList = iEquipmentDetailService.list(equipmentDetailQueryWrapper); List<EquipmentDetail> equipDetailList = iEquipmentDetailService.list(equipmentDetailQueryWrapper);
...@@ -100,14 +119,20 @@ public class EquipmentIndexImpl extends ServiceImpl<EquipmentIndexMapper, Equipm ...@@ -100,14 +119,20 @@ public class EquipmentIndexImpl extends ServiceImpl<EquipmentIndexMapper, Equipm
List<Car> carList = iCarService.list(carQueryWrapper); List<Car> carList = iCarService.list(carQueryWrapper);
if (!ObjectUtils.isEmpty(carList)) { if (!ObjectUtils.isEmpty(carList)) {
List<CarProperty> carProperties = new ArrayList<>(); List<CarProperty> carProperties = new ArrayList<>();
carList.forEach(car -> { for (Car car : carList) {
CarProperty carProperty = new CarProperty(); CarProperty carProperty = new CarProperty();
carProperty.setCarId(car.getId()); carProperty.setCarId(car.getId());
carProperty.setEquipmentIndexId(equipmentIndex.getId()); carProperty.setEquipmentIndexId(equipmentIndex.getId());
carProperty.setEquipmentIndexKey(equipmentIndex.getPerfQuotaName()); carProperty.setEquipmentIndexKey(equipmentIndex.getPerfQuotaName());
carProperty.setEquipmentIndexName(equipmentIndex.getPerfQuotaDefinitionId()); carProperty.setEquipmentIndexName(equipmentIndex.getPerfQuotaDefinitionId());
if (bool.get()) {
carProperty.setEmergencyLevelColor(signalClassify.getEmergencyLevelColor());
carProperty.setIsAlarm(signalClassify.getIsAlarm());
carProperty.setEmergencyLevel(signalClassify.getEmergencyLevel());
carProperty.setEmergencyLevelDescribe(signalClassify.getEmergencyLevelDescribe());
}
carProperties.add(carProperty); carProperties.add(carProperty);
}); }
iCarPropertyService.saveBatch(carProperties); iCarPropertyService.saveBatch(carProperties);
} }
} else { } else {
...@@ -120,15 +145,21 @@ public class EquipmentIndexImpl extends ServiceImpl<EquipmentIndexMapper, Equipm ...@@ -120,15 +145,21 @@ public class EquipmentIndexImpl extends ServiceImpl<EquipmentIndexMapper, Equipm
List<EquipmentSpecific> equipmentSpecifics = iEquipmentSpecificSerivce.list(equipmentSpecificQueryWrapper); List<EquipmentSpecific> equipmentSpecifics = iEquipmentSpecificSerivce.list(equipmentSpecificQueryWrapper);
if (equipmentSpecifics.size() > 0) { if (equipmentSpecifics.size() > 0) {
List<EquipmentSpecificIndex> equipmentSpecificIndexList = new ArrayList<>(); List<EquipmentSpecificIndex> equipmentSpecificIndexList = new ArrayList<>();
equipmentSpecifics.forEach(y -> { for (EquipmentSpecific y : equipmentSpecifics) {
EquipmentSpecificIndex equipmentSpecificIndex = new EquipmentSpecificIndex(); EquipmentSpecificIndex equipmentSpecificIndex = new EquipmentSpecificIndex();
equipmentSpecificIndex.setEquipmentSpecificId(y.getId()); equipmentSpecificIndex.setEquipmentSpecificId(y.getId());
equipmentSpecificIndex.setEquipmentIndexId(equipmentIndex.getId()); equipmentSpecificIndex.setEquipmentIndexId(equipmentIndex.getId());
equipmentSpecificIndex.setEquipmentIndexKey(equipmentIndex.getPerfQuotaDefinitionId()); equipmentSpecificIndex.setEquipmentIndexKey(equipmentIndex.getPerfQuotaDefinitionId());
equipmentSpecificIndex.setEquipmentIndexName(equipmentIndex.getPerfQuotaName()); equipmentSpecificIndex.setEquipmentIndexName(equipmentIndex.getPerfQuotaName());
equipmentSpecificIndex.setEquipmentSpecialName(y.getName()); equipmentSpecificIndex.setEquipmentSpecialName(y.getName());
if (bool.get()) {
equipmentSpecificIndex.setEmergencyLevelColor(signalClassify.getEmergencyLevelColor());
equipmentSpecificIndex.setIsAlarm(signalClassify.getIsAlarm());
equipmentSpecificIndex.setEmergencyLevel(signalClassify.getEmergencyLevel());
equipmentSpecificIndex.setEmergencyLevelDescribe(signalClassify.getEmergencyLevelDescribe());
}
equipmentSpecificIndexList.add(equipmentSpecificIndex); equipmentSpecificIndexList.add(equipmentSpecificIndex);
}); };
iEquipmentSpecificIndexSerivce.saveBatch(equipmentSpecificIndexList); iEquipmentSpecificIndexSerivce.saveBatch(equipmentSpecificIndexList);
} }
} }
......
...@@ -139,6 +139,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -139,6 +139,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
@Autowired @Autowired
private VideoMapper videoMapper; private VideoMapper videoMapper;
@Autowired
SignalClassifyMapper signalClassifyMapper;
@Value("${systemctl.sync.switch}") @Value("${systemctl.sync.switch}")
private Boolean syncSwitch; private Boolean syncSwitch;
...@@ -1427,7 +1430,7 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -1427,7 +1430,7 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
@Override @Override
public FireEquipment getEquipSpecificDetail(EquipmentSpecific equipmentSpecific) { public FireEquipment getEquipSpecificDetail(EquipmentSpecific equipmentSpecific) {
return equipmentSpecificMapper.getEquipSpecificDetail(equipmentSpecific); return equipmentSpecificMapper.getEquipSpecificDetail(equipmentSpecific.getId());
} }
@Override @Override
...@@ -1466,6 +1469,10 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -1466,6 +1469,10 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
equipmentSpecificIndex.setEquipmentSpecialName(equipName); equipmentSpecificIndex.setEquipmentSpecialName(equipName);
equipmentSpecificIndex.setEquipmentIndexName(index.getPerfQuotaName()); equipmentSpecificIndex.setEquipmentIndexName(index.getPerfQuotaName());
equipmentSpecificIndex.setEquipmentIndexKey(index.getPerfQuotaDefinitionId()); equipmentSpecificIndex.setEquipmentIndexKey(index.getPerfQuotaDefinitionId());
equipmentSpecificIndex.setEmergencyLevelColor(index.getEmergencyLevelColor());
equipmentSpecificIndex.setIsAlarm(index.getIsAlarm());
equipmentSpecificIndex.setEmergencyLevel(index.getEmergencyLevel());
equipmentSpecificIndex.setEmergencyLevelDescribe(index.getEmergencyLevelDescribe());
equipmentSpecificIndices.add(equipmentSpecificIndex); equipmentSpecificIndices.add(equipmentSpecificIndex);
}); });
} }
......
...@@ -48,6 +48,7 @@ import java.net.SocketException; ...@@ -48,6 +48,7 @@ import java.net.SocketException;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSystemMapper, FireFightingSystemEntity> public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSystemMapper, FireFightingSystemEntity>
implements IFireFightingSystemService { implements IFireFightingSystemService {
...@@ -566,9 +567,8 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -566,9 +567,8 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
List<SpeIndexVo> newList = new ArrayList<>(); List<SpeIndexVo> newList = new ArrayList<>();
List<SpeIndexVo> statusList = new ArrayList<>(); List<SpeIndexVo> statusList = new ArrayList<>();
for (SpeIndexVo vo : list) { for (SpeIndexVo vo : list) {
String k = vo.getTypeCode(); int status = vo.getIsAlarm();
if (EquipmentRiskTypeEnum.GZ.getCode().equals(k) || EquipmentRiskTypeEnum.HZGJ.getCode().equals(k) if (AlarmStatusEnum.BJ.getCode() == status) {
|| EquipmentRiskTypeEnum.YXZT.getCode().equals(k) || EquipmentRiskTypeEnum.PB.getCode().equals(k)) {
statusList.add(vo); statusList.add(vo);
} }
newList.add(vo); newList.add(vo);
...@@ -578,8 +578,12 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -578,8 +578,12 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
} }
SpeIndexVo spe = new SpeIndexVo(); SpeIndexVo spe = new SpeIndexVo();
spe.setKey(EquipmentSpeIndexEnum.YXZT.getCode()); spe.setKey(EquipmentSpeIndexEnum.YXZT.getCode());
SpeIndexVo latestVo = statusList.get(0);
org.springframework.beans.BeanUtils.copyProperties(latestVo, spe);
spe.setName("当前状态"); spe.setName("当前状态");
spe.setValue(getStatus(statusList)); Map<String, String> map = getStatus(statusList);
spe.setValue(map.get("runStatus"));
spe.setColor(map.get("color"));
statusList.clear(); statusList.clear();
statusList.add(spe); statusList.add(spe);
statusList.addAll(newList); statusList.addAll(newList);
...@@ -592,25 +596,28 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -592,25 +596,28 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
* @param statusList * @param statusList
* @return * @return
*/ */
private String getStatus(List<SpeIndexVo> statusList) { private Map<String, String> getStatus(List<SpeIndexVo> statusList) {
Map<String, String> map = new HashMap<>();
SpeIndexVo indexVo = statusList.get(0); SpeIndexVo indexVo = statusList.get(0);
if (EquipmentRiskTypeEnum.HZGJ.getCode().equals(indexVo.getTypeCode()) int i = 0;
&& TrueOrFalseEnum.real.value.equals(indexVo.getValue())) { for (SpeIndexVo x : statusList) {
return "报警"; if (StringUtil.isNotEmpty(x.getIndexValue())) {
} i = i + 1;
if (EquipmentRiskTypeEnum.GZ.getCode().equals(indexVo.getTypeCode()) }
&& TrueOrFalseEnum.real.value.equals(indexVo.getValue())) {
return "故障";
} }
if (EquipmentRiskTypeEnum.PB.getCode().equals(indexVo.getTypeCode()) if (0 == i) {
&& TrueOrFalseEnum.real.value.equals(indexVo.getValue())) { map.put("runStatus", "无");
return "屏蔽"; map.put("color", "");
return map;
} }
if (EquipmentRiskTypeEnum.YXZT.getCode().equals(indexVo.getTypeCode()) if (StringUtil.isNotEmpty(indexVo.getIndexValue()) && TrueOrFalseEnum.real.value.toUpperCase().equals(indexVo.getIndexValue().toUpperCase())) {
&& TrueOrFalseEnum.fake.value.equals(indexVo.getValue())) { map.put("runStatus", indexVo.getIndexName());
return "停运"; map.put("color", indexVo.getColor());
return map;
} }
return "运行"; map.put("runStatus", "运行");
map.put("color", "");
return map;
} }
@Override @Override
......
package com.yeejoin.equipmanage.service.impl; package com.yeejoin.equipmanage.service.impl;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
...@@ -11,35 +34,67 @@ import com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentDefectAlarm; ...@@ -11,35 +34,67 @@ import com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentDefectAlarm;
import com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentFaultAlarm; import com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentFaultAlarm;
import com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentFireAlarm; import com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentFireAlarm;
import com.yeejoin.equipmanage.common.dto.TemperatureAlarmDto; import com.yeejoin.equipmanage.common.dto.TemperatureAlarmDto;
import com.yeejoin.equipmanage.common.entity.*; import com.yeejoin.equipmanage.common.entity.CarProperty;
import com.yeejoin.equipmanage.common.entity.EquipmentAlarmReportDay;
import com.yeejoin.equipmanage.common.entity.EquipmentDetail;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarm;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity;
import com.yeejoin.equipmanage.common.entity.publics.BaseEntity; import com.yeejoin.equipmanage.common.entity.publics.BaseEntity;
import com.yeejoin.equipmanage.common.entity.vo.*; import com.yeejoin.equipmanage.common.entity.vo.CarIndexVo;
import com.yeejoin.equipmanage.common.enums.*; import com.yeejoin.equipmanage.common.entity.vo.CarPropertyVo;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentIndexVO;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentSpecificVo;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentStateVo;
import com.yeejoin.equipmanage.common.entity.vo.IndexStateVo;
import com.yeejoin.equipmanage.common.enums.AlarmStatusEnum;
import com.yeejoin.equipmanage.common.enums.AlarmTypeEnum;
import com.yeejoin.equipmanage.common.enums.CarForGisEnum;
import com.yeejoin.equipmanage.common.enums.EquipAndCarEnum;
import com.yeejoin.equipmanage.common.enums.EquipmentIndexLabelsEnum;
import com.yeejoin.equipmanage.common.enums.EquipmentRiskTypeEnum;
import com.yeejoin.equipmanage.common.enums.NBalarmEnum;
import com.yeejoin.equipmanage.common.enums.RiskLeverForAutoSys;
import com.yeejoin.equipmanage.common.enums.TemperatureAlarm;
import com.yeejoin.equipmanage.common.enums.TopicEnum;
import com.yeejoin.equipmanage.common.enums.TrueOrFalseEnum;
import com.yeejoin.equipmanage.common.utils.DateUtils; import com.yeejoin.equipmanage.common.utils.DateUtils;
import com.yeejoin.equipmanage.common.utils.EquipmentStateUtil; import com.yeejoin.equipmanage.common.utils.EquipmentStateUtil;
import com.yeejoin.equipmanage.common.utils.StringUtil; import com.yeejoin.equipmanage.common.utils.StringUtil;
import com.yeejoin.equipmanage.common.vo.*; import com.yeejoin.equipmanage.common.vo.CarIndexGisVo;
import com.yeejoin.equipmanage.common.vo.EquipmentIndexLabelsVo;
import com.yeejoin.equipmanage.common.vo.EquipmentVo;
import com.yeejoin.equipmanage.common.vo.IotDataVO;
import com.yeejoin.equipmanage.common.vo.Token;
import com.yeejoin.equipmanage.common.vo.TopicEntityVo;
import com.yeejoin.equipmanage.fegin.SystemctlFeign; import com.yeejoin.equipmanage.fegin.SystemctlFeign;
import com.yeejoin.equipmanage.mapper.*; import com.yeejoin.equipmanage.mapper.CarMapper;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmLogMapper;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmMapper;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificIndexMapper;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificMapper;
import com.yeejoin.equipmanage.mapper.FireFightingSystemMapper;
import com.yeejoin.equipmanage.remote.RemoteSecurityService; import com.yeejoin.equipmanage.remote.RemoteSecurityService;
import com.yeejoin.equipmanage.service.*; import com.yeejoin.equipmanage.service.ICarPropertyService;
import com.yeejoin.equipmanage.service.IEquipmentAlarmReportDayService;
import com.yeejoin.equipmanage.service.IEquipmentDetailService;
import com.yeejoin.equipmanage.service.IEquipmentIndexService;
import com.yeejoin.equipmanage.service.IEquipmentService;
import com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmLogService;
import com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmService;
import com.yeejoin.equipmanage.service.IEquipmentSpecificIndexSerivce;
import com.yeejoin.equipmanage.service.IEquipmentSpecificIndexService;
import com.yeejoin.equipmanage.service.IEquipmentSpecificSerivce;
import com.yeejoin.equipmanage.service.IFireFightingSystemService;
import com.yeejoin.equipmanage.service.IMainIotMonitorSerivce;
import com.yeejoin.equipmanage.service.ISyncDataService;
import com.yeejoin.equipmanage.service.MqttReceiveService;
import com.yeejoin.equipmanage.service.MqttSendGateway;
import com.yeejoin.equipmanage.utils.BeanUtil; import com.yeejoin.equipmanage.utils.BeanUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.text.SimpleDateFormat; import lombok.extern.slf4j.Slf4j;
import java.util.*;
import java.util.stream.Collectors;
//import net.sf.json.JSONObject; //import net.sf.json.JSONObject;
...@@ -71,6 +126,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -71,6 +126,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
@Autowired @Autowired
EquipmentSpecificAlarmMapper equipmentSpecificAlarmMapper; EquipmentSpecificAlarmMapper equipmentSpecificAlarmMapper;
@Autowired
EquipmentSpecificAlarmLogMapper equipmentSpecificAlarmLogMapper;
@Autowired @Autowired
@Lazy @Lazy
...@@ -165,7 +223,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -165,7 +223,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
staticMap.put("FireCar_Power", "0"); staticMap.put("FireCar_Power", "0");
staticMap.put("FireCar_CourseOverGround", "0"); staticMap.put("FireCar_CourseOverGround", "0");
staticMap.put("time", System.currentTimeMillis()); staticMap.put("time", System.currentTimeMillis());
staticMap.put("state", "false"); staticMap.put("FireCar_Start", "false");
} }
@Override @Override
...@@ -179,7 +237,6 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -179,7 +237,6 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
String iotCode = topic.substring(0, endIndex).replace("/", ""); String iotCode = topic.substring(0, endIndex).replace("/", "");
topicEntity.setIotCode(iotCode); topicEntity.setIotCode(iotCode);
List<EquipmentSpecificVo> eqIotCodeList = iEquipmentSpecificSerivce.getEquipAndCarIotcodeByIotcode(iotCode); List<EquipmentSpecificVo> eqIotCodeList = iEquipmentSpecificSerivce.getEquipAndCarIotcodeByIotcode(iotCode);
// equipmentSpecificMapper.getEquipOrCarByIotCode(iotCode);
if (eqIotCodeList.isEmpty()) { if (eqIotCodeList.isEmpty()) {
log.info("该数据{}不存在!", iotCode); log.info("该数据{}不存在!", iotCode);
return; return;
...@@ -206,6 +263,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -206,6 +263,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
} }
log.info(String.format("收到mqtt消息:%s", message)); log.info(String.format("收到mqtt消息:%s", message));
saveDataToDB(topicEntity, iotDatalist); saveDataToDB(topicEntity, iotDatalist);
// realTimeDateProcessing(topicEntity, iotDatalist);
} }
/** /**
...@@ -239,7 +297,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -239,7 +297,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
List<EquipmentAlarmReportDay> equipmentAlarmReports = new ArrayList<>(); List<EquipmentAlarmReportDay> equipmentAlarmReports = new ArrayList<>();
List<EquipmentSpecificAlarmLog> equipmentAlarmLogs = new ArrayList<>(); List<EquipmentSpecificAlarmLog> equipmentAlarmLogs = new ArrayList<>();
List<IndexStateVo> indexStateList = new ArrayList<>(); List<IndexStateVo> indexStateList = new ArrayList<>();
EquipmentStateVo equipmentStateVo = new EquipmentStateVo(); // EquipmentStateVo equipmentStateVo = new EquipmentStateVo();
List<EquipmentSpecificIndex> newIndexList = new ArrayList<>(); List<EquipmentSpecificIndex> newIndexList = new ArrayList<>();
for (EquipmentSpecificIndex equipmentSpecificIndex : indexList) { for (EquipmentSpecificIndex equipmentSpecificIndex : indexList) {
EquipmentSpecificIndex equipmentSpeIndex = new EquipmentSpecificIndex(); EquipmentSpecificIndex equipmentSpeIndex = new EquipmentSpecificIndex();
...@@ -307,11 +365,11 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -307,11 +365,11 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
}); });
equipmentStateVo.setEquipName(equipmentSpecificIndex.getEquipmentSpecificName()); // equipmentStateVo.setEquipName(equipmentSpecificIndex.getEquipmentSpecificName());
equipmentStateVo.setOrgCode(equipmentSpecificIndex.getOrgCode()); // equipmentStateVo.setOrgCode(equipmentSpecificIndex.getOrgCode());
equipmentStateVo.setSpecificId(equipmentSpecificIndex.getEquipmentSpecificId()); // equipmentStateVo.setSpecificId(equipmentSpecificIndex.getEquipmentSpecificId());
equipmentStateVo.setEquipCode(equipmentSpecificIndex.getQrCode()); // equipmentStateVo.setEquipCode(equipmentSpecificIndex.getQrCode());
equipmentStateVo.setEquipIotCode(iotCode); // equipmentStateVo.setEquipIotCode(iotCode);
List<EquipmentSpecificIndex> tempIndexList = new ArrayList<>(); List<EquipmentSpecificIndex> tempIndexList = new ArrayList<>();
tempIndexList = newIndexList.stream().filter(x -> x.getEquipmentIndexId().equals(equipmentSpeIndex.getEquipmentIndexId())).collect(Collectors.toList()); tempIndexList = newIndexList.stream().filter(x -> x.getEquipmentIndexId().equals(equipmentSpeIndex.getEquipmentIndexId())).collect(Collectors.toList());
tempIndexList.get(0).setValue(value); tempIndexList.get(0).setValue(value);
...@@ -335,18 +393,8 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -335,18 +393,8 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
syncDataService.syncCreatedFireEquipMeasurement(fireEquipMeasurementCollect); syncDataService.syncCreatedFireEquipMeasurement(fireEquipMeasurementCollect);
} }
} }
String status = EquipmentStateUtil.judgeEquipState(newIndexList); // 发送数据到画布
equipmentStateVo.setStatus(status); publishDataToCanvas(newIndexList);
// 添加性能指标项
equipmentStateVo.setSpeindexList(fireFightingSystemService.getSpeIndex(equipmentSpecificIndexList.get(0).getEquipmentSpecificId()));
//平台数据结构调整,equipCode、status 放到一个对象里
Map<String, Object> topicObject = new HashMap<>();
topicObject.put("equipCode", equipmentStateVo.getEquipCode());
topicObject.put("status", equipmentStateVo.getStatus());
Map<String, Object> map = JSON.parseObject(JSON.toJSONString(equipmentStateVo));
map.put(canvasTopic, topicObject);
// 发送数据至画布
mqttSendGateway.sendToMqtt(canvasTopic, JSON.toJSONString(map));
} }
// 设备报警日报表数据储存更新 // 设备报警日报表数据储存更新
...@@ -357,17 +405,19 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -357,17 +405,19 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
wrapper.eq(EquipmentAlarmReportDay::getReportDate, sdf.format(x.getReportDate())).eq(EquipmentAlarmReportDay::getIndexId, x.getIndexId()) wrapper.eq(EquipmentAlarmReportDay::getReportDate, sdf.format(x.getReportDate())).eq(EquipmentAlarmReportDay::getIndexId, x.getIndexId())
.eq(EquipmentAlarmReportDay::getEquipmentSpecificId, x.getEquipmentSpecificId()); .eq(EquipmentAlarmReportDay::getEquipmentSpecificId, x.getEquipmentSpecificId());
List<EquipmentAlarmReportDay> reportDayList = iEquipmentAlarmReportDayService.list(wrapper); List<EquipmentAlarmReportDay> reportDayList = iEquipmentAlarmReportDayService.list(wrapper);
if (reportDayList.isEmpty()) { if (1 == x.getIsAlarm()) {
x.setReportDate(new Date()); if (reportDayList.isEmpty()) {
x.setFrequency(1); x.setReportDate(new Date());
iEquipmentAlarmReportDayService.save(x); x.setFrequency(1);
} else { iEquipmentAlarmReportDayService.save(x);
EquipmentAlarmReportDay reportDay = reportDayList.get(0); } else {
reportDay.setLastReportDate(new Date()); EquipmentAlarmReportDay reportDay = reportDayList.get(0);
reportDay.setValue(x.getValue()); reportDay.setLastReportDate(new Date());
reportDay.setFrequency(reportDay.getFrequency() + 1); reportDay.setValue(x.getValue());
reportDay.setIndexTrueNum(reportDay.getIndexTrueNum() == null ? x.getIndexTrueNum() : reportDay.getIndexTrueNum() + x.getIndexTrueNum()); reportDay.setFrequency(reportDay.getFrequency() + 1);
iEquipmentAlarmReportDayService.updateById(reportDay); reportDay.setIndexTrueNum(reportDay.getIndexTrueNum() == null ? x.getIndexTrueNum() : reportDay.getIndexTrueNum() + x.getIndexTrueNum());
iEquipmentAlarmReportDayService.updateById(reportDay);
}
} }
}); });
mqttSendGateway.sendToMqtt(TopicEnum.EQXXTJ.getTopic(), ""); mqttSendGateway.sendToMqtt(TopicEnum.EQXXTJ.getTopic(), "");
...@@ -384,7 +434,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -384,7 +434,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
FireEquipment fireEquipment = iEquipmentSpecificSerivce.getEquipSpecificDetail(specific); FireEquipment fireEquipment = iEquipmentSpecificSerivce.getEquipSpecificDetail(specific);
if (!ObjectUtils.isEmpty(fireEquipment)) { if (!ObjectUtils.isEmpty(fireEquipment)) {
action.setLocation(fireEquipment.getPosition()); action.setLocation(fireEquipment.getPosition());
action.setCode(fireEquipment.getCode()); action.setEquipmentSpecificCode(fireEquipment.getCode());
action.setBuildId(fireEquipment.getBuildId()); action.setBuildId(fireEquipment.getBuildId());
} }
equipmentSpecificAlarmService.saveOrUpdate(action); equipmentSpecificAlarmService.saveOrUpdate(action);
...@@ -683,13 +733,13 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -683,13 +733,13 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
}); });
//若为物联设备,则更新拓扑节点数据及告警状态 //若为物联设备,则更新拓扑节点数据及告警状态
if (!ObjectUtils.isEmpty(indexList)) { // if (!ObjectUtils.isEmpty(indexList)) {
EquipmentVo equipmentVo = equipmentService.getEquipBySpecific(indexList.get(0).getEquipmentSpecificId()); // EquipmentVo equipmentVo = equipmentService.getEquipBySpecific(indexList.get(0).getEquipmentSpecificId());
if (equipmentVo.getIsIot().equals("1")) { // if (equipmentVo.getIsIot().equals("1")) {
List<EquipmentSpecificAlarm> alarmList = equipmentSpecificAlarmService.getEquipListBySpecific(true, indexList.get(0).getEquipmentSpecificId()); // List<EquipmentSpecificAlarm> alarmList = equipmentSpecificAlarmService.getEquipListBySpecific(true, indexList.get(0).getEquipmentSpecificId());
topographyService.updateNodeDateByEquipId(indexList.get(0).getEquipmentSpecificId(), indexList, alarmList); // topographyService.updateNodeDateByEquipId(indexList.get(0).getEquipmentSpecificId(), indexList, alarmList);
} // }
} // }
} }
static void upAlarmLogStatus(String iotCode, String equipmentSpecificIndexKey, IEquipmentSpecificAlarmLogService equipmentSpecificAlarmLogService) { static void upAlarmLogStatus(String iotCode, String equipmentSpecificIndexKey, IEquipmentSpecificAlarmLogService equipmentSpecificAlarmLogService) {
...@@ -707,6 +757,35 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -707,6 +757,35 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
} }
} }
public void publishDataToCanvas(List<EquipmentSpecificIndex> indexList) {
if (!ObjectUtils.isEmpty(indexList)) {
EquipmentSpecificIndex index = indexList.stream().filter(x -> x.getUpdateDate() != null)
.sorted(Comparator.comparing(EquipmentSpecificIndex::getUpdateDate).reversed())
.collect(Collectors.toList()).get(0);
EquipmentStateVo equipmentStateVo = new EquipmentStateVo();
equipmentStateVo.setEquipName(index.getEquipmentSpecificName());
equipmentStateVo.setOrgCode(index.getOrgCode());
equipmentStateVo.setSpecificId(index.getEquipmentSpecificId());
equipmentStateVo.setEquipCode(index.getQrCode());
equipmentStateVo.setEquipIotCode(index.getIotCode());
equipmentStateVo.setStatus("");
equipmentStateVo.setColor(index.getEmergencyLevelColor());
// 添加性能指标项
equipmentStateVo.setSpeindexList(fireFightingSystemService.getSpeIndex(index.getEquipmentSpecificId()));
Map<String, Object> topicObject = new HashMap<>();
topicObject.put("equipCode", equipmentStateVo.getEquipCode());
if (TrueOrFalseEnum.real.value.toUpperCase().equals(index.getValue().toUpperCase())) {
topicObject.put("color", equipmentStateVo.getColor());
} else {
topicObject.put("color", "");
}
Map<String, Object> map = JSON.parseObject(JSON.toJSONString(equipmentStateVo));
map.put(canvasTopic, topicObject);
// 发送数据至画布
mqttSendGateway.sendToMqtt(canvasTopic, JSON.toJSONString(map));
}
}
void syncSystemctlMsg(EquipmentSpecificAlarmLog equipmentSpecificAlarmLog) { void syncSystemctlMsg(EquipmentSpecificAlarmLog equipmentSpecificAlarmLog) {
try { try {
MessageModel model = new MessageModel(); MessageModel model = new MessageModel();
...@@ -777,7 +856,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -777,7 +856,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
action.setEquipmentSpecificName(equipmentSpcIndex.getEquipmentSpecificName()); action.setEquipmentSpecificName(equipmentSpcIndex.getEquipmentSpecificName());
action.setEquipmentCode(equipmentSpcIndex.getEquipmentCode()); action.setEquipmentCode(equipmentSpcIndex.getEquipmentCode());
// 冗余字段,alarm_log表更新时使用 // 冗余字段,alarm_log表更新时使用
action.setCode(equipmentSpcIndex.getEquipmentSpecificCode()); action.setEquipmentSpecificCode(equipmentSpcIndex.getEquipmentSpecificCode());
equipmentSpecificAlarms.add(action); equipmentSpecificAlarms.add(action);
}); });
} }
...@@ -797,19 +876,19 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -797,19 +876,19 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
private EquipmentAlarmReportDay addEquipAlarmReportRecord(EquipmentSpecificIndex equipmentSpecificIndex) { private EquipmentAlarmReportDay addEquipAlarmReportRecord(EquipmentSpecificIndex equipmentSpecificIndex) {
EquipmentAlarmReportDay equipmentAlarmReportDay = new EquipmentAlarmReportDay(); EquipmentAlarmReportDay equipmentAlarmReportDay = new EquipmentAlarmReportDay();
LambdaQueryWrapper<EquipmentSpecific> speWrapper = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<EquipmentSpecific> speWrapper = new LambdaQueryWrapper<>();
EquipmentSpecific equipmentSpecific = iEquipmentSpecificSerivce.getOne(speWrapper.eq(BaseEntity::getId, equipmentSpecificIndex.getEquipmentSpecificId())); // EquipmentSpecific equipmentSpecific = iEquipmentSpecificSerivce.getOne(speWrapper.eq(BaseEntity::getId, equipmentSpecificIndex.getEquipmentSpecificId()));
LambdaQueryWrapper<EquipmentDetail> speDetailWrapper = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<EquipmentDetail> speDetailWrapper = new LambdaQueryWrapper<>();
EquipmentDetail detail = iEquipmentDetailService.getOne(speDetailWrapper.eq(BaseEntity::getId, equipmentSpecific.getEquipmentDetailId())); // EquipmentDetail detail = iEquipmentDetailService.getOne(speDetailWrapper.eq(BaseEntity::getId, equipmentSpecific.getEquipmentDetailId()));
equipmentAlarmReportDay.setOrgCode(equipmentSpecific.getOrgCode()); equipmentAlarmReportDay.setOrgCode(equipmentSpecificIndex.getOrgCode());
equipmentAlarmReportDay.setReportDate(new Date()); equipmentAlarmReportDay.setReportDate(new Date());
equipmentAlarmReportDay.setSystemIds(equipmentSpecific.getSystemId()); equipmentAlarmReportDay.setSystemIds(equipmentSpecificIndex.getSystemId());
equipmentAlarmReportDay.setLastReportDate(new Date()); equipmentAlarmReportDay.setLastReportDate(new Date());
equipmentAlarmReportDay.setEquipmentSpecificId(equipmentSpecific.getId()); equipmentAlarmReportDay.setEquipmentSpecificId(equipmentSpecificIndex.getEquipmentSpecificId());
equipmentAlarmReportDay.setEquipmentSpecificName(detail.getName()); equipmentAlarmReportDay.setEquipmentSpecificName(equipmentSpecificIndex.getEquipmentSpecialName());
equipmentAlarmReportDay.setEquipmentDetailId(detail.getId()); equipmentAlarmReportDay.setEquipmentDetailId(equipmentSpecificIndex.getEquipmentDetailId());
equipmentAlarmReportDay.setEquipmentId(detail.getEquipmentId()); equipmentAlarmReportDay.setEquipmentId(equipmentSpecificIndex.getEquipmentId());
equipmentAlarmReportDay.setEquipmentCode(detail.getCode()); equipmentAlarmReportDay.setEquipmentCode(equipmentSpecificIndex.getEquipmentCode());
equipmentAlarmReportDay.setIndexTrueNum(TrueOrFalseEnum.real.value.equals(equipmentSpecificIndex.getValue()) ? 1L : 0L); equipmentAlarmReportDay.setIndexTrueNum(TrueOrFalseEnum.real.value.equals(equipmentSpecificIndex.getValue()) ? 1L : 0L);
equipmentAlarmReportDay.setAlarmType(equipmentSpecificIndex.getTypeCode()); equipmentAlarmReportDay.setAlarmType(equipmentSpecificIndex.getTypeCode());
equipmentAlarmReportDay.setAlarmTypeName(equipmentSpecificIndex.getTypeName()); equipmentAlarmReportDay.setAlarmTypeName(equipmentSpecificIndex.getTypeName());
...@@ -817,32 +896,34 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -817,32 +896,34 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
equipmentAlarmReportDay.setIndexName(equipmentSpecificIndex.getEquipmentSpecificIndexName()); equipmentAlarmReportDay.setIndexName(equipmentSpecificIndex.getEquipmentSpecificIndexName());
equipmentAlarmReportDay.setIndexType(equipmentSpecificIndex.getNameKey()); equipmentAlarmReportDay.setIndexType(equipmentSpecificIndex.getNameKey());
equipmentAlarmReportDay.setValue(equipmentSpecificIndex.getValue()); equipmentAlarmReportDay.setValue(equipmentSpecificIndex.getValue());
equipmentAlarmReportDay.setIsAlarm(equipmentSpecificIndex.getIsAlarm());
return equipmentAlarmReportDay; return equipmentAlarmReportDay;
} }
private EquipmentSpecificAlarmLog addEquipAlarmLogRecord(EquipmentSpecificAlarm equipmentSpecificAlarm) { private EquipmentSpecificAlarmLog addEquipAlarmLogRecord(EquipmentSpecificAlarm equipmentSpecificAlarm) {
EquipmentSpecificAlarmLog equipmentSpecificAlarmLog = new EquipmentSpecificAlarmLog(); EquipmentSpecificAlarmLog equipmentSpecificAlarmLog = new EquipmentSpecificAlarmLog();
equipmentSpecificAlarmLog.setOrgCode(equipmentSpecificAlarm.getOrgCode()); BeanUtils.copyProperties(equipmentSpecificAlarm, equipmentSpecificAlarmLog);
// equipmentSpecificAlarmLog.setOrgCode(equipmentSpecificAlarm.getOrgCode());
equipmentSpecificAlarmLog.setCreateDate(new Date()); equipmentSpecificAlarmLog.setCreateDate(new Date());
equipmentSpecificAlarmLog.setSystemIds(equipmentSpecificAlarm.getSystemIds()); // equipmentSpecificAlarmLog.setSystemIds(equipmentSpecificAlarm.getSystemIds());
equipmentSpecificAlarmLog.setEquipmentSpecificId(equipmentSpecificAlarm.getEquipmentSpecificId()); // equipmentSpecificAlarmLog.setEquipmentSpecificId(equipmentSpecificAlarm.getEquipmentSpecificId());
equipmentSpecificAlarmLog.setIotCode(equipmentSpecificAlarm.getIotCode()); // equipmentSpecificAlarmLog.setIotCode(equipmentSpecificAlarm.getIotCode());
equipmentSpecificAlarmLog.setSystemCodes(equipmentSpecificAlarm.getSystemCodes()); // equipmentSpecificAlarmLog.setSystemCodes(equipmentSpecificAlarm.getSystemCodes());
equipmentSpecificAlarmLog.setEquipmentCode(equipmentSpecificAlarm.getEquipmentCode()); // equipmentSpecificAlarmLog.setEquipmentCode(equipmentSpecificAlarm.getEquipmentCode());
equipmentSpecificAlarmLog.setEquipmentSpecificName(equipmentSpecificAlarm.getEquipmentSpecificName()); // equipmentSpecificAlarmLog.setEquipmentSpecificName(equipmentSpecificAlarm.getEquipmentSpecificName());
equipmentSpecificAlarmLog.setEquipmentDetailId(equipmentSpecificAlarm.getEquipmentDetailId()); // equipmentSpecificAlarmLog.setEquipmentDetailId(equipmentSpecificAlarm.getEquipmentDetailId());
equipmentSpecificAlarmLog.setEquipmentId(equipmentSpecificAlarm.getEquipmentId()); // equipmentSpecificAlarmLog.setEquipmentId(equipmentSpecificAlarm.getEquipmentId());
equipmentSpecificAlarmLog.setType(equipmentSpecificAlarm.getType()); // equipmentSpecificAlarmLog.setType(equipmentSpecificAlarm.getType());
equipmentSpecificAlarmLog.setEquipmentSpecificIndexValue(equipmentSpecificAlarm.getEquipmentSpecificIndexValue()); // equipmentSpecificAlarmLog.setEquipmentSpecificIndexValue(equipmentSpecificAlarm.getEquipmentSpecificIndexValue());
equipmentSpecificAlarmLog.setEquipmentSpecificIndexKey(equipmentSpecificAlarm.getEquipmentSpecificIndexKey()); // equipmentSpecificAlarmLog.setEquipmentSpecificIndexKey(equipmentSpecificAlarm.getEquipmentSpecificIndexKey());
equipmentSpecificAlarmLog.setEquipmentSpecificIndexName(equipmentSpecificAlarm.getEquipmentSpecificIndexName()); // equipmentSpecificAlarmLog.setEquipmentSpecificIndexName(equipmentSpecificAlarm.getEquipmentSpecificIndexName());
equipmentSpecificAlarmLog.setEquipmentIndexId(equipmentSpecificAlarm.getEquipmentIndexId()); // equipmentSpecificAlarmLog.setEquipmentIndexId(equipmentSpecificAlarm.getEquipmentIndexId());
equipmentSpecificAlarmLog.setEquipmentSpecificAlarmId(equipmentSpecificAlarm.getId()); equipmentSpecificAlarmLog.setEquipmentSpecificAlarmId(equipmentSpecificAlarm.getId());
equipmentSpecificAlarmLog.setLocation(equipmentSpecificAlarm.getLocation()); // equipmentSpecificAlarmLog.setLocation(equipmentSpecificAlarm.getLocation());
equipmentSpecificAlarmLog.setAlarmReason(equipmentSpecificAlarm.getAlamReason()); // equipmentSpecificAlarmLog.setAlarmReason(equipmentSpecificAlarm.getAlamReason());
equipmentSpecificAlarmLog.setEquipmentSpecificCode(equipmentSpecificAlarm.getCode()); // equipmentSpecificAlarmLog.setEquipmentSpecificCode(equipmentSpecificAlarm.getEquipmentSpecificCode());
equipmentSpecificAlarmLog.setBuildId(equipmentSpecificAlarm.getBuildId()); // equipmentSpecificAlarmLog.setBuildId(equipmentSpecificAlarm.getBuildId());
equipmentSpecificAlarmLog.setStatus(equipmentSpecificAlarm.getStatus()); // equipmentSpecificAlarmLog.setStatus(equipmentSpecificAlarm.getStatus());
boolean bool = equipmentSpecificAlarmLogService.save(equipmentSpecificAlarmLog); boolean bool = equipmentSpecificAlarmLogService.save(equipmentSpecificAlarmLog);
// 同步告警消息给平台 // 同步告警消息给平台
if (amosSwitch && bool) { if (amosSwitch && bool) {
...@@ -872,19 +953,16 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -872,19 +953,16 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
equipmentSpecificAlarm.setEquipmentSpecificIndexKey(equipmentSpecificIndex.getNameKey()); equipmentSpecificAlarm.setEquipmentSpecificIndexKey(equipmentSpecificIndex.getNameKey());
equipmentSpecificAlarm.setEquipmentSpecificIndexValue(equipmentSpecificIndex.getValue()); equipmentSpecificAlarm.setEquipmentSpecificIndexValue(equipmentSpecificIndex.getValue());
equipmentSpecificAlarm.setEquipmentSpecificIndexLabel(equipmentSpecificIndex.getValueLabel()); equipmentSpecificAlarm.setEquipmentSpecificIndexLabel(equipmentSpecificIndex.getValueLabel());
if (EquipmentRiskTypeEnum.HZGJ.getCode().equals(equipmentSpecificIndex.getTypeCode())) { equipmentSpecificAlarm.setType(equipmentSpecificIndex.getTypeCode());
equipmentSpecificAlarm.setType(EquipmentRiskTypeEnum.HZGJ.getCode());
} else if (EquipmentRiskTypeEnum.GZ.getCode().equals(equipmentSpecificIndex.getTypeCode())) {
equipmentSpecificAlarm.setType(EquipmentRiskTypeEnum.GZ.getCode());
} else if (EquipmentRiskTypeEnum.PB.getCode().equals(equipmentSpecificIndex.getTypeCode())) {
equipmentSpecificAlarm.setType(EquipmentRiskTypeEnum.PB.getCode());
}
equipmentSpecificAlarm.setCreateDate(new Date()); equipmentSpecificAlarm.setCreateDate(new Date());
equipmentSpecificAlarm.setUpdateDate(new Date()); equipmentSpecificAlarm.setUpdateDate(new Date());
equipmentSpecificAlarm.setEquipmentCode(equipmentSpecificIndex.getEquipmentCode()); equipmentSpecificAlarm.setEquipmentCode(equipmentSpecificIndex.getEquipmentCode());
equipmentSpecificAlarm.setEquipmentId(equipmentSpecificIndex.getEquipmentId()); equipmentSpecificAlarm.setEquipmentId(equipmentSpecificIndex.getEquipmentId());
equipmentSpecificAlarm.setEquipmentDetailId(equipmentSpecificIndex.getEquipmentDetailId()); equipmentSpecificAlarm.setEquipmentDetailId(equipmentSpecificIndex.getEquipmentDetailId());
equipmentSpecificAlarm.setCode(equipmentSpecificIndex.getEquipmentSpecificCode()); equipmentSpecificAlarm.setEquipmentSpecificCode(equipmentSpecificIndex.getEquipmentSpecificCode());
equipmentSpecificAlarm.setEmergencyLevel(equipmentSpecificIndex.getEmergencyLevel());
equipmentSpecificAlarm.setEmergencyLevelColor(equipmentSpecificIndex.getEmergencyLevelColor());
equipmentSpecificAlarm.setEmergencyLevelDescribe(equipmentSpecificIndex.getEmergencyLevelDescribe());
equipmentSpecificAlarms.add(equipmentSpecificAlarm); equipmentSpecificAlarms.add(equipmentSpecificAlarm);
return equipmentSpecificAlarms; return equipmentSpecificAlarms;
} }
...@@ -972,6 +1050,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -972,6 +1050,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
equipmentSpecificIndex.setNameKey(AlarmTypeEnum.GZGJ.getCode()); equipmentSpecificIndex.setNameKey(AlarmTypeEnum.GZGJ.getCode());
equipmentSpecificIndex.setAlamReason(TemperatureAlarm.getAlarmContent(dto.getAlarmLevel(), dto.getAlarmType(), dto.getAlarmRule(), dto.getRuleTemperature(), dto.getTemperature(), dto.getThermometryUnit())); equipmentSpecificIndex.setAlamReason(TemperatureAlarm.getAlarmContent(dto.getAlarmLevel(), dto.getAlarmType(), dto.getAlarmRule(), dto.getRuleTemperature(), dto.getTemperature(), dto.getThermometryUnit()));
equipmentSpecificIndex.setValue("true"); equipmentSpecificIndex.setValue("true");
equipmentSpecificIndex.setIsAlarm(1);
temperatureMap.remove(traceId); temperatureMap.remove(traceId);
} }
return equipmentSpecificIndex; return equipmentSpecificIndex;
...@@ -1032,4 +1111,438 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -1032,4 +1111,438 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
} }
return flag; return flag;
} }
public void realTimeDateProcessing(TopicEntityVo topicEntity, List<IotDataVO> iotDatalist){
String iotCode = topicEntity.getIotCode();
if(EquipAndCarEnum.equip.type.equals(topicEntity.getType())){
List<EquipmentSpecificIndex> indexList = equipmentSpecificIndexService.getEquipmentSpeIndexBySpeIotCode(iotCode);
if (ObjectUtils.isEmpty(indexList)){
return;
}
equipRealTimeDate(iotDatalist, indexList, topicEntity);
}else{
List<CarProperty> carProperties = carPropertyService.getCarPropListByIotCode(iotCode);
if (ObjectUtils.isEmpty(carProperties)){
return;
}
carRealTimeDate(iotDatalist, carProperties);
}
}
/**
* 装备实时数据处理
* @param iotDatalist
* @param indexList
* @param topicEntity
*/
private void equipRealTimeDate(List<IotDataVO> iotDatalist, List<EquipmentSpecificIndex> indexList, TopicEntityVo topicEntity){
List<EquipmentSpecificIndex> equipmentSpecificIndexList = new ArrayList<>();
List<EquipmentSpecificAlarm> equipmentSpecificAlarms = new ArrayList<>();
List<IndexStateVo> indexStateList = new ArrayList<>();
// 存储温度数据至内存中(火眼)
iotDataListToCacheMap(iotDatalist);
iotDatalist.forEach( iotDataVO -> {
for (EquipmentSpecificIndex equipmentSpecificIndex : indexList) {
if (!ObjectUtils.isEmpty(equipmentSpecificIndex.getNameKey())
&& equipmentSpecificIndex.getNameKey().toLowerCase().equals(iotDataVO.getKey().toLowerCase())) {
EquipmentSpecificIndex equipmentSpeIndex = new EquipmentSpecificIndex();
BeanUtils.copyProperties(equipmentSpecificIndex, equipmentSpeIndex);
String value = iotDataVO.getValue().toString();
equipmentSpeIndex.setValue(value);
equipmentSpeIndex.setValueLabel(valueTranslate(value, equipmentSpecificIndex.getValueEnum()));
equipmentSpeIndex.setUpdateDate(new Date());
equipmentSpecificIndexService.updateById(equipmentSpeIndex);
equipmentSpecificIndexList.add(equipmentSpeIndex);
indexStateList.add(createIndexStateVo(equipmentSpeIndex));
// 向预控系统发送消息
sendEquipSpecIndexToAutosysTopic(equipmentSpeIndex);
// 添加指标报告
saveEquipmentAlarmReportDay(equipmentSpeIndex);
//火眼数据构造告警指标逻辑
equipmentSpecificIndex = handleTemperatureAlarm(equipmentSpeIndex, iotDatalist);
//指标告警处理
if(1 == equipmentSpecificIndex.getIsAlarm()){
equipmentSpecificAlarms.addAll(createIndexAlarmRecord(equipmentSpecificIndex));
}
}
}
});
//向画布推送
publishDataToCanvas(equipmentSpecificIndexList);
// 首页性能指标数据订阅
mqttSendGateway.sendToMqtt(indexTopic, JSON.toJSONString(indexStateList));
//组态大屏消息推送,设备表实时指标修改
intePageSysDataRefresh(equipmentSpecificIndexList, topicEntity);
//数字换流站同步指标修改
syncSpecificIndexsToGS(equipmentSpecificIndexList);
// 报警数据保存
saveOrUpdateEquipAlarm(equipmentSpecificAlarms);
}
public void saveOrUpdateEquipAlarm(List<EquipmentSpecificAlarm> equipmentSpecificAlarms){
if(ObjectUtils.isEmpty(equipmentSpecificAlarms)){
return;
}
equipmentSpecificAlarmService.saveOrUpdateBatch(equipmentSpecificAlarms);
List<EquipmentSpecificAlarmLog> equipmentAlarmLogs = new ArrayList<>();
equipmentSpecificAlarms.forEach(action->{
if (AlarmStatusEnum.BJ.getCode() == action.getStatus()) {
equipmentAlarmLogs.add(addEquipAlarmLogRecord(action));
if (ValidationUtil.isEmpty(action.getAlamContent())) {
action.setAlamContent(action.getEquipmentSpecificName() + action.getEquipmentSpecificIndexName());
}
mqttSendGateway.sendToMqtt(TopicEnum.EQDQR.getTopic(), JSONArray.toJSON(action).toString());
} else {
upAlarmLogStatus(action.getIotCode(), action.getEquipmentSpecificIndexKey(), equipmentSpecificAlarmLogService);
mqttSendGateway.sendToMqtt(TopicEnum.EQYQR.getTopic(), JSONArray.toJSON(action).toString());
bool = Boolean.TRUE;
}
});
if(ObjectUtils.isEmpty(equipmentAlarmLogs)){
return;
}
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("seqNo", UUID.randomUUID().toString().replace("-", "").toLowerCase());
mqttSendGateway.sendToMqtt(TopicEnum.ALARM_LOG_INSERT.getTopic(), jsonObject.toString());
// 数字换流站数据处理(高斯库同步及南瑞告警推送)
if (syncSwitch) {
List<FireEquipmentFireAlarm> alarmList = createFireEquipmentFireAlarmVo(equipmentAlarmLogs);
if (!CollectionUtils.isEmpty(alarmList)) {
Map<String, List<FireEquipmentFireAlarm>> collect = alarmList.stream().collect(Collectors.groupingBy(FireEquipmentFireAlarm::getType));
for (String key : collect.keySet()) {
List<FireEquipmentFireAlarm> list = collect.get(key);
if (!CollectionUtils.isEmpty(list)) {
if ("FIREALARM".equalsIgnoreCase(key)) {
syncDataService.syncCreatedFireEquipAlarm(list);
} else if ("BREAKDOWN".equalsIgnoreCase(key)) {
List<FireEquipmentFaultAlarm> faultAlarms = list.stream().map(x -> {
FireEquipmentFaultAlarm fireEquipmentFaultAlarm = new FireEquipmentFaultAlarm();
BeanUtils.copyProperties(x, fireEquipmentFaultAlarm);
return fireEquipmentFaultAlarm;
}).collect(Collectors.toList());
syncDataService.syncCreatedFireEquiptFaultAlarm(faultAlarms);
} else if ("SHIELD".equalsIgnoreCase(key)) {
List<FireEquipmentDefectAlarm> defectAlarms = list.stream().map(x -> {
FireEquipmentDefectAlarm fireEquipmentFaultAlarm = new FireEquipmentDefectAlarm();
BeanUtils.copyProperties(x, fireEquipmentFaultAlarm);
return fireEquipmentFaultAlarm;
}).collect(Collectors.toList());
syncDataService.syncCreatedFireEquipDefectAlarm(defectAlarms);
}
}
}
}
// 向南瑞平台推送报警消息
syncDataService.syncCreatedSendAlarm(equipmentAlarmLogs);
}
}
});
}
/**
* 组装数字换流站平台告警数据
* @param equipmentSpecificIndex
* @return
*/
private List<FireEquipmentFireAlarm> createFireEquipmentFireAlarmVo(List<EquipmentSpecificAlarmLog> equipmentAlarmLogs){
Map<String,String> stationInfo = equipmentSpecificMapper.getStationInfo().get(0);
List<FireEquipmentFireAlarm> alarmList = new ArrayList<>();
equipmentAlarmLogs.forEach(action->{
FireEquipmentFireAlarm alarm = new FireEquipmentFireAlarm();
BeanUtils.copyProperties(action, alarm);
// alarm.setAlarmReason(action.getAlarmReason());
alarm.setAliasname(action.getEquipmentSpecificIndexName());
// alarm.setConfirmDate(action.getConfirmDate());
// alarm.setConfirmType(action.getConfirmType());
// alarm.setConfirmUser(action.getConfirmUser());
// alarm.setCreateDate(action.getCreateDate());
alarm.setEquipmentMeasurementId(action.getEquipmentIndexId().toString());
alarm.setEquipmentMeasurementMRid(action.getEquipmentIndexId().toString());
alarm.setFieldLabel(action.getEquipmentSpecificIndexKey());
alarm.setFieldName(action.getEquipmentSpecificIndexName());
alarm.setFireEquipmentId(action.getEquipmentSpecificId().toString());
alarm.setFireEquipmentMRid(action.getEquipmentSpecificCode());
alarm.setFireEquipmentName(action.getEquipmentSpecificName());
alarm.setFrequency(1);
alarm.setId(action.getId().toString());
alarm.setMrid(action.getId().toString());
alarm.setName(action.getEquipmentSpecificIndexName());
alarm.setRecoveryDate(action.getUpdateDate());
// alarm.setResolveResult(action.getResolveResult());
alarm.setStationCode(ObjectUtils.isEmpty(stationInfo)?"":stationInfo.get("stationCode"));
alarm.setStationName(ObjectUtils.isEmpty(stationInfo)?"":stationInfo.get("stationName"));
// alarm.setType(action.getType());
// alarm.setUpdateDate(action.getUpdateDate());
alarm.setValue(action.getEquipmentSpecificIndexValue());
alarmList.add(alarm);
});
return alarmList;
}
/**
* 高斯库同步指标修改
* @param equipmentSpecificIndexList
*/
private void syncSpecificIndexsToGS(List<EquipmentSpecificIndex> equipmentSpecificIndexList){
if (ObjectUtils.isEmpty(equipmentSpecificIndexList) && syncSwitch) {
// 数据同步
List<EquipmentIndexVO> fireEquipMeasurementCollect = new ArrayList<>();
equipmentSpecificIndexList.forEach(action->{
EquipmentIndexVO equipmentIndexVO = new EquipmentIndexVO();
BeanUtils.copyProperties(action, equipmentIndexVO);
});
if (0 < fireEquipMeasurementCollect.size()) {
syncDataService.syncCreatedFireEquipMeasurement(fireEquipMeasurementCollect);
}
}
}
private IndexStateVo createIndexStateVo(EquipmentSpecificIndex equipmentSpecificIndex){
IndexStateVo indexStateVo = new IndexStateVo();
BeanUtils.copyProperties(equipmentSpecificIndex, indexStateVo);
indexStateVo.setId(equipmentSpecificIndex.getIotCode() + "_" + equipmentSpecificIndex.getNameKey());
indexStateVo.setData(equipmentSpecificIndex.getValue());
indexStateVo.setIndexKey(equipmentSpecificIndex.getNameKey());
return indexStateVo;
}
public List<EquipmentSpecificAlarm> createIndexAlarmRecord(EquipmentSpecificIndex equipmentSpcIndex) {
// 处理火眼视频异常
List<EquipmentSpecificAlarm> equipmentSpecificAlarms = new ArrayList<>();
EquipmentSpecificAlarm equipmentSpecificAlarm = new EquipmentSpecificAlarm();
equipmentSpecificAlarm.setSystemIds(equipmentSpcIndex.getSystemId());
equipmentSpecificAlarm.setSystemCodes(this.getSystemCodeBySpeId(equipmentSpcIndex.getSystemId()));
List<EquipmentSpecificAlarm> indexAlarms = equipmentSpecificAlarmMapper.findEquipmentSpecificAlarmByEquipmentSpecificIdAndEquipmentIndexIdAndStatusIstrue(equipmentSpcIndex.getEquipmentSpecificId()
, equipmentSpcIndex.getEquipmentIndexId());
// NB设备告警
if (verifyNB(equipmentSpcIndex.getNameKey())) {
return getNbEquipAlarmList(indexAlarms, equipmentSpcIndex, equipmentSpecificAlarm);
}
// 报警表新增信息
if (ObjectUtils.isEmpty(indexAlarms) && (TrueOrFalseEnum.real.value.equals(equipmentSpcIndex.getValue()))) {
addEquipmentSpecificAlarm(equipmentSpecificAlarms, equipmentSpcIndex, equipmentSpecificAlarm);
} else {
// 报警表更新信息
indexAlarms.forEach(action -> {
if (TrueOrFalseEnum.real.value.equals(equipmentSpcIndex.getValue())) {
// 报警,修改发生频率
action.setFrequency((action.getFrequency() + 1));
} else {
// 报警恢复,修改数据为恢复状态
action.setRecoveryDate(new Date());
action.setEquipmentSpecificIndexValue(TrueOrFalseEnum.fake.value);
action.setStatus(AlarmStatusEnum.HF.getCode());
}
action.setUpdateDate(new Date());
// 更新所在系统,设备可能编辑过,更新所在系统、装备名称、装备定义code
action.setSystemIds(equipmentSpcIndex.getSystemId());
action.setSystemCodes(this.getSystemCodeBySpeId(equipmentSpcIndex.getSystemId()));
action.setEquipmentSpecificName(equipmentSpcIndex.getEquipmentSpecificName());
action.setEquipmentCode(equipmentSpcIndex.getEquipmentCode());
// 冗余字段,alarm_log表更新时使用
action.setEquipmentSpecificCode(equipmentSpcIndex.getEquipmentSpecificCode());
equipmentSpecificAlarms.add(action);
});
}
return equipmentSpecificAlarms;
}
/**
* 发送数据至换流站
* @param
*/
private void sendEquipSpecIndexToAutosysTopic(EquipmentSpecificIndex equipmentSpeIndex){
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
String topic = "";
if (TrueOrFalseEnum.real.value.equals(equipmentSpeIndex.getValue()) && EquipmentRiskTypeEnum.HZGJ.getCode().equals(equipmentSpeIndex.getTypeCode())) {
equipmentSpeIndex.setType(EquipmentRiskTypeEnum.HZGJ.getCode());
topic = String.format("%s.%s%s", serverName, "equipment/", RiskLeverForAutoSys.BJ.getCode());
} else if (TrueOrFalseEnum.real.value.equals(equipmentSpeIndex.getValue()) && EquipmentRiskTypeEnum.GZ.getCode().equals(equipmentSpeIndex.getTypeCode())) {
equipmentSpeIndex.setType(EquipmentRiskTypeEnum.GZ.getCode());
topic = String.format("%s.%s%s", serverName, "equipment/", RiskLeverForAutoSys.GZ.getCode());
} else {
equipmentSpeIndex.setType(EquipmentRiskTypeEnum.QT.getCode());
topic = String.format("%s.%s%s", serverName, "equipment/", RiskLeverForAutoSys.JC.getCode());
}
TopicEntityVo topicEntityVo = new TopicEntityVo();
topicEntityVo.setIotCode(equipmentSpeIndex.getIotCode());
topicEntityVo.setTopic(topic);
topicEntityVo.setMessage(JSON.toJSONString(equipmentSpeIndex));
mqttSendGateway.sendToMqtt(topic, JSON.toJSONString(topicEntityVo));
}
});
}
/**
* 组态大屏消息推送,设备表实时指标修改
* @param equipmentSpecificIndexList
* @param topicEntity
*/
public void intePageSysDataRefresh(List<EquipmentSpecificIndex> equipmentSpecificIndexList, TopicEntityVo topicEntity){
//TODO 数字化换流站组态屏数据推送,需要在事务提交之后,否侧事务隔离查询不出数据
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
mqttSendGateway.sendToMqtt(TopicEnum.EQXXTJ.getTopic(), "");
iEquipmentSpecificSerivce.integrationPageSysDataRefresh(topicEntity.getCode());
iEquipmentSpecificSerivce.updateEquipmentSpecIndexRealtimeData(equipmentSpecificIndexList);
}
});
}
/**
* 更新数据报表表
* @param equipmentSpecificIndex
*/
private void saveEquipmentAlarmReportDay(EquipmentSpecificIndex equipmentSpecificIndex){
SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.DATE_PATTERN);
EquipmentAlarmReportDay equipmentAlarmReportDay = addEquipAlarmReportRecord(equipmentSpecificIndex);
LambdaQueryWrapper<EquipmentAlarmReportDay> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(EquipmentAlarmReportDay::getReportDate, sdf.format(equipmentAlarmReportDay.getReportDate())).eq(EquipmentAlarmReportDay::getIndexId, equipmentAlarmReportDay.getIndexId())
.eq(EquipmentAlarmReportDay::getEquipmentSpecificId, equipmentAlarmReportDay.getEquipmentSpecificId());
List<EquipmentAlarmReportDay> reportDayList = iEquipmentAlarmReportDayService.list(wrapper);
if (reportDayList.isEmpty()) {
equipmentAlarmReportDay.setReportDate(new Date());
equipmentAlarmReportDay.setFrequency(1);
iEquipmentAlarmReportDayService.save(equipmentAlarmReportDay);
} else {
EquipmentAlarmReportDay reportDay = reportDayList.get(0);
reportDay.setLastReportDate(new Date());
reportDay.setValue(equipmentAlarmReportDay.getValue());
reportDay.setFrequency(reportDay.getFrequency() + 1);
reportDay.setIndexTrueNum(reportDay.getIndexTrueNum() == null ? equipmentAlarmReportDay.getIndexTrueNum() : reportDay.getIndexTrueNum() + equipmentAlarmReportDay.getIndexTrueNum());
iEquipmentAlarmReportDayService.updateById(reportDay);
}
}
private String valueTranslate(String value, String enumStr){
if(ObjectUtils.isEmpty(enumStr)){
return "";
}
try {
JSONArray jsonArray = JSONArray.parseArray(enumStr);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
if (jsonObject.get("key").equals(value)) {
return jsonObject.getString("label");
}
}
} catch (Exception e) {
}
return "";
}
private void carRealTimeDate(List<IotDataVO> iotDatalist, List<CarProperty> carProperties){
List<CarProperty> carIndexsList = new ArrayList<>();
iotDatalist.forEach(iotDataVO->{
// 对指标key为labels的数据处理
if (EquipmentIndexLabelsEnum.labels.name.equals(iotDataVO.getKey())) {
StringBuilder sb = new StringBuilder("equipmentOnCar_");
EquipmentIndexLabelsVo labelsVo = new EquipmentIndexLabelsVo();
Object obj = iotDataVO.getValue();
if (obj instanceof JSONArray) {
List<String> labelList = (List<String>) obj;
labelList.forEach(code -> {
String key = sb.append(code).toString();
labelsVo.setEquipmentIotCode(code);
labelsVo.setTime(new Date());
redisUtils.set(key, com.alibaba.fastjson.JSONObject.toJSONString(labelsVo), redisExpireTime);
});
}
}
List<CarPropertyVo> carPropertyVos = new ArrayList<>();
carProperties.forEach(carProperty->{
CarProperty property = new CarProperty();
if (iotDataVO.getKey().equals(carProperty.getNameKey())) {
BeanUtils.copyProperties(carProperty, property);
property.setValue(iotDataVO.getValue().toString());
carPropertyVos.add(carPropertyToCarPropertyVo(carProperty));
carIndexsList.add(property);
}
});
boolean updateBatchById = carPropertyService.updateBatchById(carIndexsList);
if(updateBatchById){
List<CarIndexGisVo> list = createCarIndexGisVo(carIndexsList);
boolean flag = ifSendToGis(list);
if (flag) {
mqttSendGateway.sendToMqtt(carTopic, JSON.toJSONString(list));
}
if (syncSwitch) {
syncDataService.syncCreatedFireVehicleMeasurement(carPropertyVos);
}
}
});
}
private CarPropertyVo carPropertyToCarPropertyVo(CarProperty property){
CarPropertyVo carPropertyVo = new CarPropertyVo();
carPropertyVo.setCarId(property.getCarId());
carPropertyVo.setCreateDate(property.getCreateDate());
carPropertyVo.setId(property.getId());
carPropertyVo.setIsIot(1);
carPropertyVo.setMRid(property.getEquipmentIndexId().toString());
carPropertyVo.setName(property.getEquipmentIndexName());
carPropertyVo.setNameKey(property.getEquipmentIndexKey());
carPropertyVo.setSort(1);
carPropertyVo.setUnit(property.getUnitName());
carPropertyVo.setValue(property.getValue());
return carPropertyVo;
}
private List<CarIndexGisVo> createCarIndexGisVo(List<CarProperty> carProperties){
List<CarIndexGisVo> list = new ArrayList<>();
carProperties.forEach(action->{
CarIndexGisVo v = new CarIndexGisVo();
v.setId(action.getCarId());
v.setIotCode(action.getIotCode());
v.setNameKey(action.getEquipmentIndexKey());
v.setValue(action.getValue());
list.add(v);
});
return list;
}
} }
...@@ -348,7 +348,7 @@ public class RiskSourceSceneServiceImpl extends ServiceImpl<RiskSourceSceneMappe ...@@ -348,7 +348,7 @@ public class RiskSourceSceneServiceImpl extends ServiceImpl<RiskSourceSceneMappe
equipIndexLatestStatus.forEach(action->{ equipIndexLatestStatus.forEach(action->{
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put("equipCode", action.getQrCode()); map.put("equipCode", action.getQrCode());
map.put("status", EquipmentStateUtil.judgeEquipState(action)); map.put("color", EquipmentStateUtil.judgeEquipState(action));
data.add(map); data.add(map);
}); });
return data; return data;
......
package com.yeejoin.equipmanage.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.equipmanage.common.entity.SignalClassify;
import com.yeejoin.equipmanage.mapper.SignalClassifyMapper;
import com.yeejoin.equipmanage.service.ISignalClassifyService;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.List;
/**
* 信号分类量测枚举表服务实现类
*
* @author system_generator
* @date 2022-02-18
*/
@Service
public class SignalClassifyServiceImpl extends ServiceImpl<SignalClassifyMapper, SignalClassify> implements ISignalClassifyService {
}
\ No newline at end of file
...@@ -2427,4 +2427,195 @@ ...@@ -2427,4 +2427,195 @@
update wl_video_source s set s.parent_source_ids = (SELECT getBuildingParentIds(s.source_id)) ; update wl_video_source s set s.parent_source_ids = (SELECT getBuildingParentIds(s.source_id)) ;
</sql> </sql>
</changeSet> </changeSet>
<changeSet author="keyong" id="1645149948-1">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="wl_signal_classify"/>
</not>
</preConditions>
<comment>create table wl_signal_classify 用于点图装备状态颜色展示等</comment>
<sql>
CREATE TABLE `wl_signal_classify` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`type_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '量测枚举key',
`type_name` varchar(20) DEFAULT NULL COMMENT '类型名称',
`emergency_level_color` varchar(20) DEFAULT NULL COMMENT '十六进制颜色',
`is_alarm` bit(1) DEFAULT b'0' COMMENT '是否告警:0-否;1-是',
`emergency_level` varchar(10) DEFAULT NULL COMMENT '紧急程度枚举(1:紧急,2:严重,3:轻微,4:正常,5:无效,6:备用,7:其他)',
`emergency_level_describe` varchar(20) DEFAULT NULL COMMENT '紧急程度描述',
`create_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=20220218 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='信号分类量测枚举表';
</sql>
</changeSet>
<changeSet author="keyong" id="1645152102-1">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_index" columnName="emergency_level_color"/>
</not>
</preConditions>
<comment>wl_equipment_index add `emergency_level_color`</comment>
<sql>
ALTER TABLE `wl_equipment_index` ADD COLUMN `emergency_level_color` varchar(20) DEFAULT NULL COMMENT '十六进制颜色',
ADD COLUMN `is_alarm` bit(1) DEFAULT b'0' COMMENT '是否告警:0-否;1-是',
ADD COLUMN `emergency_level` varchar(10) DEFAULT NULL COMMENT '紧急程度枚举(1:紧急,2:严重,3:轻微,4:正常,5:无效,6:备用,7:其他)',
ADD COLUMN `emergency_level_describe` varchar(20) DEFAULT NULL COMMENT '紧急程度描述';
</sql>
</changeSet>
<changeSet author="keyong" id="1645149948-2">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_car_property" columnName="emergency_level_color"/>
</not>
</preConditions>
<comment>wl_car_property add `emergency_level_color`</comment>
<sql>
ALTER TABLE `wl_car_property` ADD COLUMN `emergency_level_color` varchar(20) DEFAULT NULL COMMENT '十六进制颜色',
ADD COLUMN `is_alarm` bit(1) DEFAULT b'0' COMMENT '是否告警:0-否;1-是',
ADD COLUMN `emergency_level` varchar(10) DEFAULT NULL COMMENT '紧急程度枚举(1:紧急,2:严重,3:轻微,4:正常,5:无效,6:备用,7:其他)',
ADD COLUMN `emergency_level_describe` varchar(20) DEFAULT NULL COMMENT '紧急程度描述';
</sql>
</changeSet>
<changeSet author="keyong" id="1645149948-3">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_specific_index" columnName="emergency_level_color"/>
</not>
</preConditions>
<comment>wl_equipment_specific_index add `emergency_level_color`</comment>
<sql>
ALTER TABLE `wl_equipment_specific_index` ADD COLUMN `emergency_level_color` varchar(20) DEFAULT NULL COMMENT '十六进制颜色',
ADD COLUMN `is_alarm` bit(1) DEFAULT b'0' COMMENT '是否告警:0-否;1-是',
ADD COLUMN `emergency_level` varchar(10) DEFAULT NULL COMMENT '紧急程度枚举(1:紧急,2:严重,3:轻微,4:正常,5:无效,6:备用,7:其他)',
ADD COLUMN `emergency_level_describe` varchar(20) DEFAULT NULL COMMENT '紧急程度描述';
</sql>
</changeSet>
<changeSet author="keyong" id="1645149948-4">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_specific_alarm" columnName="emergency_level_color"/>
</not>
</preConditions>
<comment>wl_equipment_specific_alarm add `emergency_level_color`</comment>
<sql>
ALTER TABLE `wl_equipment_specific_alarm` ADD COLUMN `emergency_level_color` varchar(20) DEFAULT NULL COMMENT '十六进制颜色',
ADD COLUMN `emergency_level` varchar(10) DEFAULT NULL COMMENT '紧急程度枚举(1:紧急,2:严重,3:轻微,4:正常,5:无效,6:备用,7:其他)',
ADD COLUMN `emergency_level_describe` varchar(20) DEFAULT NULL COMMENT '紧急程度描述';
</sql>
</changeSet>
<changeSet author="keyong" id="1645149948-5">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_specific_alarm_log" columnName="emergency_level_color"/>
</not>
</preConditions>
<comment>wl_equipment_specific_alarm_log add `emergency_level_color`</comment>
<sql>
ALTER TABLE `wl_equipment_specific_alarm_log` ADD COLUMN `emergency_level_color` varchar(20) DEFAULT NULL COMMENT '十六进制颜色',
ADD COLUMN `emergency_level` varchar(10) DEFAULT NULL COMMENT '紧急程度枚举(1:紧急,2:严重,3:轻微,4:正常,5:无效,6:备用,7:其他)',
ADD COLUMN `emergency_level_describe` varchar(20) DEFAULT NULL COMMENT '紧急程度描述';
</sql>
</changeSet>
<changeSet author="keyong" id="1645149948-6">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_alarm_report_day" columnName="is_alarm"/>
</not>
</preConditions>
<comment>wl_equipment_alarm_report_day add `is_alarm`</comment>
<sql>
ALTER TABLE `wl_equipment_alarm_report_day` ADD COLUMN `is_alarm` bit(1) DEFAULT b'0' COMMENT '是否告警:0-否;1-是';
</sql>
</changeSet>
<changeSet author="keyong" id="1645149948-7">
<preConditions onFail="MARK_RAN">
<tableExists tableName="wl_signal_classify"/>
</preConditions>
<comment>插入基础数据 wl_signal_classify</comment>
<sql>
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220218, 'BREAKDOWN', '故障', '#D87A16', b'1', '2', '严重', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220219, 'SHIELD', '屏蔽', '#177DDC', b'1', '6', '一般', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220220, 'RUNSTATE', '运行状态', '#49AA19', b'0', '4', '正常', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220221, 'Alarm', '告警', '#D32029', b'1', '1', '紧急', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220222, 'HearBeat', '心跳', '#49AA19', b'0', '4', '正常', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220223, 'Action', '动作', '#E8D639', b'1', '3', '轻微', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220224, 'Reset', '复位', '#49AA19', b'0', '4', '正常', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220225, 'FIREALARM', '火警', '#D32029', b'1', '1', '紧急', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220226, 'Abnormal', '异常', '#D87A16', b'1', '2', '严重', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220227, 'FeedBack', '反馈', '#D87A16', b'1', '2', '严重', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220228, 'PowerLoss', '失电', '#D87A16', b'1', '2', '严重', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220229, 'StartStop', '启停', '#D87A16', b'1', '2', '严重', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220230, 'Activation', '激活', '#D87A16', b'1', '2', '严重', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220231, 'Status', '状态信号', '#49AA19', b'0', '4', '正常', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220232, 'Normal', '正常信号', '#49AA19', b'0', '4', '正常', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220233, 'Indicate', '指示信号', '#E8D639', b'1', '3', '轻微', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220234, 'Tripping', '跳闸', '#D87A16', b'1', '2', '严重', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220235, 'OilLeak', '漏油', '#D32029', b'1', '1', '紧急', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220236, 'Recovery', '恢复', '#49AA19', b'1', '4', '正常', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220237, 'Quarantine', '隔离', '#E8D639', b'1', '3', '轻微', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220238, 'Release', '释放', '#E8D639', b'1', '3', '轻微', now());
INSERT INTO `wl_signal_classify`(`id`, `type_code`, `type_name`, `emergency_level_color`, `is_alarm`, `emergency_level`, `emergency_level_describe`, `create_date`) VALUES (20220239, 'Control', '控制', '#E8D639', b'1', '3', '轻微', now());
UPDATE wl_equipment_index wei
SET wei.emergency_level_color = (
SELECT
emergency_level_color
FROM
wl_signal_classify wsc
WHERE
upper( wsc.type_code ) = upper( wei.type_code )
),
wei.is_alarm = (
SELECT
is_alarm
FROM
wl_signal_classify wsc
WHERE
upper( wsc.type_code ) = upper( wei.type_code )
),
wei.emergency_level = (
SELECT
emergency_level
FROM
wl_signal_classify wsc
WHERE
upper( wsc.type_code ) = upper( wei.type_code )
),
wei.emergency_level_describe = (
SELECT
emergency_level_describe
FROM
wl_signal_classify wsc
WHERE
upper( wsc.type_code ) = upper( wei.type_code )
);
UPDATE wl_car_property cp
SET cp.emergency_level_color = ( SELECT emergency_level_color FROM wl_equipment_index wei WHERE cp.equipment_index_id = wei.id ),
cp.is_alarm = ( SELECT is_alarm FROM wl_equipment_index wei WHERE cp.equipment_index_id = wei.id ),
cp.emergency_level = ( SELECT emergency_level FROM wl_equipment_index wei WHERE cp.equipment_index_id = wei.id ),
cp.emergency_level_describe = ( SELECT emergency_level_describe FROM wl_equipment_index wei WHERE cp.equipment_index_id = wei.id );
UPDATE wl_equipment_specific_index esi
SET esi.emergency_level_color = ( SELECT emergency_level_color FROM wl_equipment_index wei WHERE esi.equipment_index_id = wei.id ),
esi.is_alarm = ( SELECT is_alarm FROM wl_equipment_index wei WHERE esi.equipment_index_id = wei.id ),
esi.emergency_level = ( SELECT emergency_level FROM wl_equipment_index wei WHERE esi.equipment_index_id = wei.id ),
esi.emergency_level_describe = ( SELECT emergency_level_describe FROM wl_equipment_index wei WHERE esi.equipment_index_id = wei.id );
UPDATE wl_equipment_specific_alarm esa
SET esa.emergency_level_color = ( SELECT emergency_level_color FROM wl_equipment_index wei WHERE esa.equipment_index_id = wei.id ),
esa.emergency_level = ( SELECT emergency_level FROM wl_equipment_index wei WHERE esa.equipment_index_id = wei.id ),
esa.emergency_level_describe = ( SELECT emergency_level_describe FROM wl_equipment_index wei WHERE esa.equipment_index_id = wei.id );
UPDATE wl_equipment_specific_alarm_log esal
SET esal.emergency_level_color = ( SELECT emergency_level_color FROM wl_equipment_index wei WHERE esal.equipment_index_id = wei.id ),
esal.emergency_level = ( SELECT emergency_level FROM wl_equipment_index wei WHERE esal.equipment_index_id = wei.id ),
esal.emergency_level_describe = ( SELECT emergency_level_describe FROM wl_equipment_index wei WHERE esal.equipment_index_id = wei.id );
UPDATE wl_equipment_alarm_report_day eard
SET eard.is_alarm = ( SELECT is_alarm FROM wl_equipment_index wei WHERE eard.index_id = wei.id );
</sql>
</changeSet>
</databaseChangeLog> </databaseChangeLog>
\ No newline at end of file
...@@ -8,15 +8,22 @@ ...@@ -8,15 +8,22 @@
wcp.value AS value, wcp.value AS value,
wcp.remark AS remark, wcp.remark AS remark,
wcp.equipment_index_id AS equipmentIndexId, wcp.equipment_index_id AS equipmentIndexId,
wei.name_key AS nameKey wei.name_key AS nameKey,
wcp.is_alarm as isAlarm,
wcp.emergency_level_color as emergencyLevelColor,
wcp.emergency_level as emergencyLevel,
wcp.emergency_level_describe as emergencyLevelDescribe,
wc.iot_code as iotCode,
wc.`name` as carName,
wc.car_num as carNum,
wei.unit unitName,
wei.group_name as groupName
FROM FROM
wl_car_property wcp wl_car_property wcp
LEFT JOIN wl_car AS wc ON wc.id = wcp.car_id LEFT JOIN wl_car AS wc ON wc.id = wcp.car_id
LEFT JOIN wl_equipment_index AS wei ON wei.id = wcp.equipment_index_id LEFT JOIN wl_equipment_index AS wei ON wei.id = wcp.equipment_index_id
WHERE WHERE
wc.iot_code = #{iotCode} wc.iot_code = #{iotCode} and wei.is_iot = true
AND
TRIM(wei.name_key) != '' AND wei.name_key IS NOT NULL
</select> </select>
<select id="getCarPropertyList" resultType="com.yeejoin.equipmanage.common.entity.vo.CarPropertyVo"> <select id="getCarPropertyList" resultType="com.yeejoin.equipmanage.common.entity.vo.CarPropertyVo">
SELECT SELECT
......
...@@ -89,7 +89,8 @@ ...@@ -89,7 +89,8 @@
null as group_name, null as group_name,
null as index_id, null as index_id,
0 as is_importent_parameter, 0 as is_importent_parameter,
0 as sort_num 0 as sort_num,
null as value_enum
from wl_equipment from wl_equipment
where where
id = #{id} id = #{id}
...@@ -108,7 +109,8 @@ ...@@ -108,7 +109,8 @@
group_name, group_name,
index_definition_id, index_definition_id,
1 as is_importent_parameter, 1 as is_importent_parameter,
sort_num sort_num,
value_enum
from from
wl_equipment_index wl_equipment_index
where equipment_id = #{id} where equipment_id = #{id}
...@@ -154,7 +156,8 @@ ...@@ -154,7 +156,8 @@
1 as is_importent_parameter, 1 as is_importent_parameter,
sort_num, sort_num,
type, type,
is_trend is_trend,
value_enum
from from
wl_equipment_index wl_equipment_index
where id = #{id} where id = #{id}
......
...@@ -110,4 +110,42 @@ ...@@ -110,4 +110,42 @@
</if> </if>
</where> </where>
</select> </select>
<select id="getFireEquipAlarmLogDetailsById"
resultType="com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentFireAlarm">
SELECT
sal.id,
es.id AS fireEquipmentId,
si.id AS equipmentMeasurementId,
ei.name_key AS fieldName,
ei.`name` AS fieldLabel,
IFNULL(si.`value`,'') AS `value`,
sa.frequency,
sa.`status`,
sa.type,
IFNULL(es.code,'') AS fireEquipmentMRid,
'' AS equipmentMeasurementMRid,
ed.`name` AS fireEquipmentName,
sa.recovery_date,
sal.create_date,
sal.update_date,
sal.alarm_reason AS description,
IFNULL(sal.equipment_specific_name,'') AS `name`,
IFNULL(sal.equipment_specific_code,'') AS mrid
FROM
wl_equipment_specific_alarm_log sal
LEFT JOIN wl_equipment_specific_alarm sa ON sal.equipment_specific_alarm_id = sa.id
LEFT JOIN wl_equipment_specific es ON sa.equipment_specific_id = es.id
LEFT JOIN wl_equipment_specific_index si ON es.id = si.equipment_specific_id
LEFT JOIN wl_equipment_detail ed ON ed.id = es.equipment_detail_id
LEFT JOIN wl_equipment_index ei ON si.equipment_index_id = ei.id
<where>
<if test="list != null and list.size > 0">
sal.id IN
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -57,14 +57,21 @@ ...@@ -57,14 +57,21 @@
ed.equipment_id AS equipmentId, ed.equipment_id AS equipmentId,
ed.id AS equipmentDetailId, ed.id AS equipmentDetailId,
wes.code as equipmentSpecificCode, wes.code as equipmentSpecificCode,
wes.system_id as systemId 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,
TRIM(CONCAT_WS(' ',wes.position,sd.description)) AS location,
sd.warehouse_structure_id AS buildId
FROM FROM
wl_equipment_specific_index AS wesi wl_equipment_specific_index AS wesi
LEFT JOIN wl_equipment_specific AS wes ON wes.id = wesi.equipment_specific_id 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_detail ed ON ed.id = wes.equipment_detail_id
LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id
LEFT JOIN wl_stock_detail sd ON sd.equipment_specific_id = wes.id
WHERE WHERE
wes.iot_code = #{iotCode} wes.iot_code = #{iotCode} and wei.is_iot = true
</select> </select>
<select id="getEquipmentSpeIndexByIotCode" <select id="getEquipmentSpeIndexByIotCode"
......
...@@ -275,13 +275,15 @@ ...@@ -275,13 +275,15 @@
SELECT SELECT
equipindex.`value`, equipindex.`value`,
ei.type_code AS 'typeCode', ei.type_code AS 'typeCode',
es.qr_code AS 'qrCode' es.qr_code AS 'qrCode',
equipindex.color AS emergencyLevelColor
FROM FROM
( (
SELECT SELECT
esi.equipment_index_id, esi.equipment_index_id,
esi.equipment_specific_id, esi.equipment_specific_id,
esi.`value` esi.`value`,
esi.emergency_level_color as color
FROM FROM
wl_equipment_specific_index esi, wl_equipment_specific_index esi,
( (
...@@ -315,12 +317,15 @@ ...@@ -315,12 +317,15 @@
es.realtime_iot_index_name AS 'indexName', es.realtime_iot_index_name AS 'indexName',
es.qr_code AS 'qrCode', es.qr_code AS 'qrCode',
es.iot_code AS 'iotCode', es.iot_code AS 'iotCode',
es.realtime_iot_index_value AS 'value' es.realtime_iot_index_value AS 'value',
sc.emergency_level_color AS 'emergencyLevelColor'
FROM FROM
wl_equipment_specific es, wl_equipment_specific es,
wl_equipment_index ei wl_equipment_index ei,
wl_signal_classify sc
WHERE WHERE
es.realtime_iot_index_id = ei.id es.realtime_iot_index_id = ei.id
AND upper(ei.type_code) = upper(sc.type_code)
AND find_in_set( AND find_in_set(
es.id, es.id,
( (
...@@ -1502,5 +1507,14 @@ ...@@ -1502,5 +1507,14 @@
LEFT JOIN wl_equipment_category AS wlec ON wlec.id = wle.category_id LEFT JOIN wl_equipment_category AS wlec ON wlec.id = wle.category_id
WHERE WHERE
spe.warehouse_structure_id =#{floorId} spe.warehouse_structure_id =#{floorId}
</select>
<select id="getStationInfo" resultType="Map">
SELECT
`name` AS stationName,
station_code AS stationCode
FROM
f_station_info
LIMIT 1
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -355,7 +355,6 @@ ...@@ -355,7 +355,6 @@
spein.value_label spein.value_label
), ),
concat( concat(
IF ( IF (
( (
ISNULL(spein.value_label) ISNULL(spein.value_label)
...@@ -367,7 +366,13 @@ ...@@ -367,7 +366,13 @@
' ', ' ',
eqin.unit eqin.unit
) )
) AS `value` ) AS `value`,
spein.emergency_level_color AS color,
spein.is_alarm AS isAlarm,
spein.emergency_level AS emergencyLevel,
spein.emergency_level_describe AS emergencyLevelDescribe,
spein.`value` AS indexValue,
spein.equipment_index_name AS indexName
FROM FROM
wl_equipment_specific_index AS spein wl_equipment_specific_index AS spein
LEFT JOIN wl_equipment_index AS eqin ON spein.equipment_index_id = eqin.id LEFT JOIN wl_equipment_index AS eqin ON spein.equipment_index_id = eqin.id
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.equipmanage.mapper.SignalClassifyMapper">
</mapper>
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