15928045575 2 سال پیش
والد
کامیت
8c9ab9b023

+ 2 - 0
slope-modules/slope-detection/src/main/java/com/sckw/slope/detection/dao/tdengine/SlopeDataMapper.java

@@ -30,6 +30,8 @@ public interface SlopeDataMapper extends BaseMapper<SlopeData> {
 
 
     List<SlopeData> selectLineList(@Param("snCode") String snCode, @Param("item") String item, @Param("dateStart") String dateStart, @Param("dateEnd") String dateEnd);
     List<SlopeData> selectLineList(@Param("snCode") String snCode, @Param("item") String item, @Param("dateStart") String dateStart, @Param("dateEnd") String dateEnd);
 
 
+    List<SlopeData> selectLineListByArray(@Param("snCode") String snCode, @Param("parts") String[] parts, @Param("dateStart") String dateStart, @Param("dateEnd") String dateEnd);
+
     int insertData(@Param("slopeData") SlopeData slopeData);
     int insertData(@Param("slopeData") SlopeData slopeData);
 
 
     List<SlopeData> selectListByLineOrderByCreateTime(@Param("snCode") String snCode, @Param("item") String item);
     List<SlopeData> selectListByLineOrderByCreateTime(@Param("snCode") String snCode, @Param("item") String item);

+ 15 - 0
slope-modules/slope-detection/src/main/java/com/sckw/slope/detection/model/vo/DeviceIntegrationVo.java

@@ -24,6 +24,11 @@ public class DeviceIntegrationVo implements Serializable {
      */
      */
     private Long deviceId;
     private Long deviceId;
 
 
+    /**
+     * 单位
+     */
+    private Long unit;
+
     /**
     /**
      * 企业id
      * 企业id
      */
      */
@@ -75,6 +80,16 @@ public class DeviceIntegrationVo implements Serializable {
      */
      */
     private String integrationBaseData;
     private String integrationBaseData;
 
 
+    /**
+     *
+     */
+    private String integrationCurrentBaseData;
+
+    /**
+     *偏移
+     */
+    private String offset;
+
     /**
     /**
      *当前测量值
      *当前测量值
      */
      */

+ 12 - 0
slope-modules/slope-detection/src/main/java/com/sckw/slope/detection/model/vo/DevicePartModelVo.java

@@ -34,10 +34,20 @@ public class DevicePartModelVo implements Serializable {
      */
      */
     private String partNameDesc;
     private String partNameDesc;
 
 
+    /**
+     * 要素-单位
+     */
+    private String unit;
+
     /**
     /**
      * 要素基准
      * 要素基准
      */
      */
     private String partBaseData;
     private String partBaseData;
+
+    /**
+     * 当前基准值
+     */
+    private String partCurrentBaseData;
     /**
     /**
      * 当前测量值
      * 当前测量值
      */
      */
@@ -58,6 +68,8 @@ public class DevicePartModelVo implements Serializable {
 
 
     private Integer delFlag;
     private Integer delFlag;
 
 
+    private String offset;
+
 
 
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;

+ 25 - 4
slope-modules/slope-detection/src/main/java/com/sckw/slope/detection/model/vo/DeviceVo.java

@@ -82,6 +82,17 @@ public class DeviceVo implements Serializable {
      */
      */
     private Long createBy;
     private Long createBy;
 
 
+    /**
+     * 变更人
+     */
+    private Long changeBy;
+
+    /**
+     * 变更人
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime changeTime;
+
     /**
     /**
      * 创建时间
      * 创建时间
      */
      */
@@ -126,17 +137,17 @@ public class DeviceVo implements Serializable {
     /**
     /**
      * 厂商联系人
      * 厂商联系人
      */
      */
-    private String manufacturer_contacts;
+    private String manufacturerContacts;
 
 
     /**
     /**
      * 厂商联系人电话
      * 厂商联系人电话
      */
      */
-    private String manufacturer_phone;
+    private String manufacturerPhone;
 
 
     /**
     /**
      * 型号名称
      * 型号名称
      */
      */
-    private String m_name;
+    private String mName;
 
 
     /**
     /**
      * 数据告警次数
      * 数据告警次数
@@ -153,10 +164,20 @@ public class DeviceVo implements Serializable {
      */
      */
     private String projectName;
     private String projectName;
 
 
+    /**
+     * 项目名称id
+     */
+    private String projectId;
+
+    /**
+     * 产品类型
+     */
+    private Integer deviceType;
+
     /**
     /**
      * 产品类型
      * 产品类型
      */
      */
-    private Long deviceType;
+    private String  deviceTypeName;
 
 
     /**
     /**
      * 产品类型
      * 产品类型

+ 38 - 8
slope-modules/slope-detection/src/main/java/com/sckw/slope/detection/service/BackTrackService.java

@@ -32,6 +32,7 @@ import org.springframework.util.CollectionUtils;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * @author sky
  * @author sky
@@ -88,13 +89,15 @@ public class BackTrackService {
         String[] arr = parts.split(",");
         String[] arr = parts.split(",");
         List<String> list = Arrays.asList(arr);
         List<String> list = Arrays.asList(arr);
         List<KwsDeviceReference> references = deviceReferenceMapper.selectList(new LambdaQueryWrapper<KwsDeviceReference>()
         List<KwsDeviceReference> references = deviceReferenceMapper.selectList(new LambdaQueryWrapper<KwsDeviceReference>()
-                .in(KwsDeviceReference::getItem, list)
+                .in(KwsDeviceReference::getId, list)
                 .in(KwsDeviceReference::getDeviceId, devicesId)
                 .in(KwsDeviceReference::getDeviceId, devicesId)
                 .eq(KwsDeviceReference::getDelFlag, NumberConstant.ZERO)
                 .eq(KwsDeviceReference::getDelFlag, NumberConstant.ZERO)
         );
         );
         //获取对应的设备
         //获取对应的设备
         List<Long> devicesIds = references.stream().map(KwsDeviceReference::getDeviceId).toList();
         List<Long> devicesIds = references.stream().map(KwsDeviceReference::getDeviceId).toList();
-
+        if(Objects.isNull(devicesIds)){
+            return HttpResult.ok(Collections.emptyList());
+        }
         List<KwsDevice> devices = deviceMapper.selectList(new LambdaQueryWrapper<KwsDevice>()
         List<KwsDevice> devices = deviceMapper.selectList(new LambdaQueryWrapper<KwsDevice>()
                 .in(KwsDevice::getId, devicesIds)
                 .in(KwsDevice::getId, devicesIds)
                 .eq(KwsDevice::getDelFlag, NumberConstant.ZERO)
                 .eq(KwsDevice::getDelFlag, NumberConstant.ZERO)
@@ -106,9 +109,27 @@ public class BackTrackService {
         //先查询设备
         //先查询设备
         KwsDevice deviceHas = deviceMapper.selectOne(new LambdaQueryWrapper<KwsDevice>()
         KwsDevice deviceHas = deviceMapper.selectOne(new LambdaQueryWrapper<KwsDevice>()
                 .eq(KwsDevice::getSnCode, snCode));
                 .eq(KwsDevice::getSnCode, snCode));
-        if(!DeviceEnum.ALREADY_REFERRED_TO.getStatus().equals(deviceHas.getStatus())){//已基准
-            List<SlopeData> selectedData = slopeDataMapper.selectLineList(snCode, parts, dateStart, dateEnd);
-            return HttpResult.ok(selectedData);
+        String[] arr = parts.split(",");
+        if(!DeviceEnum.ALREADY_REFERRED_TO.getStatus().equals(deviceHas.getStatus().toString())){//未基准
+
+            List<SlopeData> selectedData = slopeDataMapper.selectLineListByArray(snCode, arr, dateStart, dateEnd);
+            if (CollectionUtils.isEmpty(selectedData)) {
+               return HttpResult.ok(Collections.emptyList());
+            }
+            Map<String,List<Object>>  map = new HashMap<>();
+            for(SlopeData slop : selectedData){
+                if(slop.getLine().equals(DictItemEnum.getData(slop.getLine()).getValue())){
+                    List<Object> list = new ArrayList<>();
+                    list.add(slop);
+                    if(map.containsKey(slop.getLine())){
+                        map.get(slop.getLine()).add(slop);
+                    }else{
+                        map.put(slop.getLine(),list);
+                    }
+
+                }
+            }
+            return HttpResult.ok(map);
         }
         }
 
 
         Map<String, Object> returnData = new HashMap<>();
         Map<String, Object> returnData = new HashMap<>();
@@ -121,7 +142,10 @@ public class BackTrackService {
         double angleInRadians = 0;
         double angleInRadians = 0;
         for(KwsDeviceReference element : references) {
         for(KwsDeviceReference element : references) {
             if (DictItemEnum.LATITUDE_Y.getValue().equals(element.getItem())) {
             if (DictItemEnum.LATITUDE_Y.getValue().equals(element.getItem())) {
-                angleInRadians = element.getValue().doubleValue();
+                if(!Objects.isNull(element.getValue())){
+                    angleInRadians = element.getValue().doubleValue();
+                }
+
             }
             }
         }
         }
 
 
@@ -133,10 +157,15 @@ public class BackTrackService {
 
 
         //获取偏移量
         //获取偏移量
         Map<String, Object> mapList = new HashMap<>();
         Map<String, Object> mapList = new HashMap<>();
+        for (String st : arr){
+            mapList.put(st,"");
+        }
         for(KwsDeviceReference element : references) {
         for(KwsDeviceReference element : references) {
-            if(!parts.isEmpty() && !parts.contains(element.getItem())){
+            int index = Arrays.binarySearch(arr,element.getItem());
+            if(index<=0){
                 continue;
                 continue;
             }
             }
+
             BigDecimal currentValue =  new BigDecimal("0.00");
             BigDecimal currentValue =  new BigDecimal("0.00");
             if(original == 1){
             if(original == 1){
                 currentValue = element.getOriginalValue();//以原始基准参考
                 currentValue = element.getOriginalValue();//以原始基准参考
@@ -171,8 +200,9 @@ public class BackTrackService {
                     temp.put("offset",offsetValue);
                     temp.put("offset",offsetValue);
                     datemap.add(temp);
                     datemap.add(temp);
                 }
                 }
-                mapList.put(element.getItem(), datemap);
+
             }
             }
+            mapList.put(element.getItem(), datemap);
         }
         }
         returnData.put("references",references);
         returnData.put("references",references);
         returnData.put("threshold",kwsThresholds);
         returnData.put("threshold",kwsThresholds);

+ 58 - 6
slope-modules/slope-detection/src/main/java/com/sckw/slope/detection/service/DeviceService.java

@@ -144,6 +144,17 @@ public class DeviceService {
         }
         }
         List<Long> devicesId = list.stream().map(DeviceVo::getId).toList();
         List<Long> devicesId = list.stream().map(DeviceVo::getId).toList();
         List<Map<String, Long>> alarmData = alarmMapper.selectByDevicesId(devicesId);
         List<Map<String, Long>> alarmData = alarmMapper.selectByDevicesId(devicesId);
+
+        Map<String, SystemDict> deviceType = commonService.getDictList(null, new HashMap<>() {{
+            put("code", DictEnum.DEVICE_TYPE.getCodeType());
+            put("type", "1");
+        }});
+        /*for (SystemDict value : deviceType.values()) {
+            if (vo.getDeviceType().toString().equals(value.getValue())) {
+                vo.setDeviceTypeName(value.getLabel());
+            }
+        }*/
+
         for (DeviceVo vo : list) {
         for (DeviceVo vo : list) {
             vo.setStatusText(DeviceEnum.getName(vo.getStatus()));
             vo.setStatusText(DeviceEnum.getName(vo.getStatus()));
             if (!CollectionUtils.isEmpty(alarmData)) {
             if (!CollectionUtils.isEmpty(alarmData)) {
@@ -158,6 +169,23 @@ public class DeviceService {
                     }*/
                     }*/
                 }
                 }
             }
             }
+            for (SystemDict value : deviceType.values()) {
+                if (vo.getDeviceType().toString().equals(value.getValue())) {
+                    vo.setDeviceTypeName(value.getLabel());
+                }
+            }
+
+
+            KwsDeviceReference deviceHas = deviceReferenceMapper.selectOne(new LambdaQueryWrapper<KwsDeviceReference>()
+                    .eq(KwsDeviceReference::getDeviceId, vo.getId())
+                    .eq(KwsDeviceReference::getDelFlag, NumberConstant.ZERO)
+                    .last("LIMIT 1")
+                    .orderByDesc(KwsDeviceReference::getId)
+            );
+            if(!Objects.isNull(deviceHas)){
+                vo.setChangeBy(deviceHas.getCreateBy());
+                vo.setChangeTime(deviceHas.getCreateTime());
+            }
         }
         }
         return PageRes.build(pageInfo, list);
         return PageRes.build(pageInfo, list);
     }
     }
@@ -227,9 +255,10 @@ public class DeviceService {
         KwsDeviceModel deviceModel = deviceModelMapper.selectOne(new LambdaQueryWrapper<KwsDeviceModel>()
         KwsDeviceModel deviceModel = deviceModelMapper.selectOne(new LambdaQueryWrapper<KwsDeviceModel>()
                 .eq(KwsDeviceModel::getId, vo.getModelId()));
                 .eq(KwsDeviceModel::getId, vo.getModelId()));
         if (deviceModel != null) {
         if (deviceModel != null) {
+            vo.setDeviceType(Integer.parseInt(deviceModel.getDeviceType()));
             vo.setManufacturer(deviceModel.getManufacturer());
             vo.setManufacturer(deviceModel.getManufacturer());
-            vo.setManufacturer_contacts(deviceModel.getManufacturerContacts());
-            vo.setManufacturer_phone(deviceModel.getManufacturerPhone());
+            vo.setManufacturerContacts(deviceModel.getManufacturerContacts());
+            vo.setManufacturerPhone(deviceModel.getManufacturerPhone());
         }
         }
         //获取字典
         //获取字典
         Map<String, SystemDict> dictList = commonService.getDictList(null, new HashMap<>() {{
         Map<String, SystemDict> dictList = commonService.getDictList(null, new HashMap<>() {{
@@ -252,19 +281,39 @@ public class DeviceService {
                 for (SystemDict value : dictList.values()) {
                 for (SystemDict value : dictList.values()) {
                     if (part.getPartName().equals(value.getValue())) {
                     if (part.getPartName().equals(value.getValue())) {
                         part.setPartNameDesc(value.getLabel());
                         part.setPartNameDesc(value.getLabel());
+                        part.setUnit(value.getUrl());
                     }
                     }
                 }
                 }
                 references.forEach(re -> {
                 references.forEach(re -> {
                         if (part.getPartName().equals(re.getItem())) {
                         if (part.getPartName().equals(re.getItem())) {
                             SlopeData slopeData = slopeDataMapper.selectListByLine(snCode, re.getItem());//获取到当前测量值
                             SlopeData slopeData = slopeDataMapper.selectListByLine(snCode, re.getItem());//获取到当前测量值
                             part.setPartBaseData(re.getOriginalValue().toString());
                             part.setPartBaseData(re.getOriginalValue().toString());
+                            part.setPartCurrentBaseData(re.getCurrentValue().toString());
                             if(!Objects.isNull(slopeData)){
                             if(!Objects.isNull(slopeData)){
                                 part.setCurrentData(slopeData.getVal());
                                 part.setCurrentData(slopeData.getVal());
                             }
                             }
-
+                            part.setOffset(re.getOffset().toString());
                         }
                         }
                 });
                 });
             }
             }
+            //获取字典
+            Map<String, SystemDict>  deviceType= commonService.getDictList(null, new HashMap<>() {{
+                put("code", DictEnum.DEVICE_TYPE.getCodeType());
+                put("type", "1");
+            }});
+            for (SystemDict value : deviceType.values()) {
+                if (vo.getDeviceType().toString().equals(value.getValue())) {
+                    vo.setDeviceTypeName(value.getLabel());
+                }
+            }
+            //获取项目详情
+            KwsProjectDevice projectDevice = projectDeviceMapper.selectOne(new LambdaQueryWrapper<KwsProjectDevice>()
+                    .eq(KwsProjectDevice::getDeviceId, vo.getId())
+                    .eq(KwsProjectDevice::getDelFlag, NumberConstant.ZERO)
+            );
+            if(!Objects.isNull(projectDevice)){
+                vo.setProjectId(projectDevice.getProjectId().toString());
+            }
             vo.setPart(partData);
             vo.setPart(partData);
         }
         }
 
 
@@ -280,9 +329,12 @@ public class DeviceService {
                         if(!Objects.isNull(slopeData)){
                         if(!Objects.isNull(slopeData)){
                             inter.setCurrentData(slopeData.getVal());
                             inter.setCurrentData(slopeData.getVal());
                         }
                         }
-
+                        inter.setIntegrationCurrentBaseData(re.getCurrentValue().toString());
+                        inter.setOffset(re.getOffset().toString());
                     }
                     }
+
                 });
                 });
+
             }
             }
             vo.setIntegration(intergData);
             vo.setIntegration(intergData);
         }
         }
