瀏覽代碼

添加taos查询相关业务类

全业务考评 1 年之前
父節點
當前提交
fbdcf1be6e

+ 118 - 0
power-fitting-JN/src/main/java/com.gyee.power.fitting/model/vo/AlarmTag.java

@@ -0,0 +1,118 @@
+package com.gyee.power.fitting.model.vo;
+
+import lombok.Data;
+
+@Data
+public class AlarmTag {
+
+    /**
+     * 表名
+     */
+    private String id;
+
+    /**
+     * 时间戳
+     */
+    private Long ts;
+
+    /**
+     * 当前值
+     */
+    private Double val;
+
+    /**
+     * 报警类别,0触发,1触发,-1变化触发,大于等于3ai点触发
+     */
+    private Integer triggerType=0;
+
+    /**
+     * 测点
+     */
+    private String tagId;
+
+    /**
+     * 过去值
+     */
+    private Double oval=0.0;
+
+    /**
+     * 报警级别
+     */
+    private Integer rank;
+
+    /**
+     * 结束时间戳
+     */
+    private Long endts;
+    /**
+     * 报警时长
+     */
+    private Double timeLong;
+    /**
+     * 报警描述
+     */
+    private String description;
+
+
+    private  Boolean confirmed;
+
+    private String superTalbe;
+
+    /**
+     * 报警类型 /自定义报警 custom,风机 windturbine,场站 station,升压站 booststation
+     */
+    private String alarmType;
+
+    /**
+     * 设备类型,场站 station,风机 windturbine,升压站 booststation
+     */
+    private String deviceType;
+
+    /**
+     * 更新并检测是否触发报警
+     */
+    public Boolean updateAndCheck(PointDataTs pointData) {
+
+        if (pointData.getPointValueInDouble() == oval) {
+            return false;
+        }
+        ts = pointData.getPointTime();
+        oval = pointData.getPointValueInDouble();
+
+        endts= pointData.getPointTime();
+        val=0.0;
+        if(triggerType==-1)
+        {
+            val=1.0;
+        }else  if(triggerType==0)
+        {
+            if (oval == 0)
+            {
+                val=1.0;
+            }else
+            {
+                val=0.0;
+                return false;
+            }
+        }else  if(triggerType==1)
+        {
+            if (oval == 1)
+            {
+                val=1.0;
+            }else
+            {
+                val=0.0;
+                return false;
+            }
+        }else {
+            if (oval.intValue() == triggerType) {
+                val=1.0;
+            } else if (oval == 0) {
+                val=0.0;
+                return false;
+            }
+        }
+
+        return true;
+    }
+}

+ 20 - 0
power-fitting-JN/src/main/java/com.gyee.power.fitting/model/vo/PointDataTs.java

@@ -0,0 +1,20 @@
+package com.gyee.power.fitting.model.vo;
+
+import lombok.Data;
+
+@Data
+public class PointDataTs {
+
+	private double pointValueInDouble;
+
+	private double pointValueInDouble2;
+
+	private Long pointTime;
+
+	private String pointValue;
+
+	private String pointName;// z自定义名称
+
+	private String ednaId;// edna全局id
+
+}

+ 60 - 0
power-fitting-JN/src/main/java/com.gyee.power.fitting/service/IAlarmTsService.java

@@ -0,0 +1,60 @@
+package com.gyee.power.fitting.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.power.fitting.model.AlarmTs;
+import com.gyee.power.fitting.model.vo.AlarmSimpleVo;
+import com.gyee.power.fitting.model.vo.AlarmTag;
+import com.gyee.power.fitting.model.vo.AlarmTsVo;
+import com.gyee.power.fitting.model.vo.AlarmVo;
+
+import java.util.List;
+
+
+public interface IAlarmTsService extends IService<AlarmTs> {
+
+    public void createSuperTable(String type);
+
+
+    public void dropSuperTable(String type);
+
+
+    public int createTable(AlarmVo vo) ;
+
+    public int createTable(String tbName, String alarmid, String alarmtype,
+                           String characteristic, String components,
+                           String description,
+                           String deviceid, String devicename,
+                           String devicetype, Boolean enabled,
+                           String lineid, String linename,
+                           String modelId, String projectid,
+                           String projectname, Integer rank,
+                           Boolean resettable, String stationid,
+                           String stationname, String subcomponents,
+                           String suffix, String tagid,
+                           Integer triggertype, String uniformcode,String superTableName
+
+    );
+
+
+
+    public int insertOne(AlarmTs one);
+
+
+
+
+    public void insertList(List<AlarmTag>  alarmTags ) ;
+
+    public void createSql(List<AlarmTag>  alarmTags )  ;
+
+
+    public List<AlarmVo> findTags(String stbaleName);
+
+    public List<AlarmTsVo> selectByWpGroup(String superTableName, String stationid, long begin, long end);
+
+
+    public   List<AlarmVo> selectByTbName(String tbName,long limit,long offset);
+
+    public List<AlarmSimpleVo> selectLastRowByTbname(String superTableName, String tbnames);
+}
+

+ 173 - 0
power-fitting-JN/src/main/java/com.gyee.power.fitting/service/impl/AlarmTsServiceImpl.java

