From 45a9d262c9e741e62121a351664debbd993521a7 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Wed, 13 Mar 2024 10:31:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=8C=89=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E7=BB=9F=E8=AE=A1=E8=A3=85=E7=BD=AE=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xydl/cac/controller/JgController.java | 7 ++++ .../cac/controller/ModevTypeController.java | 8 ++--- src/main/java/com/xydl/cac/entity/Jg.java | 3 ++ .../java/com/xydl/cac/service/JgService.java | 2 ++ .../xydl/cac/service/ModevTypeService.java | 2 +- .../xydl/cac/service/impl/JgServiceImpl.java | 36 +++++++++++++++++++ .../service/impl/ModevTypeServiceImpl.java | 2 +- 7 files changed, 54 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/xydl/cac/controller/JgController.java b/src/main/java/com/xydl/cac/controller/JgController.java index 6a1f127..4c16ece 100644 --- a/src/main/java/com/xydl/cac/controller/JgController.java +++ b/src/main/java/com/xydl/cac/controller/JgController.java @@ -30,6 +30,13 @@ public class JgController extends BasicController { return Response.success(result); } + @GetMapping("sensorCount") + @ApiOperation("查询监测装置数量") + public Response> sensorCount(Integer bdzid) { + List result = service.sensorCount(bdzid); + return Response.success(result); + } + @PostMapping("add") @ApiOperation("新增") public Response add(@Validated @RequestBody Jg item) throws Exception { diff --git a/src/main/java/com/xydl/cac/controller/ModevTypeController.java b/src/main/java/com/xydl/cac/controller/ModevTypeController.java index 3fe785a..5116e42 100644 --- a/src/main/java/com/xydl/cac/controller/ModevTypeController.java +++ b/src/main/java/com/xydl/cac/controller/ModevTypeController.java @@ -30,10 +30,10 @@ public class ModevTypeController extends BasicController { return Response.success(result); } - @GetMapping("listAllCount") - @ApiOperation("查询数量列表") - public Response> listAllCount() { - List result = service.listAllCount(); + @GetMapping("sensorCount") + @ApiOperation("查询监测装置数量") + public Response> sensorCount() { + List result = service.sensorCount(); return Response.success(result); } diff --git a/src/main/java/com/xydl/cac/entity/Jg.java b/src/main/java/com/xydl/cac/entity/Jg.java index a187624..4d3f134 100644 --- a/src/main/java/com/xydl/cac/entity/Jg.java +++ b/src/main/java/com/xydl/cac/entity/Jg.java @@ -56,6 +56,9 @@ public class Jg { @Transient private String bdzName; + @Transient + private long sensorCount; + @Transient private List children; diff --git a/src/main/java/com/xydl/cac/service/JgService.java b/src/main/java/com/xydl/cac/service/JgService.java index 3437ae5..fec65f4 100644 --- a/src/main/java/com/xydl/cac/service/JgService.java +++ b/src/main/java/com/xydl/cac/service/JgService.java @@ -8,6 +8,8 @@ public interface JgService { List listAll(Integer bdzid); + List sensorCount(Integer bdzid); + Jg add(Jg item) throws Exception; void update(Jg item) throws Exception; diff --git a/src/main/java/com/xydl/cac/service/ModevTypeService.java b/src/main/java/com/xydl/cac/service/ModevTypeService.java index bea0e1a..c590fbe 100644 --- a/src/main/java/com/xydl/cac/service/ModevTypeService.java +++ b/src/main/java/com/xydl/cac/service/ModevTypeService.java @@ -8,7 +8,7 @@ public interface ModevTypeService { List listAll(); - List listAllCount(); + List sensorCount(); ModevType add(ModevType item) throws Exception; diff --git a/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java index adf1001..6db48be 100644 --- a/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java @@ -6,6 +6,7 @@ import com.xydl.cac.entity.Zsb; import com.xydl.cac.exception.BusinessException; import com.xydl.cac.repository.BdzRepository; import com.xydl.cac.repository.JgRepository; +import com.xydl.cac.repository.NSensorRepository; import com.xydl.cac.repository.ZsbRepository; import com.xydl.cac.service.JgService; import com.xydl.cac.task.CacheTask; @@ -15,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -29,6 +31,8 @@ public class JgServiceImpl implements JgService { BdzRepository bdzRepository; @Resource ZsbRepository zsbRepository; + @Resource + NSensorRepository sensorRepository; @Override public List listAll(Integer bdzid) { @@ -50,6 +54,38 @@ public class JgServiceImpl implements JgService { } } + @Override + public List sensorCount(Integer bdzid) { + List result; + if (bdzid == null) { + if (CacheTask.jg_Cache == null) { + CacheTask.jg_Cache = repository.findAll(); + this.fillBdzName(CacheTask.jg_Cache); + } + result = CacheTask.jg_Cache; + } else { + result = repository.findByBdzid(bdzid); + Optional optional = bdzRepository.findById(bdzid); + if (optional.isPresent() && !CollectionUtils.isEmpty(result)) { + for (Jg jg : result) { + jg.setBdzName(optional.get().getMc()); + } + } + } + for (Jg jg : result) { + List zsbList = zsbRepository.findByJgid(jg.getId()); + List idList = new ArrayList<>(); + for (Zsb zsb : zsbList) { + idList.add(zsb.getId()); + } + if (idList.size() > 0) { + long count = sensorRepository.countByZsbIdIn(idList); + jg.setSensorCount(count); + } + } + return result; + } + private void fillBdzName(List list) { List bdzList = bdzRepository.findAll(); if (!CollectionUtils.isEmpty(list) && !CollectionUtils.isEmpty(bdzList)) { diff --git a/src/main/java/com/xydl/cac/service/impl/ModevTypeServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/ModevTypeServiceImpl.java index 395b76d..a54f39f 100644 --- a/src/main/java/com/xydl/cac/service/impl/ModevTypeServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/ModevTypeServiceImpl.java @@ -38,7 +38,7 @@ public class ModevTypeServiceImpl implements ModevTypeService { } @Override - public List listAllCount() { + public List sensorCount() { List list = this.listAll(); for (ModevType modevType : list) { long count = sensorRepository.countByTypeId(modevType.getId());