@@ -623,14 +675,14 @@ public class DeviceService {
                 //BigDecimal offset = value.subtract(reference.getValue());
                 //BigDecimal offset = value.subtract(reference.getValue());
                 kwsDeviceReference.setOriginalValue(reference.getOriginalValue());//原始基准不变
                 kwsDeviceReference.setOriginalValue(reference.getOriginalValue());//原始基准不变
                 //调整经纬度
                 //调整经纬度
-                if(type.equals(NumberConstant.ONE)){
+                if(type.equals(String.valueOf(NumberConstant.ONE))){
                     BigDecimal offset = commonService.computeOffset(value.toString(), obj.get("item").toString(), reference);
                     BigDecimal offset = commonService.computeOffset(value.toString(), obj.get("item").toString(), reference);
                     kwsDeviceReference.setOffset(offset);//当前位置-上一次的位置的距离的距离
                     kwsDeviceReference.setOffset(offset);//当前位置-上一次的位置的距离的距离
                     kwsDeviceReference.setCurrentValue(value);
                     kwsDeviceReference.setCurrentValue(value);
                     kwsDeviceReference.setValue(reference.getCurrentValue());
                     kwsDeviceReference.setValue(reference.getCurrentValue());
 
 
                 }else{
                 }else{
-                    BigDecimal currentValue = commonService.computeOffset(value.toString(), obj.get("item").toString(), reference);
+                    BigDecimal currentValue = commonService.getValueByOffset(value.toString(), obj.get("item").toString(), reference);
                     kwsDeviceReference.setValue(reference.getCurrentValue());
                     kwsDeviceReference.setValue(reference.getCurrentValue());
                     kwsDeviceReference.setOffset(value);
                     kwsDeviceReference.setOffset(value);
                     kwsDeviceReference.setCurrentValue(currentValue);//原始位置+偏移的坐标
                     kwsDeviceReference.setCurrentValue(currentValue);//原始位置+偏移的坐标

+ 33 - 3
slope-modules/slope-detection/src/main/java/com/sckw/slope/detection/service/task/ReportTemplateTaskService.java

@@ -29,10 +29,10 @@ public class ReportTemplateTaskService {
     KwsReportTemplateMapper reportTemplateMapper;
     KwsReportTemplateMapper reportTemplateMapper;
 
 
     /**
     /**
-     * 报表生成定时任务
+     * 报表生成定时任务-天
      */
      */
     //    @Scheduled(cron = "0 0 0 ? * *")
     //    @Scheduled(cron = "0 0 0 ? * *")
-    public void templateTask() {
+    public void templateTaskDay() {
         List<KwsReportTemplate> kwsReportTemplates = reportTemplateMapper.selectList(new LambdaQueryWrapper<KwsReportTemplate>()
         List<KwsReportTemplate> kwsReportTemplates = reportTemplateMapper.selectList(new LambdaQueryWrapper<KwsReportTemplate>()
                 .eq(KwsReportTemplate::getStatus, 0)
                 .eq(KwsReportTemplate::getStatus, 0)
                 .eq(KwsReportTemplate::getDelFlag, 0));
                 .eq(KwsReportTemplate::getDelFlag, 0));
@@ -45,16 +45,46 @@ public class ReportTemplateTaskService {
                     LocalDateTime dateStart = com.sckw.excel.utils.DateUtil.localDateToLocalDateTimeStart(localDateTime.toLocalDate());
                     LocalDateTime dateStart = com.sckw.excel.utils.DateUtil.localDateToLocalDateTimeStart(localDateTime.toLocalDate());
 
 
                 }
                 }
+
+            }
+        }
+    }
+
+    /**
+     * 报表生成定时任务-周
+     */
+    //    @Scheduled(cron = "0 0 0 ? * *")
+    public void templateTaskWeek() {
+        List<KwsReportTemplate> kwsReportTemplates = reportTemplateMapper.selectList(new LambdaQueryWrapper<KwsReportTemplate>()
+                .eq(KwsReportTemplate::getStatus, 0)
+                .eq(KwsReportTemplate::getDelFlag, 0));
+        if (!CollectionUtils.isEmpty(kwsReportTemplates)) {
+            for (KwsReportTemplate kwsReportTemplate : kwsReportTemplates) {
+                Integer type = kwsReportTemplate.getType();
                 if (ReportTypeEnum.WEEK.getCode() == type) {
                 if (ReportTypeEnum.WEEK.getCode() == type) {
                     if (2 != DateUtil.thisDayOfWeekEnum().getValue()) {
                     if (2 != DateUtil.thisDayOfWeekEnum().getValue()) {
                         continue;
                         continue;
                     }
                     }
                 }
                 }
+            }
+        }
+    }
+
+    /**
+     * 报表生成定时任务-月
+     */
+    //    @Scheduled(cron = "0 0 0 ? * *")
+    public void templateTaskMonth() {
+        List<KwsReportTemplate> kwsReportTemplates = reportTemplateMapper.selectList(new LambdaQueryWrapper<KwsReportTemplate>()
+                .eq(KwsReportTemplate::getStatus, 0)
+                .eq(KwsReportTemplate::getDelFlag, 0));
+        if (!CollectionUtils.isEmpty(kwsReportTemplates)) {
+            for (KwsReportTemplate kwsReportTemplate : kwsReportTemplates) {
+                Integer type = kwsReportTemplate.getType();
                 if (ReportTypeEnum.MONTH.getCode() == type) {
                 if (ReportTypeEnum.MONTH.getCode() == type) {
 
 
                 }
                 }
             }
             }
         }
         }
-
     }
     }
 }
 }