@@ -0,0 +1,173 @@
+package com.gyee.power.fitting.service.impl;
+
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.power.fitting.common.config.StringUtils;
+import com.gyee.power.fitting.mapper.AlarmTsMapper;
+import com.gyee.power.fitting.model.AlarmTs;
+import com.gyee.power.fitting.model.vo.AlarmSimpleVo;
+import com.gyee.power.fitting.model.vo.AlarmTag;
+import com.gyee.power.fitting.model.vo.AlarmTsVo;
+import com.gyee.power.fitting.model.vo.AlarmVo;
+import com.gyee.power.fitting.service.IAlarmTsService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Service
+public class AlarmTsServiceImpl extends ServiceImpl<AlarmTsMapper, AlarmTs> implements IAlarmTsService {
+
+    @Resource
+    private AlarmTsMapper alarmTsMapper;
+
+
+
+    public void createSuperTable(String type) {
+
+        alarmTsMapper.createAlarmSuperTable(type);
+
+    }
+
+
+    public void dropSuperTable(String type) {
+
+        alarmTsMapper.dropSuperTable(type);
+
+    }
+
+    public int createTable(String tbName, String alarmid, String alarmtype,
+                           String characteristic, String components,
+                           String description,
+                           String deviceid, String devicename,
+                           String devicetype, Boolean enabled,
+                           String lineid, String linename,
+                           String modelId, String projectid,
+                           String projectname, Integer rank,
+                           Boolean resettable, String stationid,
+                           String stationname, String subcomponents,
+                           String suffix, String tagid,
+                           Integer triggertype, String uniformcode,String superTableName
+
+    ) {
+        return alarmTsMapper.createTable(tbName, alarmid, alarmtype,
+                characteristic, components,
+                description,
+                deviceid, devicename,
+                devicetype, enabled,
+                lineid, linename,
+                modelId, projectid,
+                projectname, rank,
+                resettable, stationid,
+                stationname, subcomponents,
+                suffix, tagid,
+                triggertype, uniformcode,superTableName);
+    }
+
+
+    public int createTable(AlarmVo vo) {
+        return alarmTsMapper.createTable(vo);
+    }
+
+
+
+    public int insertOne(AlarmTs one) {
+        return alarmTsMapper.insertOne(one);
+    }
+
+
+
+    public void insertList(List<AlarmTag>  alarmTags )  {
+
+        if(StringUtils.notEmp(alarmTags) && !alarmTags.isEmpty())
+        {
+
+            createSql(alarmTags);
+        }
+
+
+    }
+
+    public void createSql(List<AlarmTag>  alarmTags )   {
+
+        StringBuilder sb = new StringBuilder("INSERT INTO ");
+
+        int i=0;
+        for (AlarmTag tag:alarmTags) {
+
+
+            String tableName = tag.getId();
+            StringBuilder sub_sb = new StringBuilder(tableName);
+
+            sub_sb.append( " values ");
+            sub_sb.append(" (");
+            sub_sb.append(tag.getTs()).append(",").append(tag.getVal().intValue()).append(",").append(tag.getConfirmed()).append(",")
+                    .append(tag.getEndts()).append(",").append(tag.getTimeLong());
+            sub_sb.append(" ) ");
+            i++;
+            if (i==100) {
+                alarmTsMapper.insertList(String.valueOf(sb));
+                sb = new StringBuilder("INSERT INTO ");
+                i=0;
+            }
+            sb.append(sub_sb);
+
+        }
+
+        if(i!=0)
+        {
+            alarmTsMapper.insertList(String.valueOf(sb));
+        }
+
+    }
+    public List<AlarmVo> findTags(String stbaleName)
+    {
+        List<AlarmVo> ls=new ArrayList<>();
+        if(StringUtils.notEmp(stbaleName))
+        {
+           ls= alarmTsMapper.findTags(stbaleName);
+        }
+
+        return ls;
+    }
+
+    @Override
+    public List<AlarmTsVo> selectByWpGroup(String superTableName, String stationid, long begin, long end) {
+        List<AlarmTsVo> ls=new ArrayList<>();
+        if(StringUtils.notEmp(superTableName) && StringUtils.notEmp(stationid) && StringUtils.notEmp(begin) && StringUtils.notEmp(end))
+        {
+            ls= alarmTsMapper.selectByWpGroup(superTableName, stationid, begin, end);
+        }
+
+        return ls;
+    }
+
+
+
+    public   List<AlarmVo> selectByTbName(String tbName,long limit,long offset)
+    {
+        List<AlarmVo> ls=new ArrayList<>();
+        if(StringUtils.notEmp(tbName) && StringUtils.notEmp(limit) && StringUtils.notEmp(offset))
+        {
+            ls= alarmTsMapper.selectByTbName(tbName, limit, offset);
+        }
+
+        return ls;
+    }
+
+    public List<AlarmSimpleVo> selectLastRowByTbname(String superTableName, String tbnames){
+        List<AlarmSimpleVo> ls=new ArrayList<>();
+        if(StringUtils.notEmp(superTableName) && StringUtils.notEmp(tbnames))
+        {
+            StringBuilder sb=new StringBuilder();
+            sb.append("select last_row(*),tbname from ").append(superTableName).append(" where tbname in( ").append(tbnames).append(" ) group by tbname");
+
+            ls= alarmTsMapper.selectLastRowByTbname(String.valueOf(sb));
+        }
+
+        return ls;
+    }
+}