From 2451df7d8d4a9a3d611f2d4a9908cac4ba1114ca Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Mon, 17 Nov 2025 09:38:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E8=81=94=E7=94=A8=E6=88=B7=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../csdevice/api/CsLedgerFeignClient.java | 8 +++--- .../CsLedgerFeignClientFallbackFactory.java | 6 +++++ .../controller/ledger/CsLedgerController.java | 10 +++++++ .../csdevice/service/ICsLedgerService.java | 3 +++ .../impl/CsEngineeringServiceImpl.java | 26 ++++++++++++++----- .../service/impl/CsLedgerServiceImpl.java | 21 +++++++++++++++ 6 files changed, 63 insertions(+), 11 deletions(-) diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLedgerFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLedgerFeignClient.java index 1749b8c..c7f1b79 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLedgerFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLedgerFeignClient.java @@ -1,18 +1,13 @@ package com.njcn.csdevice.api; -import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.ServerInfo; -import com.njcn.common.pojo.enums.common.LogEnum; -import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; -import com.njcn.common.utils.HttpResultUtil; import com.njcn.csdevice.api.fallback.CsLedgerFeignClientFallbackFactory; import com.njcn.csdevice.pojo.dto.DevDetailDTO; import com.njcn.csdevice.pojo.dto.LineParamDTO; import com.njcn.csdevice.pojo.param.CsLedgerParam; import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.pojo.vo.CsLedgerVO; -import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; @@ -54,5 +49,8 @@ public interface CsLedgerFeignClient { @ApiOperation("根据工程获取设备信息") HttpResult> getDevInfoByEngineerIds(@RequestBody @Validated List list); + @PostMapping("/getEngineeringHaveDevs") + @ApiOperation("根据工程信息获取有设备的工程") + HttpResult> getEngineeringHaveDevs(@RequestBody @Validated List list); } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLedgerFeignClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLedgerFeignClientFallbackFactory.java index 7618875..a0bd4a7 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLedgerFeignClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLedgerFeignClientFallbackFactory.java @@ -80,6 +80,12 @@ public class CsLedgerFeignClientFallbackFactory implements FallbackFactory> getEngineeringHaveDevs(List list) { + log.error("{}异常,降级处理,异常为:{}","根据工程获取设备信息",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsLedgerController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsLedgerController.java index 790eb6e..81502a3 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsLedgerController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsLedgerController.java @@ -185,5 +185,15 @@ public class CsLedgerController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, details, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getEngineeringHaveDevs") + @ApiOperation("根据工程信息获取有设备的工程") + @ApiImplicitParam(name = "list", value = "查询条件", required = true) + public HttpResult> getEngineeringHaveDevs(@RequestBody @Validated List list){ + String methodDescribe = getMethodDescribe("getEngineeringHaveDevs"); + List details = csLedgerService.getEngineeringHaveDevs(list); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, details, methodDescribe); + } + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java index 4f31252..be179c6 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java @@ -89,4 +89,7 @@ public interface ICsLedgerService extends IService { List getInfoByIds(List list); List getDevInfoByEngineerIds(List list); + + List getEngineeringHaveDevs(List list); + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEngineeringServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEngineeringServiceImpl.java index 29acad5..fd90ec2 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEngineeringServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEngineeringServiceImpl.java @@ -36,10 +36,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -224,6 +222,7 @@ public class CsEngineeringServiceImpl extends ServiceImpl getUnlinkedEngineering(String userId) { + List result = new ArrayList<>(); List list1 = new ArrayList<>(); //根据用户信息获取设备信息 List devList = csDeviceUserFeignClient.findDevByUserId(userId).getData(); @@ -236,13 +235,28 @@ public class CsEngineeringServiceImpl extends ServiceImpl queryWrapper2 = new LambdaQueryWrapper<>(); queryWrapper2.eq(CsEngineeringPO::getStatus,"1"); if (CollectionUtil.isNotEmpty(list1)) { queryWrapper2.notIn(CsEngineeringPO::getId,list1); } - return this.baseMapper.selectList(queryWrapper2); + List list = this.baseMapper.selectList(queryWrapper2); + //剔除没有设备的工程 + if (CollectionUtil.isNotEmpty(list)) { + Map map = list.stream().collect(Collectors.toMap(CsEngineeringPO::getId, Function.identity())); + List list2 = list.stream().map(CsEngineeringPO::getId).collect(Collectors.toList()); + List ledger = csLedgerFeignClient.getEngineeringHaveDevs(list2).getData(); + if (CollectionUtil.isNotEmpty(ledger)) { + ledger.forEach(item->{ + CsEngineeringPO po = new CsEngineeringPO(); + po.setId(item.getEngineeringid()); + po.setName(map.get(item.getEngineeringid()).getName()); + result.add(po); + }); + } + } + return result; } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLedgerServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLedgerServiceImpl.java index 1b22fc6..4db7242 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLedgerServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLedgerServiceImpl.java @@ -837,6 +837,27 @@ public class CsLedgerServiceImpl extends ServiceImpl i return details; } + @Override + public List getEngineeringHaveDevs(List list) { + List result = new ArrayList<>(); + list.forEach(item->{ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CsLedger::getPid, item); + List project = this.list(queryWrapper); + //工程id + List projectIds = project.stream().map(CsLedger::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.in(CsLedger::getPid, projectIds); + List dev = this.list(queryWrapper2); + if (CollectionUtil.isNotEmpty(dev)) { + DevDetailDTO dto = new DevDetailDTO(); + dto.setEngineeringid(item); + result.add(dto); + } + }); + return result; + } + /** * 获取子节点 */