+ 1 - 2
slope-modules/slope-detection/src/main/resources/mapper/mysql/KwsAlarmMapper.xml

@@ -40,8 +40,7 @@
 
 
     <select id="selectByDevicesId" parameterType="java.lang.String" resultType="java.util.Map">
     <select id="selectByDevicesId" parameterType="java.lang.String" resultType="java.util.Map">
         <!--@mbg.generated-->
         <!--@mbg.generated-->
-        select count(id) as count,device_id,type
-        from kws_alarm
+        select count(d.id) as count,a.device_id,type from kws_alarm as a inner join kws_alarm_detail as d on a.id=d.alarm_id
         where 1 = 1
         where 1 = 1
         <if test="devicesId != null and devicesId.size() > 0">
         <if test="devicesId != null and devicesId.size() > 0">
             AND device_id IN
             AND device_id IN

+ 1 - 1
slope-modules/slope-detection/src/main/resources/mapper/mysql/KwsDeviceIntegrationMapper.xml

@@ -203,7 +203,7 @@
     <select id="selectListByParmsAndInterName" resultType="com.sckw.slope.detection.model.vo.DeviceIntegrationVo">
     <select id="selectListByParmsAndInterName" resultType="com.sckw.slope.detection.model.vo.DeviceIntegrationVo">
         <!--@mbg.generated-->
         <!--@mbg.generated-->
         select
         select
