diff --git a/cs-device/cs-device-api/pom.xml b/cs-device/cs-device-api/pom.xml index 017d949..30b135d 100644 --- a/cs-device/cs-device-api/pom.xml +++ b/cs-device/cs-device-api/pom.xml @@ -35,6 +35,12 @@ common-microservice ${project.version} + + com.njcn + cs-warn-api + 1.0.0 + compile + UTF-8 diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/RoleEngineerDevFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/RoleEngineerDevFeignClient.java index 9f6cb7f..e885e3c 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/RoleEngineerDevFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/RoleEngineerDevFeignClient.java @@ -28,5 +28,7 @@ public interface RoleEngineerDevFeignClient { @PostMapping("/getDevice") public HttpResult> getDevice(); + @PostMapping("/getRoleproject") + public HttpResult> getRoleProject(); } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/RoleEngineerDevClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/RoleEngineerDevClientFallbackFactory.java index 05dce32..c884c43 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/RoleEngineerDevClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/RoleEngineerDevClientFallbackFactory.java @@ -42,6 +42,12 @@ public class RoleEngineerDevClientFallbackFactory implements FallbackFactory> getRoleProject() { + log.error("{}异常,降级处理,异常为:{}","查询角色项目异常",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppProjectAddParm.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppProjectAddParm.java index 0d57555..d0746bd 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppProjectAddParm.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppProjectAddParm.java @@ -7,6 +7,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.math.BigDecimal; +import java.util.List; /** * Description: @@ -50,7 +51,9 @@ public class AppProjectAddParm { private BigDecimal lat; @ApiModelProperty(value = "拓扑图文件") - @NotNull(message="拓扑图文件不能为空!") private MultipartFile[] files; + @ApiModelProperty(value="拓扑图模版id集合") + private List topoIds; + } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppTopologyDiagramAddParm.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppTopologyDiagramAddParm.java index cf73958..eb455ef 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppTopologyDiagramAddParm.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppTopologyDiagramAddParm.java @@ -42,8 +42,7 @@ public class AppTopologyDiagramAddParm { @ApiModelProperty(value = "拓扑图文件") private MultipartFile file; - @ApiModelProperty(value = "拓扑图模板") - private String topoId; + diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsLineParm.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsLineParm.java new file mode 100644 index 0000000..2607799 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsLineParm.java @@ -0,0 +1,58 @@ +package com.njcn.csdevice.pojo.param; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * + * Description: + * Date: 2023/5/18 14:01【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class CsLineParm { + + private String topoId; + private String projectId; + + private String devId; + /** + * 监测点名称 + */ + private String name; + + /** + * 字典表:安装位置(负载侧,电网侧, 输出侧) + */ + private String position; + + /** + * 电压等级 + */ + private String volGrade; + + /** + * PT变比 + */ + private BigDecimal ptRatio; + + /** + * CT变比 + */ + private BigDecimal ctRatio; + + private Double lat; + private Double lng; + + + + +} \ No newline at end of file diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/AppTopologyDiagramPO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/AppTopologyDiagramPO.java index bb3d240..fd5cb81 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/AppTopologyDiagramPO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/AppTopologyDiagramPO.java @@ -33,6 +33,11 @@ public class AppTopologyDiagramPO extends BaseEntity { */ @TableField(value = "name") private String name; + /** + * 拓扑图模板Id + */ + @TableField(value = "topo_id") + private String topoId; /** diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/AppTopologyDiagramVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/AppTopologyDiagramVO.java index 2d003e3..47ec5fa 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/AppTopologyDiagramVO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/AppTopologyDiagramVO.java @@ -1,9 +1,12 @@ package com.njcn.csdevice.pojo.vo; +import com.njcn.csdevice.pojo.po.AppLineTopologyDiagramPO; import com.njcn.db.bo.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * * Description: @@ -29,6 +32,9 @@ public class AppTopologyDiagramVO extends BaseEntity { @ApiModelProperty(value = "拓扑图名称") private String name; + @ApiModelProperty(value = "拓扑图模板名称") + private String topoId; + /** @@ -52,5 +58,9 @@ public class AppTopologyDiagramVO extends BaseEntity { @ApiModelProperty(value = "status") private String status; + private List csLineTopologyTemplateVOList; + + private List appsLineTopologyDiagramPO; + } \ No newline at end of file diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevCountVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevCountVO.java index d2b3cd7..090ac75 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevCountVO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevCountVO.java @@ -1,8 +1,12 @@ package com.njcn.csdevice.pojo.vo; +import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; +import com.njcn.cswarn.pojo.vo.CsEquipmentAlarmVO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * Description: * Date: 2023/7/5 15:09【需求编号】 @@ -13,16 +17,22 @@ import lombok.Data; @Data public class DevCountVO { - @ApiModelProperty(value = "设备总数") + @ApiModelProperty(value = "工程id") private String id; @ApiModelProperty(value = "设备总数") private Integer allDevCount; + private List allDevs; @ApiModelProperty(value = "在线设备数") private Integer onLineCount; + private List onLineDevs; + @ApiModelProperty(value = "离线设备数") private Integer offLineCount; + private List offLineDevs; @ApiModelProperty(value = "报警设备数") private Integer alarmLineCount; + private List alarmLineDevs; + @ApiModelProperty(value = "设备报警事件数") private Integer alarmEventCount; @ApiModelProperty(value = "稳态/暂态发生事件数") diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java index 0d7990e..b4c2814 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java @@ -5,6 +5,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.pojo.param.CsLineParm; import com.njcn.csdevice.pojo.po.CsLinePO; import com.njcn.csdevice.service.CsLinePOService; import com.njcn.web.controller.BaseController; @@ -35,7 +36,7 @@ public class CslineController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/queryLineById") - @ApiOperation("监测点查询通过设备id获取") + @ApiOperation("监测点查询通过id获取") @ApiImplicitParam(name = "ids", value = "设备id获集合", required = true) public HttpResult> queryLineById(@RequestParam List ids){ String methodDescribe = getMethodDescribe("queryLineById"); @@ -62,4 +63,15 @@ public class CslineController extends BaseController { csLinePOService.saveBatch(list); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } + +// @OperateInfo(info = LogEnum.BUSINESS_COMMON) +// @PostMapping("/addLineList") +// @ApiOperation("批量新增监测点及绑定关系") +// @ApiImplicitParam(name = "list", value = "监测点数据集", required = true) +// public HttpResult addLines(@RequestBody List list){ +// String methodDescribe = getMethodDescribe("addLines"); +// csLinePOService.addLines(list); +// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); +// } + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsLineTopologyTemplateController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsLineTopologyTemplateController.java index 11197ce..c604cd0 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsLineTopologyTemplateController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsLineTopologyTemplateController.java @@ -7,6 +7,7 @@ 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.pojo.param.CsLineTopologyTemplateParm; +import com.njcn.csdevice.pojo.vo.CsLineTopologyTemplateVO; import com.njcn.csdevice.pojo.vo.CsTopologyDiagramTemplateVO; import com.njcn.csdevice.service.CsLineTopologyTemplateService; import com.njcn.web.controller.BaseController; @@ -42,4 +43,14 @@ public class CsLineTopologyTemplateController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,flag, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPLOAD) + @PostMapping("/queryByTopoId") + @ApiOperation("根据拓扑图id查询监测点位置") + public HttpResult> queryByTopoId(@RequestParam("topoId") String topoId){ + String methodDescribe = getMethodDescribe("queryByTopoId"); + List csLineTopologyTemplateVOS = csLineTopologyTemplateService.queryByTopoId(topoId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,csLineTopologyTemplateVOS, methodDescribe); + } + + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/RoleEngineerDevController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/RoleEngineerDevController.java index c44702a..4ed788d 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/RoleEngineerDevController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/RoleEngineerDevController.java @@ -52,6 +52,16 @@ public class RoleEngineerDevController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, roleengineer, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getRoleproject") + @ApiOperation("角色项目查询") + public HttpResult> getRoleProject(){ + String methodDescribe = getMethodDescribe("getRoleProject"); + + List roleProject = roleEngineerDevService.getRoleProject(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, roleProject, methodDescribe); + } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getDevice") @ApiOperation("角色设备查询") diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/AppLineTopologyDiagramService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/AppLineTopologyDiagramService.java index 1809a50..85f1d51 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/AppLineTopologyDiagramService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/AppLineTopologyDiagramService.java @@ -3,6 +3,9 @@ package com.njcn.csdevice.service; import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.csdevice.pojo.po.AppLineTopologyDiagramPO; import com.njcn.csdevice.pojo.vo.AppTopologyDiagramVO; +import com.njcn.csdevice.pojo.vo.CsLineTopologyTemplateVO; + +import java.util.List; /** * @@ -17,4 +20,6 @@ public interface AppLineTopologyDiagramService extends IService queryByTopoId(String id); +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java index 17ec37b..0c2bc92 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java @@ -1,6 +1,7 @@ package com.njcn.csdevice.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.csdevice.pojo.param.CsLineParm; import com.njcn.csdevice.pojo.po.CsLinePO; import java.util.List; @@ -26,4 +27,5 @@ public interface CsLinePOService extends IService{ List queryByDevId(String devId); - } +// void addLines(List list); +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/RoleEngineerDevService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/RoleEngineerDevService.java index 0f9d433..7094ca5 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/RoleEngineerDevService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/RoleEngineerDevService.java @@ -12,4 +12,6 @@ import java.util.List; public interface RoleEngineerDevService { List getRoleengineer(); List getDevice(); + + List getRoleProject(); } 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 7c3dde6..eaa247e 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 @@ -9,6 +9,7 @@ import com.njcn.csdevice.pojo.param.AppTopologyDiagramQueryParm; import com.njcn.csdevice.pojo.po.AppLineTopologyDiagramPO; import com.njcn.csdevice.pojo.po.CsLinePO; import com.njcn.csdevice.pojo.vo.AppTopologyDiagramVO; +import com.njcn.csdevice.pojo.vo.CsLineTopologyTemplateVO; import com.njcn.csdevice.service.AppLineTopologyDiagramService; import com.njcn.csdevice.service.AppTopologyDiagramService; import com.njcn.csdevice.service.CsLinePOService; @@ -49,6 +50,13 @@ public class AppLineTopologyDiagramServiceImpl extends ServiceImpl queryByTopoId(String id) { + List list = this.lambdaQuery().eq(AppLineTopologyDiagramPO::getId, id).list(); + return list; + } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppProjectServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppProjectServiceImpl.java index da20d63..b711f51 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppProjectServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppProjectServiceImpl.java @@ -10,18 +10,22 @@ import com.njcn.common.pojo.exception.BusinessException; import com.njcn.csdevice.enums.AlgorithmResponseEnum; import com.njcn.csdevice.mapper.AppProjectMapper; import com.njcn.csdevice.mapper.CsLedgerMapper; +import com.njcn.csdevice.mapper.CsTopologyDiagramTemplateMapper; import com.njcn.csdevice.pojo.param.*; -import com.njcn.csdevice.pojo.po.AppProjectPO; -import com.njcn.csdevice.pojo.po.CsLedger; +import com.njcn.csdevice.pojo.po.*; import com.njcn.csdevice.pojo.vo.AppProjectVO; import com.njcn.csdevice.pojo.vo.AppTopologyDiagramVO; +import com.njcn.csdevice.pojo.vo.CsLineTopologyTemplateVO; import com.njcn.csdevice.service.AppProjectService; import com.njcn.csdevice.service.AppTopologyDiagramService; +import com.njcn.csdevice.service.CsLineTopologyTemplateService; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; 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; @@ -42,7 +46,8 @@ class AppProjectServiceImpl extends ServiceImpl private final AppProjectMapper appProjectMapper; private final AppTopologyDiagramService appTopologyDiagramService; private final CsLedgerMapper csLedgerMapper; - + private final CsTopologyDiagramTemplateMapper csTopologyDiagramTemplateMapper; + private final CsLineTopologyTemplateService csLineTopologyDiagramTemplateService; @Override @Transactional(rollbackFor = Exception.class) public Boolean addAppProject(AppProjectAddParm appProjectAddOrAuditParm) { @@ -58,14 +63,47 @@ class AppProjectServiceImpl extends ServiceImpl BeanUtils.copyProperties (appProjectAddOrAuditParm, appProjectPO); appProjectPO.setStatus ("1"); boolean save = this.save (appProjectPO); - for (int i = 0; i < appProjectAddOrAuditParm.getFiles ( ).length; i++) { + //如何使用拓扑图模板则将拓扑图模板复制绑定 + if(!CollectionUtils.isEmpty(appProjectAddOrAuditParm.getTopoIds()) ){ + List appTopologyDiagramPOS = new ArrayList<>(); + List csLineTopologyTemplates = new ArrayList<>(); + appProjectAddOrAuditParm.getTopoIds().forEach(temp->{ + AppTopologyDiagramPO appTopologyDiagramPO = new AppTopologyDiagramPO(); + CsTopologyDiagramTemplate csTopologyDiagramTemplate = csTopologyDiagramTemplateMapper.selectById(temp); + appTopologyDiagramPO.setFilePath (csTopologyDiagramTemplate.getFilePath()); + appTopologyDiagramPO.setProjectId (appProjectPO.getId()); + appTopologyDiagramPO.setName (csTopologyDiagramTemplate.getName()); + appTopologyDiagramPO.setStatus ("1"); + appTopologyDiagramPO.setTopoId(temp); + appTopologyDiagramService.save(appTopologyDiagramPO); + + //如何使用拓扑图模板生成监测点模版 +// List csLineTopologyTemplateVOS = csLineTopologyDiagramTemplateService.queryByTopoId(temp); +// List collect = csLineTopologyTemplateVOS.stream().map(temp1 -> { +// CsLineTopologyTemplate csLineTopologyTemplate = new CsLineTopologyTemplate(); +// BeanUtils.copyProperties(temp1, csLineTopologyTemplate); +// csLineTopologyTemplate.setId(null); +// csLineTopologyTemplate.setStatus("1"); +// csLineTopologyTemplate.setTopoId(appTopologyDiagramPO.getId()); +// return csLineTopologyTemplate; +// }).collect(Collectors.toList()); +// csLineTopologyTemplates.addAll(collect); + }); + csLineTopologyDiagramTemplateService.saveBatch(csLineTopologyTemplates); + - AppTopologyDiagramAddParm appTopologyDiagramAddParm = new AppTopologyDiagramAddParm ( ); - appTopologyDiagramAddParm.setProjectId (appProjectPO.getId ( )); - appTopologyDiagramAddParm.setTopologyDiagramName (appProjectAddOrAuditParm.getFiles ( )[i].getOriginalFilename ( )); - appTopologyDiagramAddParm.setFile (appProjectAddOrAuditParm.getFiles ( )[i]); - appTopologyDiagramService.addAppTopologyDiagram (appTopologyDiagramAddParm); } + if(Objects.nonNull( appProjectAddOrAuditParm.getFiles ( ))){ + for (int i = 0; i < appProjectAddOrAuditParm.getFiles ( ).length; i++) { + + AppTopologyDiagramAddParm appTopologyDiagramAddParm = new AppTopologyDiagramAddParm ( ); + appTopologyDiagramAddParm.setProjectId (appProjectPO.getId ( )); + appTopologyDiagramAddParm.setTopologyDiagramName (appProjectAddOrAuditParm.getFiles ( )[i].getOriginalFilename ( )); + appTopologyDiagramAddParm.setFile (appProjectAddOrAuditParm.getFiles ( )[i]); + appTopologyDiagramService.addAppTopologyDiagram (appTopologyDiagramAddParm); + } + } + CsLedger csLedger = csLedgerMapper.selectById(appProjectAddOrAuditParm.getEngineeringId()); Optional.ofNullable(csLedger).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.ENGINEERING_DATA_ERROR)); CsLedger csLedger1 = new CsLedger(); @@ -152,6 +190,7 @@ class AppProjectServiceImpl extends ServiceImpl appTopologyDiagramQueryParm.setProjectId(temp.getId()); List appTopologyDiagramVOList = appTopologyDiagramService.queryAppTopologyDiagram(appTopologyDiagramQueryParm); temp.setTopologyDiagramPaths(appTopologyDiagramVOList); + return temp; }).collect(Collectors.toList()); returnpage.setRecords(collect); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppTopologyDiagramServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppTopologyDiagramServiceImpl.java index c5b7e68..e6bfe81 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppTopologyDiagramServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppTopologyDiagramServiceImpl.java @@ -22,6 +22,8 @@ import com.njcn.csdevice.pojo.po.AppTopologyDiagramPO; import com.njcn.csdevice.pojo.po.CsLineTopologyTemplate; import com.njcn.csdevice.pojo.po.CsTopologyDiagramTemplate; import com.njcn.csdevice.pojo.vo.AppTopologyDiagramVO; +import com.njcn.csdevice.pojo.vo.CsLineTopologyTemplateVO; +import com.njcn.csdevice.service.AppLineTopologyDiagramService; import com.njcn.csdevice.service.AppTopologyDiagramService; import com.njcn.csdevice.service.CsLineTopologyTemplateService; import com.njcn.oss.constant.OssPath; @@ -54,19 +56,13 @@ public class AppTopologyDiagramServiceImpl extends ServiceImpl DataParam.FILE_SIZE){ throw new BusinessException(AlgorithmResponseEnum.FILE_SIZE_ERROR); @@ -77,7 +73,7 @@ public class AppTopologyDiagramServiceImpl extends ServiceImpl csLineTopologyTemplateVOS = csLineTopologyTemplateService.queryByTopoId(temp.getTopoId()); + vo.setCsLineTopologyTemplateVOList(csLineTopologyTemplateVOS); return vo; }).collect (Collectors.toList ( )); return collect; @@ -154,6 +152,8 @@ public class AppTopologyDiagramServiceImpl extends ServiceImpl csLineTopologyTemplateVOS = csLineTopologyTemplateService.queryByTopoId(temp.getTopoId()); + vo.setCsLineTopologyTemplateVOList(csLineTopologyTemplateVOS); return vo; }).collect (Collectors.toList ( )); returnpage.setRecords (collect); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java index cf1f141..acbbbdd 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java @@ -23,6 +23,7 @@ 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.stream.Collectors; @@ -87,17 +88,28 @@ public class CsDeviceUserPOServiceImpl extends ServiceImpl device = roleEngineerDevService.getDevice(); if(CollectionUtils.isEmpty(device)){ devCountVO.setOnLineCount(0); + devCountVO.setOnLineDevs(new ArrayList<>()); devCountVO.setOffLineCount(0); + devCountVO.setOffLineDevs(new ArrayList<>()); + devCountVO.setAllDevCount(0); + devCountVO.setAllDevs(new ArrayList<>()); + }else { devCountVO.setAllDevCount(device.size()); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id",device); List csEquipmentDeliveryPOS = csEquipmentDeliveryMapper.selectList(queryWrapper); - long count = csEquipmentDeliveryPOS.stream().filter(temp -> temp.getRunStatus() == 1).count(); - long count1 = csEquipmentDeliveryPOS.stream().filter(temp -> temp.getRunStatus() == 2).count(); - devCountVO.setOnLineCount(Integer.valueOf(count1+"")); - devCountVO.setOffLineCount(Integer.valueOf(count+"")); + devCountVO.setAllDevs(csEquipmentDeliveryPOS); + List collect = csEquipmentDeliveryPOS.stream().filter(temp -> temp.getRunStatus() == 1).collect(Collectors.toList()); + List collect2= csEquipmentDeliveryPOS.stream().filter(temp -> temp.getRunStatus() == 2).collect(Collectors.toList()); + devCountVO.setOnLineCount(collect.size()); + devCountVO.setOnLineDevs(collect); + devCountVO.setOffLineCount(collect2.size()); + devCountVO.setOffLineDevs(collect2); + + } @@ -111,7 +123,7 @@ public class CsDeviceUserPOServiceImpl extends ServiceImpl data = csEquipmentAlarmFeignClient.queryList(csEquipmentAlarmPageParm).getData(); List devIds = data.stream().map(CsEquipmentAlarmVO::getEquipmentId).distinct().collect(Collectors.toList()); - + devCountVO.setAlarmLineDevs(data); devCountVO.setAlarmEventCount(data.size()); devCountVO.setId(id); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLinePOServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLinePOServiceImpl.java index 060d1a5..238b46f 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLinePOServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLinePOServiceImpl.java @@ -1,14 +1,19 @@ package com.njcn.csdevice.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.csdevice.mapper.CsLedgerMapper; import com.njcn.csdevice.mapper.CsLinePOMapper; +import com.njcn.csdevice.pojo.param.CsLineParm; +import com.njcn.csdevice.pojo.po.AppLineTopologyDiagramPO; import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.pojo.po.CsLinePO; import com.njcn.csdevice.service.CsLinePOService; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @@ -43,8 +48,55 @@ public class CsLinePOServiceImpl extends ServiceImpl i queryWrapper.eq("state",1).eq("pid",devId); List csLedgerList = csLedgerMapper.selectList(queryWrapper); List csPairList = csLedgerList.stream().map(CsLedger::getId).collect(Collectors.toList()); + if(CollectionUtil.isEmpty(csPairList)){ + return new ArrayList<>(); + } List csLinePOS = this.listByIds(csPairList); csLinePOS.forEach(temp->temp.setDevId(devId)); return csLinePOS; } + +// /** +// * 1.平台端默认配置拓扑图模板,包含拓扑图信息(cs_topology_diagram_template)和拓扑图上监测点的点位信息(cs_line_topology_template) +// * +// * 2.移动端新增项目时可以上传自己的拓扑图也可以选择拓扑图模板 +// * 维护项目和拓扑图关系(cs_topology_diagram,这个表的id可以使用拓扑图模板id); +// * 用户使用拓扑图模板,则根据模板id查(cs_line_topology_template)库中有几个监测点,绑定到监测点模板关系表中(cs_line_topology_diagram); +// * 用户自己添加拓扑图,则新增拓扑图信息(cs_topology_diagram),同时记录用户在此拓扑图上的点位信息(cs_line_topology_diagram) +// * +// * 3.用户注册直连设备,根据模板信息返回监测点数量,页面选择拓扑图,根据(cs_topology_diagram)拓扑图id查询(cs_line_topology_diagram)拓扑图监测点关系表,获取监测点信息。根据位置来获取打点信息。 +// * 注:cs_line_topology_diagram这个表还需要加个位置字段,不然无法根据位置来匹配对应的监测点 +// * +// * 4.保存之后要在这些表中同步数据(cs_line、cs_ledger) +// * +// * @param list +// */ +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void addLines(List list) { +// List csLedgerLis = new ArrayList<>(); +// list.stream().forEach(temp->{ +// CsLinePO csLinePO = new CsLinePO(); +// BeanUtils.copyProperties(temp,csLinePO); +// this.save(csLinePO); +// String lineId = csLinePO.getLineId(); +// CsLedger csLedger = new CsLedger(); +// +// csLedger.setId(lineId); +// csLedger.setPid(temp.getDevId()); +// csLedger.setLevel(3); +// csLedger.setSort(1); +// csLedger.setState(1); +// +// +// AppLineTopologyDiagramPO appLineTopologyDiagramPO = new AppLineTopologyDiagramPO(); +// appLineTopologyDiagramPO.setId(temp.getTopoId()); +// appLineTopologyDiagramPO.setStatus("1"); +// appLineTopologyDiagramPO.setLineId(lineId); +// appLineTopologyDiagramPO.setLat(temp.getLat()); +// appLineTopologyDiagramPO.setLng(temp.getLng()); +// +// }); +// +// } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RoleEngineerDevServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RoleEngineerDevServiceImpl.java index 1997028..22b2c02 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RoleEngineerDevServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RoleEngineerDevServiceImpl.java @@ -138,6 +138,21 @@ public class RoleEngineerDevServiceImpl implements RoleEngineerDevService { return collect; } + @Override + public List getRoleProject() { + List roleengineer = this.getRoleengineer(); + if(CollectionUtils.isEmpty(roleengineer)){ + return new ArrayList<>(); + } + QueryWrapper csLedgerQueryWrapper = new QueryWrapper<>(); + csLedgerQueryWrapper.clear(); + csLedgerQueryWrapper.eq("level",1).eq("state",1).in("pid",roleengineer); + List csLedgers = csLedgerMapper.selectList(csLedgerQueryWrapper); + List collect = csLedgers.stream().map(CsLedger::getId).distinct().collect(Collectors.toList()); + + + return collect; + } } diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CommonStatisticalQueryParam.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CommonStatisticalQueryParam.java index db16c02..4baf4e7 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CommonStatisticalQueryParam.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CommonStatisticalQueryParam.java @@ -24,7 +24,7 @@ public class CommonStatisticalQueryParam { private String statisticalId; @ApiModelProperty(value = "取值类型(Max,Min,cp95,avg)") private String valueType; - @ApiModelProperty(value = "频次20-50") + @ApiModelProperty(value = "频次2-50") private String frequency; @ApiModelProperty(value = "开始时间") 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 ff3156c..ebe6031 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 @@ -28,7 +28,7 @@ public class CsConfigurationParm { private String remark; - private List engeeringIds; + private List projectIds; private Integer orderBy; diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsConfigurationPO.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsConfigurationPO.java index e2ba597..cb83ade 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsConfigurationPO.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsConfigurationPO.java @@ -36,8 +36,8 @@ public class CsConfigurationPO extends BaseEntity { @TableField(value = "remark") private String remark; - @TableField(value = "engeering_ids") - private String engeeringIds; + @TableField(value = "project_ids") + private String projectIds; @TableField(value = "order_By") private Integer orderBy; 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 923ff2b..625940b 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 @@ -32,7 +32,7 @@ public class CsConfigurationVO extends BaseEntity { private Integer orderBy; - private List engeeringIds; + private List projectIds; @ApiModelProperty(value = "操作人") diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/handler/MqttMessageHandler.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/handler/MqttMessageHandler.java index 446ee52..b079f04 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/handler/MqttMessageHandler.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/handler/MqttMessageHandler.java @@ -5,13 +5,19 @@ import com.github.tocrhz.mqtt.annotation.MqttSubscribe; import com.github.tocrhz.mqtt.annotation.NamedValue; import com.github.tocrhz.mqtt.annotation.Payload; import com.github.tocrhz.mqtt.publisher.MqttPublisher; +import com.njcn.csharmonic.param.CommonStatisticalQueryParam; import com.njcn.csharmonic.pojo.vo.CsRtDataVO; +import com.njcn.csharmonic.pojo.vo.ThdDataVO; import com.njcn.csharmonic.service.ILineTargetService; +import com.njcn.csharmonic.service.StableDataService; +import com.njcn.system.api.CsStatisticalSetFeignClient; +import com.njcn.system.pojo.po.EleEpdPqd; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.MqttMessage; import org.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.List; /** @@ -27,7 +33,8 @@ public class MqttMessageHandler { private final MqttPublisher publisher; private final ILineTargetService lineTargetService; - + private final CsStatisticalSetFeignClient csStatisticalSetFeignClient; + private final StableDataService stableDataService; /** * 实时数据应答 */ @@ -37,4 +44,26 @@ public class MqttMessageHandler { Gson gson = new Gson(); publisher.send("/zl/rtData/"+pageId,gson.toJson(list),1,false); } + + /** + * 实时数据应答 + */ + @MqttSubscribe(value = "/zl/askDevData/{devId}",qos = 1) + public void responseTopoData(String topic, @NamedValue("devId") String devId, MqttMessage message, @Payload String payload) { + List result = new ArrayList<>(); + //1.查询拓扑图配置的指标:拓扑图扑图配置:7677f94c749dedaff30f911949cbd724 + List data = csStatisticalSetFeignClient.queryStatisticalSelect("7677f94c749dedaff30f911949cbd724").getData(); + data.forEach(temp->{ + CommonStatisticalQueryParam commonStatisticalQueryParam = new CommonStatisticalQueryParam(); + commonStatisticalQueryParam.setDevId(devId); + commonStatisticalQueryParam.setStatisticalId(temp.getId()); + commonStatisticalQueryParam.setValueType("cp95"); + List thdDataVOS = stableDataService.queryFisrtCommonStatistical(commonStatisticalQueryParam); + result.addAll(thdDataVOS); + }); + + + Gson gson = new Gson(); + publisher.send("/zl/devData/"+devId,gson.toJson(result),1,false); + } } 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 7446ee4..a5c6a7f 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 @@ -20,7 +20,7 @@