From 29168bbd9f232ced5d0100877d8307a1b5f13af0 Mon Sep 17 00:00:00 2001 From: chendaofei <857448963@qq.com> Date: Tue, 23 Dec 2025 13:41:55 +0800 Subject: [PATCH 1/8] =?UTF-8?q?1.=E5=AF=B9=E8=B1=A1=E6=A0=91=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ledger/CsCommTerminalController.java | 62 +----- .../controller/ledger/CsLedgerController.java | 10 + .../service/CsCommTerminalService.java | 25 +++ .../csdevice/service/ICsLedgerService.java | 3 + .../impl/CsCommTerminalServiceImpl.java | 98 +++++++++ .../service/impl/CsLedgerServiceImpl.java | 207 ++++++++++++------ 6 files changed, 291 insertions(+), 114 deletions(-) create mode 100644 cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsCommTerminalService.java create mode 100644 cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsCommTerminalServiceImpl.java diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsCommTerminalController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsCommTerminalController.java index f420624..fcf531c 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsCommTerminalController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsCommTerminalController.java @@ -12,6 +12,7 @@ import com.njcn.csdevice.mapper.PqsDeviceUnitMapper; import com.njcn.csdevice.pojo.po.CsDeviceUserPO; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; import com.njcn.csdevice.pojo.po.CsLinePO; +import com.njcn.csdevice.service.CsCommTerminalService; import com.njcn.csdevice.service.CsDeviceUserPOService; import com.njcn.csdevice.service.CsEquipmentDeliveryService; import com.njcn.csdevice.service.CsLinePOService; @@ -47,13 +48,8 @@ import java.util.stream.Collectors; @Api(tags = "通用台账查询") public class CsCommTerminalController extends BaseController { - private final PqsDeviceUnitMapper pqsDeviceUnitMapper; - private final CsDeviceUserPOService csDeviceUserPOService; - - private final CsLinePOService csLinePOService; - private final UserFeignClient userFeignClient; - private final CsEquipmentDeliveryService csEquipmentDeliveryService; + private final CsCommTerminalService commTerminalService; /** * 根据用户获取设备信息 @@ -64,7 +60,7 @@ public class CsCommTerminalController extends BaseController { @ApiImplicitParam(name = "userId", value = "用户id", required = true) public HttpResult> getDevIdsByUser(@RequestParam("userId") String userId) { String methodDescribe = getMethodDescribe("getDevIdsByUser"); - List devIds = commGetDevIds(userId); + List devIds = commTerminalService.commGetDevIds(userId); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, devIds, methodDescribe); } @@ -77,19 +73,8 @@ public class CsCommTerminalController extends BaseController { @ApiImplicitParam(name = "userId", value = "用户id", required = true) public HttpResult> getLineIdsByUser(@RequestParam("userId") String userId) { String methodDescribe = getMethodDescribe("getLineIdsByUser"); - List devIds = commGetDevIds(userId); - if(CollUtil.isNotEmpty(devIds)){ - List poList = csLinePOService.lambdaQuery().select(CsLinePO::getLineId).in(CsLinePO::getDeviceId,devIds) - .eq(CsLinePO::getStatus,DataStateEnum.ENABLE.getCode()).list(); - if(CollUtil.isEmpty(poList)){ - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Collections.emptyList(), methodDescribe); - }else { - List result = poList.stream().map(CsLinePO::getLineId).distinct().collect(Collectors.toList()); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); - } - }else { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Collections.emptyList(), methodDescribe); - } + List lineIds = commTerminalService.getLineIdsByUser(userId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, lineIds, methodDescribe); } @@ -101,37 +86,12 @@ public class CsCommTerminalController extends BaseController { @ApiOperation("根据登录用户id获取电能质量用户id集合") @ApiImplicitParam(name = "userId", value = "用户id", required = true) public HttpResult> getPqUserIdsByUser(@RequestParam("userId") String userId) { - String methodDescribe = getMethodDescribe("getPqUserIdsByUser"); - - List devIds = commGetDevIds(userId); - if(CollUtil.isNotEmpty(devIds)){ - List poList = csLinePOService.lambdaQuery().select(CsLinePO::getLineId,CsLinePO::getMonitorUser).in(CsLinePO::getDeviceId,devIds) - .eq(CsLinePO::getStatus,DataStateEnum.ENABLE.getCode()).list(); - if(CollUtil.isEmpty(poList)){ - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Collections.emptyList(), methodDescribe); - }else { - List result = poList.stream().map(CsLinePO::getMonitorUser).distinct().collect(Collectors.toList()); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); - } - }else { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Collections.emptyList(), methodDescribe); - } + String methodDescribe = getMethodDescribe("getLineIdsByUser"); + List lineIds = commTerminalService.getPqUserIdsByUser(userId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, lineIds, methodDescribe); } - private List commGetDevIds(String userId){ - UserVO userVO = userFeignClient.getUserById(userId).getData(); - List devIds; - if(userVO.getType().equals(UserType.SUPER_ADMINISTRATOR ) || userVO.getType().equals(UserType.ADMINISTRATOR )){ - devIds = csEquipmentDeliveryService.getAll().stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList()); - }else { - List devList = csDeviceUserPOService.lambdaQuery().select(CsDeviceUserPO::getDeviceId) - .and(w->w.eq(CsDeviceUserPO::getPrimaryUserId,userId).or().eq(CsDeviceUserPO::getSubUserId,userId)) - .eq(CsDeviceUserPO::getStatus, DataStateEnum.ENABLE.getCode()).list(); - devIds = devList.stream().map(CsDeviceUserPO::getDeviceId).distinct().collect(Collectors.toList()); - } - return devIds; - } /** * 通过监测点获取监测点数据单位 @@ -144,11 +104,7 @@ public class CsCommTerminalController extends BaseController { @ApiImplicitParam(name = "lineId", value = "实体", required = true) public HttpResult lineUnitDetail(@RequestParam("lineId") String lineId) { String methodDescribe = getMethodDescribe("lineUnitDetail"); - - PqsDeviceUnit pqsDeviceUnit = pqsDeviceUnitMapper.selectById(lineId); - if(Objects.isNull(pqsDeviceUnit)){ - pqsDeviceUnit = new PqsDeviceUnit(); - } + PqsDeviceUnit pqsDeviceUnit = commTerminalService.lineUnitDetail(lineId); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pqsDeviceUnit, methodDescribe); } 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 81502a3..9f7adf7 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 @@ -78,6 +78,16 @@ public class CsLedgerController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/objTree") + @ApiOperation("三层对象用户树") + public HttpResult> objTree(){ + String methodDescribe = getMethodDescribe("getProjectTree"); + List list = csLedgerService.objTree(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/add") @ApiOperation("新增台账信息") diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsCommTerminalService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsCommTerminalService.java new file mode 100644 index 0000000..d15a19b --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsCommTerminalService.java @@ -0,0 +1,25 @@ +package com.njcn.csdevice.service; + + + +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.device.biz.pojo.po.PqsDeviceUnit; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +public interface CsCommTerminalService { + + + List getLineIdsByUser(String userId); + + + + List getPqUserIdsByUser(String userId); + + + PqsDeviceUnit lineUnitDetail(String lineId); + + + List commGetDevIds(String userId); +} 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 9b91d57..0df39c6 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 @@ -77,6 +77,9 @@ public interface ICsLedgerService extends IService { List getztProjectTree(); + + List objTree(); + /** * 根据设备集合获取项目和工程 * @param id diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsCommTerminalServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsCommTerminalServiceImpl.java new file mode 100644 index 0000000..09660c2 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsCommTerminalServiceImpl.java @@ -0,0 +1,98 @@ +package com.njcn.csdevice.service.impl; + +import cn.hutool.core.collection.CollUtil; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.csdevice.mapper.PqsDeviceUnitMapper; +import com.njcn.csdevice.pojo.po.CsDeviceUserPO; +import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; +import com.njcn.csdevice.pojo.po.CsLinePO; +import com.njcn.csdevice.service.CsCommTerminalService; +import com.njcn.csdevice.service.CsDeviceUserPOService; +import com.njcn.csdevice.service.CsEquipmentDeliveryService; +import com.njcn.csdevice.service.CsLinePOService; +import com.njcn.device.biz.pojo.po.PqsDeviceUnit; +import com.njcn.user.api.UserFeignClient; +import com.njcn.user.pojo.constant.UserType; +import com.njcn.user.pojo.vo.UserVO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @Author: cdf + * @CreateTime: 2025-12-23 + * @Description: + */ +@Service +@RequiredArgsConstructor +public class CsCommTerminalServiceImpl implements CsCommTerminalService { + + private final PqsDeviceUnitMapper pqsDeviceUnitMapper; + private final CsDeviceUserPOService csDeviceUserPOService; + private final CsLinePOService csLinePOService; + private final UserFeignClient userFeignClient; + private final CsEquipmentDeliveryService csEquipmentDeliveryService; + + + @Override + public List getLineIdsByUser(String userId) { + List result = new ArrayList<>(); + List devIds = commGetDevIds(userId); + if (CollUtil.isEmpty(devIds)) { + return result; + } + List poList = csLinePOService.lambdaQuery().select(CsLinePO::getLineId).in(CsLinePO::getDeviceId, devIds) + .eq(CsLinePO::getStatus, DataStateEnum.ENABLE.getCode()).list(); + if (CollUtil.isNotEmpty(poList)) { + result = poList.stream().map(CsLinePO::getLineId).distinct().collect(Collectors.toList()); + } + return result; + } + + @Override + public List getPqUserIdsByUser(String userId) { + List result = new ArrayList<>(); + List devIds = commGetDevIds(userId); + if (CollUtil.isEmpty(devIds)) { + return result; + } + List poList = csLinePOService.lambdaQuery().select(CsLinePO::getLineId, CsLinePO::getMonitorUser).in(CsLinePO::getDeviceId, devIds) + .eq(CsLinePO::getStatus, DataStateEnum.ENABLE.getCode()).list(); + if (CollUtil.isNotEmpty(poList)) { + result = poList.stream().map(CsLinePO::getMonitorUser).distinct().collect(Collectors.toList()); + } + return result; + } + + @Override + public PqsDeviceUnit lineUnitDetail(String lineId) { + PqsDeviceUnit pqsDeviceUnit = pqsDeviceUnitMapper.selectById(lineId); + if(Objects.isNull(pqsDeviceUnit)){ + pqsDeviceUnit = new PqsDeviceUnit(); + } + return pqsDeviceUnit; + } + + + @Override + public List commGetDevIds(String userId) { + UserVO userVO = userFeignClient.getUserById(userId).getData(); + List devIds; + if (userVO.getType().equals(UserType.SUPER_ADMINISTRATOR) || userVO.getType().equals(UserType.ADMINISTRATOR)) { + devIds = csEquipmentDeliveryService.getAll().stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList()); + } else { + List devList = csDeviceUserPOService.lambdaQuery().select(CsDeviceUserPO::getDeviceId) + .and(w -> w.eq(CsDeviceUserPO::getPrimaryUserId, userId).or().eq(CsDeviceUserPO::getSubUserId, userId)) + .eq(CsDeviceUserPO::getStatus, DataStateEnum.ENABLE.getCode()).list(); + devIds = devList.stream().map(CsDeviceUserPO::getDeviceId).distinct().collect(Collectors.toList()); + } + return devIds; + } +} 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 4db7242..7280d47 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 @@ -4,10 +4,12 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.csdevice.constant.DataParam; import com.njcn.csdevice.controller.project.EngineeringController; import com.njcn.csdevice.enums.LineBaseEnum; @@ -18,13 +20,18 @@ import com.njcn.csdevice.pojo.param.CsLedgerParam; import com.njcn.csdevice.pojo.po.*; import com.njcn.csdevice.pojo.vo.CsLedgerVO; import com.njcn.csdevice.service.*; +import com.njcn.csharmonic.api.PqSensitiveUserFeignClient; +import com.njcn.csharmonic.pojo.po.PqSensitiveUser; import com.njcn.redis.utils.RedisUtil; import com.njcn.system.api.AreaFeignClient; import com.njcn.system.api.DictTreeFeignClient; import com.njcn.system.enums.DicDataEnum; import com.njcn.system.pojo.po.Area; import com.njcn.system.pojo.vo.DictTreeVO; +import com.njcn.user.api.UserFeignClient; import com.njcn.user.enums.AppRoleEnum; +import com.njcn.user.pojo.constant.UserType; +import com.njcn.user.pojo.vo.UserVO; import com.njcn.web.utils.RequestUtil; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; @@ -59,6 +66,12 @@ public class CsLedgerServiceImpl extends ServiceImpl i private final DictTreeFeignClient dictTreeFeignClient; private final EngineeringController engineeringController; private final CsDeviceUserPOMapper csDeviceUserPOMapper; + private final CsCommTerminalServiceImpl csCommTerminalServiceImpl; + private final PqSensitiveUserFeignClient pqSensitiveUserFeignClient; + private final UserFeignClient userFeignClient; + private final CsEquipmentDeliveryService csEquipmentDeliveryService; + private final CsDeviceUserPOService csDeviceUserPOService; + @Override public List getLedgerTree() { @@ -104,7 +117,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i .forEach(zhiLianDevice::add) ); } - engineeringList = allList.stream().filter(item->roleengineer.contains(item.getId())).collect(Collectors.toList()); + engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList()); List projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList()); Map poMap = allList.stream() @@ -148,14 +161,14 @@ public class CsLedgerServiceImpl extends ServiceImpl i .peek( item -> { item.setType("line"); - String index = item.getId().substring(item.getId().length()-1); - if (Objects.equals(index,"0")) { + String index = item.getId().substring(item.getId().length() - 1); + if (Objects.equals(index, "0")) { item.setLineType(0); } else { item.setLineType(1); } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(CsLinePO::getLineId,item.getId()).eq(CsLinePO::getStatus,1); + queryWrapper.eq(CsLinePO::getLineId, item.getId()).eq(CsLinePO::getStatus, 1); CsLinePO po = csLinePOService.getOne(queryWrapper); item.setConType(po.getConType()); } @@ -201,16 +214,16 @@ public class CsLedgerServiceImpl extends ServiceImpl i List ledger; String role = RequestUtil.getUserRole(); List roles = JSONArray.parseArray(role, String.class); - if(roles.contains(AppRoleEnum.ROOT.getCode()) || roles.contains(AppRoleEnum.OPERATION_MANAGER.getCode())){ + if (roles.contains(AppRoleEnum.ROOT.getCode()) || roles.contains(AppRoleEnum.OPERATION_MANAGER.getCode())) { ledger = allList.stream() .filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0")) .collect(Collectors.toList()); } else { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(CsDeviceUserPO::getPrimaryUserId,RequestUtil.getUserIndex()); + queryWrapper.eq(CsDeviceUserPO::getPrimaryUserId, RequestUtil.getUserIndex()); List list1 = csDeviceUserPOMapper.selectList(queryWrapper); List result = new ArrayList<>(); - if (CollectionUtil.isNotEmpty(list1)){ + if (CollectionUtil.isNotEmpty(list1)) { result = list1.stream().map(CsDeviceUserPO::getDeviceId).collect(Collectors.toList()); } //针对未启用的装置判断 @@ -269,6 +282,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i } return tree; } + //剔除未接入的设备(根据status判断不太稳,所有这里直接判断该设备有没有对应的模板指标) private void checkDevSetData(List ledgerVOS) { Iterator iterator = ledgerVOS.iterator(); @@ -328,7 +342,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i ); } - engineeringList = allList.stream().filter(item->roleengineer.contains(item.getId())).collect(Collectors.toList()); + engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList()); List projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList()); Map poMap = allList.stream() @@ -404,16 +418,16 @@ public class CsLedgerServiceImpl extends ServiceImpl i List ledger; String role = RequestUtil.getUserRole(); List roles = JSONArray.parseArray(role, String.class); - if(roles.contains(AppRoleEnum.ROOT.getCode()) || roles.contains(AppRoleEnum.OPERATION_MANAGER.getCode())){ + if (roles.contains(AppRoleEnum.ROOT.getCode()) || roles.contains(AppRoleEnum.OPERATION_MANAGER.getCode())) { ledger = allList.stream() .filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0")) .collect(Collectors.toList()); } else { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(CsDeviceUserPO::getPrimaryUserId,RequestUtil.getUserIndex()); + queryWrapper.eq(CsDeviceUserPO::getPrimaryUserId, RequestUtil.getUserIndex()); List list1 = csDeviceUserPOMapper.selectList(queryWrapper); List result = new ArrayList<>(); - if (CollectionUtil.isNotEmpty(list1)){ + if (CollectionUtil.isNotEmpty(list1)) { result = list1.stream().map(CsDeviceUserPO::getDeviceId).collect(Collectors.toList()); } //针对未启用的装置判断 @@ -475,11 +489,11 @@ public class CsLedgerServiceImpl extends ServiceImpl i @Override public CsLedger addLedgerTree(CsLedgerParam csLedgerParam) { - CsLedger fatherCsLedger = this.lambdaQuery().eq(CsLedger::getId,csLedgerParam.getPid()).one(); + CsLedger fatherCsLedger = this.lambdaQuery().eq(CsLedger::getId, csLedgerParam.getPid()).one(); CsLedger csLedger = new CsLedger(); - BeanUtils.copyProperties(csLedgerParam,csLedger); + BeanUtils.copyProperties(csLedgerParam, csLedger); csLedger.setState(1); - if (Objects.equals(csLedgerParam.getPid(),"9999999")){ + if (Objects.equals(csLedgerParam.getPid(), "9999999")) { csLedger.setPid("0"); csLedger.setPids("0"); } else { @@ -491,7 +505,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i @Override public void deleteLedgerTree(String id) { - CsLedger csLedger = this.lambdaQuery().eq(CsLedger::getId,id).one(); + CsLedger csLedger = this.lambdaQuery().eq(CsLedger::getId, id).one(); csLedger.setState(0); this.updateById(csLedger); } @@ -506,8 +520,8 @@ public class CsLedgerServiceImpl extends ServiceImpl i @Override public String findDevByLineId(String lineId) { String deviceId = null; - CsLedger csLedger = this.lambdaQuery().eq(CsLedger::getId,lineId).eq(CsLedger::getState,1).one(); - if (!Objects.isNull(csLedger)){ + CsLedger csLedger = this.lambdaQuery().eq(CsLedger::getId, lineId).eq(CsLedger::getState, 1).one(); + if (!Objects.isNull(csLedger)) { deviceId = csLedger.getPid(); } return deviceId; @@ -515,7 +529,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i @Override public CsLedger findDataById(String id) { - return this.lambdaQuery().eq(CsLedger::getId,id).eq(CsLedger::getState,1).one(); + return this.lambdaQuery().eq(CsLedger::getId, id).eq(CsLedger::getState, 1).one(); } @Override @@ -523,12 +537,12 @@ public class CsLedgerServiceImpl extends ServiceImpl i List engineeringList = new ArrayList<>(); List allList = this.baseMapper.getAll(); List roleengineer = roleEngineerDevService.getRoleengineer(); - engineeringList = allList.stream().filter(item->roleengineer.contains(item.getId())).collect(Collectors.toList()); + engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList()); List projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList()); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("status","1"); + queryWrapper.eq("status", "1"); List appTopologyDiagramPOS = appTopologyDiagramMapper.selectList(queryWrapper); - projectList.forEach(temp->{ + projectList.forEach(temp -> { AppProjectPO appProjectPO = appProjectMapper.selectById(temp.getId()); temp.setArea(appProjectPO.getArea()); temp.setRemark(appProjectPO.getDescription()); @@ -544,13 +558,13 @@ public class CsLedgerServiceImpl extends ServiceImpl i temp.setChildren(collect); }); engineeringList.forEach(eng -> { - CsEngineeringPO csEngineeringPO = csEngineeringMapper.selectById(eng.getId()); - eng.setArea(this.getAreaById(csEngineeringPO.getProvince())+this.getAreaById(csEngineeringPO.getCity())); - eng.setProvinceId(csEngineeringPO.getProvince()); - eng.setCityId(csEngineeringPO.getCity()); - eng.setRemark(csEngineeringPO.getDescription()); - eng.setChildren(getChildren(eng, projectList)); - } + CsEngineeringPO csEngineeringPO = csEngineeringMapper.selectById(eng.getId()); + eng.setArea(this.getAreaById(csEngineeringPO.getProvince()) + this.getAreaById(csEngineeringPO.getCity())); + eng.setProvinceId(csEngineeringPO.getProvince()); + eng.setCityId(csEngineeringPO.getCity()); + eng.setRemark(csEngineeringPO.getDescription()); + eng.setChildren(getChildren(eng, projectList)); + } ); return engineeringList; @@ -566,14 +580,14 @@ public class CsLedgerServiceImpl extends ServiceImpl i DevDetailDTO device = new DevDetailDTO(); CsLedger dev = this.findDataById(devId); //如果是便携式设备,pid为0,项目,工程都设置为/ - if(Objects.equals(dev.getPid(),"0")){ + if (Objects.equals(dev.getPid(), "0")) { device.setEquipmentName(dev.getName()); device.setEquipmentId(devId); device.setProjectId("/"); device.setProjectName("/"); device.setEngineeringid("/"); device.setEngineeringName("/"); - }else { + } else { device.setEquipmentName(dev.getName()); device.setEquipmentId(devId); CsLedger project = this.findDataById(dev.getPid()); @@ -595,12 +609,12 @@ public class CsLedgerServiceImpl extends ServiceImpl i /*获取用户工程,设备信息过滤*/ List roleengineer = roleEngineerDevService.getRoleengineer(); List device = roleEngineerDevService.getDevice(); - engineeringList = allList.stream().filter(item->roleengineer.contains(item.getId())).collect(Collectors.toList()); + engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList()); List projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList()); - List deviceList = allList.stream().filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(),"0")). + List deviceList = allList.stream().filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(), "0")). peek( - temp->{ + temp -> { CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(temp.getId()); temp.setComFlag(po.getRunStatus()); temp.setNDId(po.getNdid()); @@ -626,9 +640,9 @@ public class CsLedgerServiceImpl extends ServiceImpl i project.setPid("0"); project.setId(DataParam.WIRELESS_PROJECT_ID); - List portables = allList.stream().filter(item->Objects.equals(item.getLevel(),2) && Objects.equals(item.getPid(),"0")).collect(Collectors.toList()); + List portables = allList.stream().filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0")).collect(Collectors.toList()); checkDevSetData(portables); - for(CsLedgerVO c : portables){ + for (CsLedgerVO c : portables) { c.setPid(project.getId()); CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(c.getId()); c.setComFlag(po.getRunStatus()); @@ -643,9 +657,6 @@ public class CsLedgerServiceImpl extends ServiceImpl i portable.setChildren(wxProjectList); - - - CsLedgerVO government = new CsLedgerVO(); government.setLevel(0); government.setName(DataParam.GOVERNANCE_SYSTEM); @@ -659,29 +670,103 @@ public class CsLedgerServiceImpl extends ServiceImpl i } if (CollUtil.isNotEmpty(deviceList)) { tree.add(government); - } + } return tree; } + @Override + public List objTree() { + List result = new ArrayList<>(); + String userId = RequestUtil.getUserIndex(); + UserVO userVO = userFeignClient.getUserById(userId).getData(); + List devIds; + if (userVO.getType().equals(UserType.SUPER_ADMINISTRATOR) || userVO.getType().equals(UserType.ADMINISTRATOR)) { + devIds = csEquipmentDeliveryService.getAll().stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList()); + } else { + List devList = csDeviceUserPOService.lambdaQuery().select(CsDeviceUserPO::getDeviceId) + .and(w -> w.eq(CsDeviceUserPO::getPrimaryUserId, userId).or().eq(CsDeviceUserPO::getSubUserId, userId)) + .eq(CsDeviceUserPO::getStatus, DataStateEnum.ENABLE.getCode()).list(); + devIds = devList.stream().map(CsDeviceUserPO::getDeviceId).distinct().collect(Collectors.toList()); + } + if (CollUtil.isEmpty(devIds)) { + return result; + } + List poList = csLinePOService.lambdaQuery().select(CsLinePO::getLineId).in(CsLinePO::getDeviceId, devIds) + .eq(CsLinePO::getStatus, DataStateEnum.ENABLE.getCode()).list(); + if (CollUtil.isEmpty(poList)) { + return result; + } + List objIds = poList.stream().map(CsLinePO::getMonitorUser).distinct().collect(Collectors.toList()); + List lineIds = poList.stream().map(CsLinePO::getLineId).distinct().collect(Collectors.toList()); + + List pqSensitiveUserList = pqSensitiveUserFeignClient.getListByIds(objIds).getData(); + Map objMap = pqSensitiveUserList.stream().collect(Collectors.toMap(PqSensitiveUser::getId, PqSensitiveUser::getName)); + + List csLineList = this.baseMapper.selectList(new LambdaQueryWrapper().in(CsLedger::getId, lineIds)); + Map> lineMap = csLineList.stream().collect(Collectors.groupingBy(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.PROJECT_LEVEL.getCode()],Collectors.mapping(CsLedger::getId,Collectors.toList()))); + + List projectIds = csLineList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.PROJECT_LEVEL.getCode()]).collect(Collectors.toList()); + List projectList = this.baseMapper.selectList(new LambdaQueryWrapper().in(CsLedger::getId, projectIds)); + + List realProjectList = new ArrayList<>(); + projectList.forEach(pro->{ + CsLedgerVO csLedgerVO = new CsLedgerVO(); + csLedgerVO.setId(pro.getId()); + csLedgerVO.setPid(pro.getPid()); + csLedgerVO.setLevel(pro.getLevel()); + + List temObjList = new ArrayList<>(); + if(lineMap.containsKey(pro.getId())){ + List ids = lineMap.get(pro.getId()); + List objTemIds = poList.stream().filter(it->ids.contains(it.getLineId())).map(CsLinePO::getMonitorUser).distinct().collect(Collectors.toList()); + objTemIds.forEach(it->{ + CsLedgerVO inner = new CsLedgerVO(); + inner.setName(objMap.getOrDefault(it,"未知异常用户")); + inner.setId(it); + inner.setLevel(2); + temObjList.add(inner); + }); + } + csLedgerVO.setChildren(temObjList); + realProjectList.add(csLedgerVO); + }); + + List gcIds = projectList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.ENGINEERING_LEVEL.getCode()]).collect(Collectors.toList()); + List gcList = this.baseMapper.selectList(new LambdaQueryWrapper().in(CsLedger::getId, gcIds)); + + List realGcList = new ArrayList<>(); + gcList.forEach(gc->{ + CsLedgerVO csLedgerVO = new CsLedgerVO(); + csLedgerVO.setId(gc.getId()); + csLedgerVO.setPid(gc.getPid()); + csLedgerVO.setLevel(gc.getLevel()); + + List proList = realProjectList.stream().filter(it->gc.getId().equals(it.getPid())).collect(Collectors.toList()); + csLedgerVO.setChildren(proList); + realGcList.add(csLedgerVO); + }); + return realGcList; + } + @Override public List getProAndEngineer(List id) { List result = new ArrayList<>(); List allList = this.baseMapper.getAll(); Set idSet = new HashSet<>(id); if (CollectionUtil.isNotEmpty(id)) { - id.forEach(item->{ - allList.forEach(item2->{ - if (Objects.equals(item2.getId(),item)) { - idSet.addAll(Arrays.asList(item2.getPids().split( ","))); + id.forEach(item -> { + allList.forEach(item2 -> { + if (Objects.equals(item2.getId(), item)) { + idSet.addAll(Arrays.asList(item2.getPids().split(","))); } }); }); } if (CollectionUtil.isNotEmpty(idSet)) { - idSet.forEach(item->{ - allList.forEach(item2->{ - if (Objects.equals(item2.getId(),item)) { + idSet.forEach(item -> { + allList.forEach(item2 -> { + if (Objects.equals(item2.getId(), item)) { result.add(item2); } }); @@ -718,7 +803,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i DictTreeVO vo1 = dictTreeFeignClient.queryByCode(DicDataEnum.DEV_CLD.getCode()).getData(); //list1是 cld设备 - devs.forEach(item->{ + devs.forEach(item -> { if (item.getDevType().equals(vo1.getId())) { list1.add(item.getId()); } @@ -759,19 +844,19 @@ public class CsLedgerServiceImpl extends ServiceImpl i if (CollectionUtil.isNotEmpty(deviceTree)) { List finalLineTree = lineTree; - deviceTree.forEach(item->{ + deviceTree.forEach(item -> { item.setChildren(getChildren(item, finalLineTree)); }); } if (CollectionUtil.isNotEmpty(projectTree)) { List finalDeviceTree = deviceTree; - projectTree.forEach(item->{ + projectTree.forEach(item -> { item.setChildren(getChildren(item, finalDeviceTree)); }); } if (CollectionUtil.isNotEmpty(engineerTree)) { List finalProjectTree = projectTree; - engineerTree.forEach(item->{ + engineerTree.forEach(item -> { item.setChildren(getChildren(item, finalProjectTree)); }); } @@ -791,9 +876,9 @@ public class CsLedgerServiceImpl extends ServiceImpl i List details = new ArrayList<>(); List ledgers = this.listByIds(list); Set enginingeringIds = new HashSet<>(); - ledgers.forEach(item->{ + ledgers.forEach(item -> { DevDetailDTO device = new DevDetailDTO(); - if(Objects.equals(item.getPid(),"0")){ + if (Objects.equals(item.getPid(), "0")) { device.setEquipmentName(item.getName()); device.setEquipmentId(item.getId()); device.setProjectId("/"); @@ -807,7 +892,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i }); if (CollectionUtil.isNotEmpty(enginingeringIds)) { List engineer = this.listByIds(enginingeringIds); - engineer.forEach(item->{ + engineer.forEach(item -> { DevDetailDTO detail = new DevDetailDTO(); detail.setEngineeringid(item.getId()); detail.setEngineeringName(item.getName()); @@ -828,7 +913,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); queryWrapper2.in(CsLedger::getPid, projectIds); List dev = this.list(queryWrapper2); - dev.forEach(item->{ + dev.forEach(item -> { DevDetailDTO detail = new DevDetailDTO(); detail.setEquipmentName(item.getName()); detail.setEquipmentId(item.getId()); @@ -840,7 +925,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i @Override public List getEngineeringHaveDevs(List list) { List result = new ArrayList<>(); - list.forEach(item->{ + list.forEach(item -> { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(CsLedger::getPid, item); List project = this.list(queryWrapper); @@ -873,12 +958,12 @@ public class CsLedgerServiceImpl extends ServiceImpl i return children; } - public String getAreaById(String id){ - String areaName =redisUtil.getStringByKey (id); - areaName = Optional.ofNullable (areaName).orElseGet (() ->{ - Area data = areaFeignClient.selectIdArea (id).getData ( ); - redisUtil.saveByKey (id,data.getName ()); - return data.getName (); + public String getAreaById(String id) { + String areaName = redisUtil.getStringByKey(id); + areaName = Optional.ofNullable(areaName).orElseGet(() -> { + Area data = areaFeignClient.selectIdArea(id).getData(); + redisUtil.saveByKey(id, data.getName()); + return data.getName(); }); return areaName; } From e7dbee2df5b3e776c17ef12f06ac188ebf7bb3b0 Mon Sep 17 00:00:00 2001 From: cdf <857448963@qq.com> Date: Tue, 23 Dec 2025 13:49:10 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../csdevice/service/impl/CsLedgerServiceImpl.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) 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 7280d47..75a89ad 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 @@ -64,13 +64,9 @@ public class CsLedgerServiceImpl extends ServiceImpl i private final CsEquipmentDeliveryMapper csEquipmentDeliveryMapper; private final ICsDataSetService csDataSetService; private final DictTreeFeignClient dictTreeFeignClient; - private final EngineeringController engineeringController; private final CsDeviceUserPOMapper csDeviceUserPOMapper; - private final CsCommTerminalServiceImpl csCommTerminalServiceImpl; private final PqSensitiveUserFeignClient pqSensitiveUserFeignClient; private final UserFeignClient userFeignClient; - private final CsEquipmentDeliveryService csEquipmentDeliveryService; - private final CsDeviceUserPOService csDeviceUserPOService; @Override @@ -682,11 +678,13 @@ public class CsLedgerServiceImpl extends ServiceImpl i UserVO userVO = userFeignClient.getUserById(userId).getData(); List devIds; if (userVO.getType().equals(UserType.SUPER_ADMINISTRATOR) || userVO.getType().equals(UserType.ADMINISTRATOR)) { - devIds = csEquipmentDeliveryService.getAll().stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList()); + devIds = csEquipmentDeliveryMapper.selectList(null).stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList()); } else { - List devList = csDeviceUserPOService.lambdaQuery().select(CsDeviceUserPO::getDeviceId) + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.select(CsDeviceUserPO::getDeviceId) .and(w -> w.eq(CsDeviceUserPO::getPrimaryUserId, userId).or().eq(CsDeviceUserPO::getSubUserId, userId)) - .eq(CsDeviceUserPO::getStatus, DataStateEnum.ENABLE.getCode()).list(); + .eq(CsDeviceUserPO::getStatus, DataStateEnum.ENABLE.getCode()); + List devList = csDeviceUserPOMapper.selectList(lambdaQueryWrapper); devIds = devList.stream().map(CsDeviceUserPO::getDeviceId).distinct().collect(Collectors.toList()); } if (CollUtil.isEmpty(devIds)) { From c7dce89d366c7e4a6621236b2f0275098c862443 Mon Sep 17 00:00:00 2001 From: hongawen <83944980@qq.com> Date: Tue, 23 Dec 2025 14:42:32 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E7=BB=84=E6=80=81=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E7=9A=84=E6=A6=82=E5=BF=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../csharmonic/param/CsConfigurationParm.java | 2 + .../csharmonic/pojo/vo/CsConfigurationVO.java | 2 + .../mapper/mapping/CsConfigurationMapper.xml | 11 ++- .../impl/CsConfigurationServiceImpl.java | 68 +++++++++---------- 4 files changed, 46 insertions(+), 37 deletions(-) diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CsConfigurationParm.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CsConfigurationParm.java index 3de45f4..2098cb8 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CsConfigurationParm.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CsConfigurationParm.java @@ -62,6 +62,8 @@ public class CsConfigurationParm { private String id; @ApiModelProperty(value = "当前用户ID") private String currentUserId; + @ApiModelProperty(value = "当前用户角色") + private String roleCode; } diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/CsConfigurationVO.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/CsConfigurationVO.java index 625940b..4ba98ae 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/CsConfigurationVO.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/CsConfigurationVO.java @@ -31,6 +31,8 @@ public class CsConfigurationVO extends BaseEntity { private Integer orderBy; + private Integer scope; + private List projectIds; diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsConfigurationMapper.xml b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsConfigurationMapper.xml index 66bed94..4b8b93e 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsConfigurationMapper.xml +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsConfigurationMapper.xml @@ -7,14 +7,15 @@ + - - id, `name`, `status`, create_by, create_time, update_by, update_time + + id, `name`, `status`, `scope`,create_by, create_time, update_by, update_time