-        d.id,d.integration_id,integration_name,part_names
+        d.id,d.integration_id,integration_name,part_names,i.unit
         from kws_device_integration as d
         from kws_device_integration as d
         inner join kws_integration as i on d.integration_id=i.id
         inner join kws_integration as i on d.integration_id=i.id
         where d.del_flag = 0 and i.del_flag = 0
         where d.del_flag = 0 and i.del_flag = 0

+ 4 - 4
slope-modules/slope-detection/src/main/resources/mapper/mysql/KwsDeviceMapper.xml

@@ -39,17 +39,17 @@
         and id = #{id,jdbcType=BIGINT}
         and id = #{id,jdbcType=BIGINT}
   </select>
   </select>
   <select id="selectByDeviceParam" resultType="com.sckw.slope.detection.model.vo.DeviceVo">
   <select id="selectByDeviceParam" resultType="com.sckw.slope.detection.model.vo.DeviceVo">
-      select d.id,
+      select DISTINCT d.id,
              d.name,
              d.name,
              manufacturer,
              manufacturer,
-             device_type,
              m.name   as m_name,
              m.name   as m_name,
              m.device_type,
              m.device_type,
              d.remark,
              d.remark,
              d.update_by,
              d.update_by,
              d.update_time,
              d.update_time,
              p.`name` as project_name,
              p.`name` as project_name,
