From 83b231044abaebce171f13a172b715cb0451a49d Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Sat, 20 Apr 2024 13:38:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- .../repository/PdcDeviceRepository.java | 7 +++++++ .../pdcDevice/service/PdcDeviceService.java | 21 +++++++++++++++++++ .../pdcDeviceData/dto/PdcDeviceDataDto.java | 4 ++-- .../service/PdcDeviceRealTimeDataService.java | 2 +- .../PdcDeviceSupplierRepository.java | 8 ++++++- .../service/PdcDeviceSupplierService.java | 5 +++++ 7 files changed, 44 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b82402ad..e1a9bda4 100644 --- a/README.md +++ b/README.md @@ -103,5 +103,5 @@ rabbitmqctl set_permissions --vhost /coal/test datacollector '' 'sysExchange' 'p ``` -gost-windows-amd64.exe -L=tcp://:5672/192.168.59.128:5672 +D:\dev\gost-windows-amd64.exe -L=tcp://:5672/192.168.59.128:5672 ``` \ No newline at end of file diff --git a/src/main/java/cn/lihongjie/coal/pdcDevice/repository/PdcDeviceRepository.java b/src/main/java/cn/lihongjie/coal/pdcDevice/repository/PdcDeviceRepository.java index bc4be1f8..0d45deb6 100644 --- a/src/main/java/cn/lihongjie/coal/pdcDevice/repository/PdcDeviceRepository.java +++ b/src/main/java/cn/lihongjie/coal/pdcDevice/repository/PdcDeviceRepository.java @@ -1,6 +1,7 @@ package cn.lihongjie.coal.pdcDevice.repository; import cn.lihongjie.coal.base.dao.BaseRepository; +import cn.lihongjie.coal.dataCollector.entity.DataCollectorEntity; import cn.lihongjie.coal.pdcDevice.entity.PdcDeviceEntity; import org.springframework.data.jpa.repository.Query; @@ -13,4 +14,10 @@ public interface PdcDeviceRepository extends BaseRepository { @Query("select distinct deviceGroup from PdcDeviceEntity where organizationId = ?1") List deviceGroups(String organizationId); + + @Query("select count(p) from PdcDeviceEntity p where p.dataCollector = ?1 and p.deviceGroup != ?2") + long countByDataCollectorAndDeviceGroup(DataCollectorEntity dataCollector, String deviceGroup); + + @Query("select exists(select 1 from PdcDeviceDataEntity where id in ?1)") + boolean isLinked(List ids); } diff --git a/src/main/java/cn/lihongjie/coal/pdcDevice/service/PdcDeviceService.java b/src/main/java/cn/lihongjie/coal/pdcDevice/service/PdcDeviceService.java index e27f15f2..bdcd7866 100644 --- a/src/main/java/cn/lihongjie/coal/pdcDevice/service/PdcDeviceService.java +++ b/src/main/java/cn/lihongjie/coal/pdcDevice/service/PdcDeviceService.java @@ -68,6 +68,14 @@ public class PdcDeviceService extends BaseService 0) { + throw new BizException("同一个数据采集器只能绑定到同一个分组"); + } + + this.repository.save(entity); return getById(entity.getId()); @@ -105,6 +113,12 @@ public class PdcDeviceService extends BaseService 0) { + throw new BizException("同一个数据采集器只能绑定到同一个分组"); + } + this.mapper.updateEntity(entity, request); this.repository.save(entity); @@ -121,6 +135,13 @@ public class PdcDeviceService extends BaseService { throw new BizException("数据 " + "已归档,无法删除"); }); + + boolean linked = this.repository.isLinked(request.getIds()); + + if (linked) { + throw new BizException("设备已经绑定数据,无法删除"); + } + this.repository.deleteAllById(request.getIds()); } diff --git a/src/main/java/cn/lihongjie/coal/pdcDeviceData/dto/PdcDeviceDataDto.java b/src/main/java/cn/lihongjie/coal/pdcDeviceData/dto/PdcDeviceDataDto.java index 74ee8dee..eba5a19b 100644 --- a/src/main/java/cn/lihongjie/coal/pdcDeviceData/dto/PdcDeviceDataDto.java +++ b/src/main/java/cn/lihongjie/coal/pdcDeviceData/dto/PdcDeviceDataDto.java @@ -1,7 +1,7 @@ package cn.lihongjie.coal.pdcDeviceData.dto; import cn.lihongjie.coal.base.dto.OrgCommonDto; -import cn.lihongjie.coal.pdcDevice.dto.PdcDeviceDto; +import cn.lihongjie.coal.base.dto.SimpleDto; import jakarta.persistence.ManyToOne; @@ -15,7 +15,7 @@ import java.time.LocalDateTime; public class PdcDeviceDataDto extends OrgCommonDto { @ManyToOne - private PdcDeviceDto device; + private SimpleDto device; private LocalDateTime time; diff --git a/src/main/java/cn/lihongjie/coal/pdcDeviceRealTimeData/service/PdcDeviceRealTimeDataService.java b/src/main/java/cn/lihongjie/coal/pdcDeviceRealTimeData/service/PdcDeviceRealTimeDataService.java index 3f5af34d..03040dff 100644 --- a/src/main/java/cn/lihongjie/coal/pdcDeviceRealTimeData/service/PdcDeviceRealTimeDataService.java +++ b/src/main/java/cn/lihongjie/coal/pdcDeviceRealTimeData/service/PdcDeviceRealTimeDataService.java @@ -141,7 +141,7 @@ public class PdcDeviceRealTimeDataService - select a.*, round(cast(coalesce(b.time_total, (a.time_total / (b.time_total * 100.0)), 0 ) as numeric),3)as time_percent from tmp2 a left join tmp2 b on b.coal_type = '2' + select a.*, round(cast(case when b.time_total is null or b.time_total = 0 then 0 else ((a.time_total / b.time_total) * 100.0) end as numeric),3)as time_percent, b.time_total as bt from tmp2 a left join tmp2 b on b.coal_type = '2' diff --git a/src/main/java/cn/lihongjie/coal/pdcDeviceSupplier/repository/PdcDeviceSupplierRepository.java b/src/main/java/cn/lihongjie/coal/pdcDeviceSupplier/repository/PdcDeviceSupplierRepository.java index 80adec63..c1bff87c 100644 --- a/src/main/java/cn/lihongjie/coal/pdcDeviceSupplier/repository/PdcDeviceSupplierRepository.java +++ b/src/main/java/cn/lihongjie/coal/pdcDeviceSupplier/repository/PdcDeviceSupplierRepository.java @@ -3,7 +3,13 @@ package cn.lihongjie.coal.pdcDeviceSupplier.repository; import cn.lihongjie.coal.base.dao.BaseRepository; import cn.lihongjie.coal.pdcDeviceSupplier.entity.PdcDeviceSupplierEntity; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository -public interface PdcDeviceSupplierRepository extends BaseRepository {} +public interface PdcDeviceSupplierRepository extends BaseRepository { + @Query("select exists (select 1 from PdcDeviceEntity where supplier.id in ?1)") + boolean isLinked(List ids); +} diff --git a/src/main/java/cn/lihongjie/coal/pdcDeviceSupplier/service/PdcDeviceSupplierService.java b/src/main/java/cn/lihongjie/coal/pdcDeviceSupplier/service/PdcDeviceSupplierService.java index 2abf7ce1..a142b0f1 100644 --- a/src/main/java/cn/lihongjie/coal/pdcDeviceSupplier/service/PdcDeviceSupplierService.java +++ b/src/main/java/cn/lihongjie/coal/pdcDeviceSupplier/service/PdcDeviceSupplierService.java @@ -68,6 +68,11 @@ public class PdcDeviceSupplierService (e, actual, expected) -> { throw new BizException("数据 " + "已归档,无法删除"); }); + + if (this.repository.isLinked(request.getIds())){ + throw new BizException("数据已被关联,无法删除"); + } + this.repository.deleteAllById(request.getIds()); }