diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEngineeringVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEngineeringVO.java index 01ac531..a6e0c62 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEngineeringVO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEngineeringVO.java @@ -19,7 +19,6 @@ import lombok.Data; * 工程信息表 */ @Data -@TableName(value = "cs_engineering") public class CsEngineeringVO extends BaseEntity { /** * id diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsLedgerVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsLedgerVO.java index f4968c7..c023d86 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsLedgerVO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsLedgerVO.java @@ -26,6 +26,13 @@ public class CsLedgerVO implements Serializable { @ApiModelProperty(name = "name",value = "名称") private String name; + @ApiModelProperty(name = "path",value = "拓扑图路径") + private String path; + @ApiModelProperty(name = "area",value = "区域") + private String area; + @ApiModelProperty(name = "remark",value = "备注") + private String remark; + @ApiModelProperty(name = "sort",value = "排序") private Integer sort; 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 ad4d1d6..b6f12cb 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 @@ -6,6 +6,7 @@ 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.mapper.AppProjectMapper; import com.njcn.csdevice.pojo.param.CsLedgerParam; import com.njcn.csdevice.pojo.po.CsLinePO; import com.njcn.csdevice.pojo.vo.CsLedgerVO; @@ -107,5 +108,14 @@ public class CsLedgerController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, deviceId, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getProjectTree") + @ApiOperation("工程-项目-拓扑图树") + public HttpResult> getProjectTree(){ + String methodDescribe = getMethodDescribe("getProjectTree"); + List list = csLedgerService.getProjectTree(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, 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 b6aba0b..72a44ba 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 @@ -66,4 +66,5 @@ public interface ICsLedgerService { */ CsLedger findDataById(String id); + List getProjectTree(); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppLineTopologyDiagramServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppLineTopologyDiagramServiceImpl.java index 23cde3a..7c3dde6 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppLineTopologyDiagramServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppLineTopologyDiagramServiceImpl.java @@ -45,6 +45,9 @@ public class AppLineTopologyDiagramServiceImpl extends ServiceImpl appTopologyDiagramVOS = appTopologyDiagramService.queryAppTopologyDiagram(appTopologyDiagramQueryParm); + if(CollectionUtil.isEmpty(appTopologyDiagramVOS)){ + throw new BusinessException("设备下未找到拓扑图信息"); + } AppTopologyDiagramVO appTopologyDiagramVO = appTopologyDiagramVOS.get(0); return appTopologyDiagramVO; } 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 8ced0f9..5fd4be0 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 @@ -3,26 +3,30 @@ package com.njcn.csdevice.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; 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.exception.BusinessException; import com.njcn.csdevice.enums.LineBaseEnum; -import com.njcn.csdevice.mapper.CsLedgerMapper; +import com.njcn.csdevice.mapper.*; import com.njcn.csdevice.pojo.param.CsLedgerParam; +import com.njcn.csdevice.pojo.po.AppProjectPO; +import com.njcn.csdevice.pojo.po.AppTopologyDiagramPO; import com.njcn.csdevice.pojo.po.CsEngineeringPO; import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.pojo.vo.CsLedgerVO; import com.njcn.csdevice.service.ICsEngineeringUserService; import com.njcn.csdevice.service.ICsLedgerService; +import com.njcn.oss.utils.FileStorageUtil; +import com.njcn.redis.utils.RedisUtil; +import com.njcn.system.api.AreaFeignClient; +import com.njcn.system.pojo.po.Area; import com.njcn.web.utils.RequestUtil; import lombok.AllArgsConstructor; import org.bouncycastle.cert.ocsp.Req; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -38,6 +42,13 @@ import java.util.stream.Collectors; public class CsLedgerServiceImpl extends ServiceImpl implements ICsLedgerService { private final ICsEngineeringUserService csEngineeringUserService; + private final AreaFeignClient areaFeignClient; + private final RedisUtil redisUtil; + private final AppTopologyDiagramMapper appTopologyDiagramMapper; + private final AppProjectMapper appProjectMapper; + private final CsEngineeringMapper csEngineeringMapper; + + private final FileStorageUtil fileStorageUtil; @Override public List getLedgerTree() { @@ -136,11 +147,66 @@ public class CsLedgerServiceImpl extends ServiceImpl i return this.lambdaQuery().eq(CsLedger::getId,id).one(); } + @Override + public List getProjectTree() { + List engineeringList = new ArrayList<>(); + List allList = this.baseMapper.getAll(); + //fixme 这边先根据登录的用户名称来区分是否展示所有的台账信息 + if (Objects.equals(RequestUtil.getUsername(),"root") || Objects.equals(RequestUtil.getUsername(),"njcnser")){ + engineeringList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.ENGINEERING_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList()); + } else { + List engineering = csEngineeringUserService.getEngineeringByUser(); + engineeringList = allList.stream().filter(item->engineering.stream().map(CsEngineeringPO::getId).collect(Collectors.toList()).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"); + List appTopologyDiagramPOS = appTopologyDiagramMapper.selectList(queryWrapper); + projectList.forEach(temp->{ + AppProjectPO appProjectPO = appProjectMapper.selectById(temp.getId()); + temp.setArea(appProjectPO.getArea()); + temp.setRemark(appProjectPO.getDescription()); + List collect = appTopologyDiagramPOS.stream().filter(appTopologyDiagramPO -> Objects.equals(appTopologyDiagramPO.getProjectId(), temp.getId())) + .map(po -> { + CsLedgerVO vo = new CsLedgerVO(); + vo.setId(po.getId()); + vo.setPid(po.getProjectId()); + vo.setName(po.getName()); + vo.setPath(fileStorageUtil.getFileUrl(po.getFilePath())); + return vo; + }).collect(Collectors.toList()); + temp.setChildren(collect); + }); + engineeringList.forEach(eng -> { + + CsEngineeringPO csEngineeringPO = csEngineeringMapper.selectById(eng.getId()); + eng.setArea(this.getAreaById(csEngineeringPO.getProvince())+this.getAreaById(csEngineeringPO.getCity())); + eng.setRemark(csEngineeringPO.getDescription()); + eng.setChildren(getChildren(eng, projectList)); + + } + ); + + + return engineeringList; + } + /** * 获取子节点 */ public List getChildren(CsLedgerVO item, List all) { return all.stream().filter(allItem -> allItem.getPid().equals(item.getId())).collect(Collectors.toList()); } + 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; + + } } diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsPagePO.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsPagePO.java index 58d52af..18d9130 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsPagePO.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsPagePO.java @@ -37,6 +37,10 @@ public class CsPagePO extends BaseEntity { */ @TableField(value = "`name`") private String name; + /*排序id + * */ + @TableField(value = "k_id") + private String kId; /** * 组态页面文件路径 @@ -57,6 +61,7 @@ public class CsPagePO extends BaseEntity { public static final String COL_PID = "pid"; public static final String COL_NAME = "name"; + public static final String COL_KID = "k_id"; public static final String COL_PATH = "path"; diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsConfigurationServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsConfigurationServiceImpl.java index 34064b2..ce44cc9 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsConfigurationServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsConfigurationServiceImpl.java @@ -14,6 +14,7 @@ import com.njcn.csharmonic.service.CsConfigurationService; import com.njcn.oss.utils.FileStorageUtil; import com.njcn.user.api.UserFeignClient; import com.njcn.user.pojo.po.User; +import com.njcn.web.utils.RequestUtil; import lombok.RequiredArgsConstructor; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; @@ -64,9 +65,10 @@ public class CsConfigurationServiceImpl extends ServiceImpl queryPage(CsConfigurationParm.CsConfigurationQueryParam csConfigurationQueryParam) { Page returnpage = new Page<> (csConfigurationQueryParam.getPageNum(), csConfigurationQueryParam.getPageSize ( )); Page temppage = new Page<> (csConfigurationQueryParam.getPageNum(), csConfigurationQueryParam.getPageSize ( )); + String deptIndex = RequestUtil.getDeptIndex(); + QueryWrapper query = new QueryWrapper<>(); query.like(StringUtils.isNotBlank(csConfigurationQueryParam.getSearchValue()),CsConfigurationPO.COL_NAME,csConfigurationQueryParam.getSearchValue()). @@ -98,7 +102,7 @@ public class CsConfigurationServiceImpl extends ServiceImpl i QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(StringUtils.isNotBlank (csPageParam.getPid()),CsPagePO.COL_PID,csPageParam.getPid()). like(StringUtils.isNotBlank (csPageParam.getSearchValue()),CsPagePO.COL_NAME,csPageParam.getSearchValue()). - eq ("status",1); -// orderByDesc(CsPagePO.COL_CREATE_TIME); + eq ("status",1). + orderByAsc(CsPagePO.COL_KID); IPage pageData = this.page(new Page<>(csPageParam.getPageNum(), csPageParam.getPageSize()), queryWrapper); List collect1 = pageData.getRecords().stream().map(CsPagePO::getCreateBy).collect(Collectors.toList());