-             d.status
+             d.status,
+            m.`name` as mName
       from kws_device as d
       from kws_device as d
                inner join kws_device_model as m on d.model_id = m.id
                inner join kws_device_model as m on d.model_id = m.id
                left join kws_project_device as pd on d.id = pd.device_id
                left join kws_project_device as pd on d.id = pd.device_id
@@ -64,7 +64,7 @@
               and id = #{deviceQuery.id,jdbcType=BIGINT}
               and id = #{deviceQuery.id,jdbcType=BIGINT}
           </if>
           </if>
           <if test="deviceQuery.deviceType != null and deviceQuery.deviceType != ''">
           <if test="deviceQuery.deviceType != null and deviceQuery.deviceType != ''">
-              and d.deviceType = #{deviceQuery.deviceType,jdbcType=BIGINT}
+              and m.device_type = #{deviceQuery.deviceType,jdbcType=BIGINT}
           </if>
           </if>
           <if test="deviceQuery.status != null and deviceQuery.status != ''">
           <if test="deviceQuery.status != null and deviceQuery.status != ''">
               and d.status = #{deviceQuery.status,jdbcType=TINYINT}
               and d.status = #{deviceQuery.status,jdbcType=TINYINT}

+ 17 - 0
slope-modules/slope-detection/src/main/resources/mapper/tdengine/SlopeDataMapper.xml

@@ -74,6 +74,23 @@
         where line = #{item} and ts &gt;= #{dateStart} and ts &lt;= #{dateEnd} order by ts desc
         where line = #{item} and ts &gt;= #{dateStart} and ts &lt;= #{dateEnd} order by ts desc
     </select>
     </select>
 
 
+    <select id="selectLineListByArray" resultType="com.sckw.slope.detection.model.dos.tdengine.SlopeData">
+        SELECT
+        <include refid="Base_List">
+        </include>
+        FROM devicesv2.device_#{snCode}
+        where  ts &gt;= #{dateStart} and ts &lt;= #{dateEnd}
+
+        <if test="parts != null">
+            and line in
+            <foreach collection="parts" index="index" separator="," open="(" close=")" item="parts">
+                #{parts}
+            </foreach>
+        </if>
+
+        order by ts desc limit 0,1000
+    </select>
+
     <select id="selectTableIsExit">
     <select id="selectTableIsExit">
         select * from information_schema.ins_tables a where a.db_name = 'devices' and a.table_name = #{name}
         select * from information_schema.ins_tables a where a.db_name = 'devices' and a.table_name = #{name}
     </select>
     </select>