From dbe09d70f498507a5f01579122222d149b8f6f10 Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Wed, 1 Apr 2026 20:28:04 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81app=E6=B6=88=E6=81=AF=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9F=A5=E8=AF=A2=E9=87=8D=E6=9E=84=202=E3=80=81app?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=B7=B2=E8=AF=BB=E6=9C=AA=E8=AF=BB=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E9=87=8D=E6=9E=84=203=E3=80=81=E5=85=B6=E4=BD=99?= =?UTF-8?q?=E8=BE=85=E5=8A=A9=E5=8A=9F=E8=83=BD=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../csdevice/api/AppProjectFeignClient.java | 9 + .../csdevice/api/CsMarketDataFeignClient.java | 25 + .../csdevice/api/EngineeringFeignClient.java | 15 + .../csdevice/api/EquipmentFeignClient.java | 3 + .../AppProjectClientFallbackFactory.java | 13 + .../CsMarketDataClientFallbackFactory.java | 44 ++ .../EngineeringClientFallbackFactory.java | 14 + .../EquipmentFeignClientFallbackFactory.java | 6 + .../njcn/csdevice/param/CsUserPinsParam.java | 2 +- .../param/CsEquipmentDeliveryAddParm.java | 6 + .../param/CsEquipmentDeliveryAuditParm.java | 6 + .../njcn/csdevice/pojo/po/AppProjectPO.java | 8 - .../pojo/po/CsEquipmentDeliveryPO.java | 12 + .../njcn/csdevice/pojo/vo/CldLedgerVo.java | 5 +- .../pojo/vo/CsEquipmentDeliveryVO.java | 12 + .../com/njcn/csdevice/pojo/vo/DevCountVO.java | 72 +-- .../pojo/vo/EngineeringHomePageVO.java | 8 +- .../com/njcn/csdevice/pojo/vo/ProjectVO.java | 20 + .../equipment/DeviceUserController.java | 11 +- .../EquipmentDeliveryController.java | 14 + .../controller/ledger/CsLedgerController.java | 9 + .../project/AppProjectController.java | 15 +- .../project/CsMarketDataController.java | 9 + .../project/EngineeringController.java | 10 + .../csdevice/mapper/CsDeviceUserPOMapper.java | 16 + .../mapper/mapping/AppProjectMapper.xml | 1 + .../mapper/mapping/CsDeviceUserPOMapper.xml | 68 +++ .../csdevice/service/AppProjectService.java | 3 + .../service/CsCommTerminalService.java | 8 - .../service/CsDeviceUserPOService.java | 2 +- .../service/CsEngineeringService.java | 2 + .../service/CsEquipmentDeliveryService.java | 2 + .../csdevice/service/CsMarketDataService.java | 2 + .../service/CsTouristDataPOService.java | 2 +- .../csdevice/service/ICsLedgerService.java | 2 + .../service/impl/AppProjectServiceImpl.java | 62 +-- .../impl/CsCommTerminalServiceImpl.java | 29 +- .../impl/CsDeviceUserPOServiceImpl.java | 351 +++++++++---- .../impl/CsEngineeringServiceImpl.java | 13 +- .../impl/CsEquipmentDeliveryServiceImpl.java | 46 +- .../service/impl/CsLedgerServiceImpl.java | 476 ++++++++---------- .../service/impl/CsMarketDataServiceImpl.java | 31 +- .../impl/CsTouristDataPOServiceImpl.java | 3 +- .../csdevice/service/impl/IcdServiceImpl.java | 148 ++++-- .../impl/RoleEngineerDevServiceImpl.java | 2 +- .../csharmonic/api/WavePicFeignClient.java | 10 + .../WavePicClientFallbackFactory.java | 6 + .../njcn/csharmonic/pojo/po/CsEventPO.java | 6 + .../controller/CsEventController.java | 10 + .../mapper/CsEventUserPOMapper.java | 9 +- .../mapper/mapping/CsEventUserPOMapper.xml | 87 +++- .../csharmonic/service/CsEventPOService.java | 2 + .../service/impl/CsAlarmServiceImpl.java | 4 +- .../service/impl/CsEventPOServiceImpl.java | 20 + .../impl/CsEventUserPOServiceImpl.java | 345 ++++++++----- .../service/impl/CsHarmonicServiceImpl.java | 19 +- .../service/impl/HomePageServiceImpl.java | 30 +- .../service/impl/CsAppReportServiceImpl.java | 6 +- .../service/impl/DataTaskServiceImpl.java | 69 ++- 59 files changed, 1529 insertions(+), 711 deletions(-) create mode 100644 cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsMarketDataFeignClient.java create mode 100644 cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsMarketDataClientFallbackFactory.java create mode 100644 cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/ProjectVO.java diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/AppProjectFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/AppProjectFeignClient.java index 9591e0c..8ac288f 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/AppProjectFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/AppProjectFeignClient.java @@ -3,9 +3,11 @@ package com.njcn.csdevice.api; import com.njcn.common.pojo.constant.ServerInfo; import com.njcn.common.pojo.response.HttpResult; import com.njcn.csdevice.api.fallback.AppProjectClientFallbackFactory; +import com.njcn.csdevice.pojo.param.AppProjectAddParm; import com.njcn.csdevice.pojo.po.AppProjectPO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -19,4 +21,11 @@ public interface AppProjectFeignClient { @PostMapping("/queryProjectById") HttpResult> queryProjectById(@RequestParam("ids") List ids); + + @PostMapping("/getProjectByName") + HttpResult getProjectByName(@RequestParam("name") String name); + + @PostMapping("/addAppProject") + HttpResult addAppProject(@RequestBody AppProjectAddParm appProjectAddParm); + } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsMarketDataFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsMarketDataFeignClient.java new file mode 100644 index 0000000..9dae9f6 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsMarketDataFeignClient.java @@ -0,0 +1,25 @@ +package com.njcn.csdevice.api; + +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.csdevice.api.fallback.CsMarketDataClientFallbackFactory; +import com.njcn.csdevice.pojo.vo.CsMarketDataVO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * @author xy + */ +@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/csMarketData", fallbackFactory = CsMarketDataClientFallbackFactory.class,contextId = "csMarketData") +public interface CsMarketDataFeignClient { + + @PostMapping("/insert") + HttpResult insertData(@RequestParam("userId")String userId, @RequestParam("engineeringId")String engineeringId); + + @PostMapping("/queryByUseId") + HttpResult> queryByUseId(@RequestParam("userId")String userId); + +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EngineeringFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EngineeringFeignClient.java index 62a8ade..d38c722 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EngineeringFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EngineeringFeignClient.java @@ -1,14 +1,23 @@ 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.AppProjectClientFallbackFactory; +import com.njcn.csdevice.pojo.param.CsEngineeringAddParm; import com.njcn.csdevice.pojo.param.CsEngineeringQueryParm; +import com.njcn.csdevice.pojo.po.CsEngineeringPO; import com.njcn.csdevice.pojo.vo.CsEngineeringVO; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -20,4 +29,10 @@ public interface EngineeringFeignClient { @PostMapping("/queryEngineering") HttpResult> queryEngineering(@Validated @RequestBody CsEngineeringQueryParm csEngineeringQueryParm); + + @PostMapping("/getEngineeringByName") + HttpResult getEngineeringByName(@RequestParam("name") String name); + + @PostMapping("/addEngineering") + HttpResult addEngineering(@Validated @RequestBody CsEngineeringAddParm csEngineeringAddParm); } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EquipmentFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EquipmentFeignClient.java index 5726148..7404d56 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EquipmentFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EquipmentFeignClient.java @@ -51,6 +51,9 @@ public interface EquipmentFeignClient { @PostMapping("/updateModuleNumber") HttpResult updateModuleNumber(@RequestParam("nDid") String nDid,@RequestParam("number") Integer number); + @PostMapping("/updateLedger") + HttpResult updateLedger(@RequestParam("nDid") String nDid,@RequestParam("engineeringId") String engineeringId,@RequestParam("projectId") String projectId); + @PostMapping("/getAll") HttpResult> getAll(); diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/AppProjectClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/AppProjectClientFallbackFactory.java index 2f51252..544133f 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/AppProjectClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/AppProjectClientFallbackFactory.java @@ -4,6 +4,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.response.HttpResult; import com.njcn.csdevice.api.AppProjectFeignClient; +import com.njcn.csdevice.pojo.param.AppProjectAddParm; import com.njcn.csdevice.pojo.po.AppProjectPO; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; @@ -32,6 +33,18 @@ public class AppProjectClientFallbackFactory implements FallbackFactory getProjectByName(String name) { + log.error("{}异常,降级处理,异常为:{}","根据项目名称获取项目信息异常",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult addAppProject(AppProjectAddParm appProjectAddParm) { + log.error("{}异常,降级处理,异常为:{}","新增项目异常",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsMarketDataClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsMarketDataClientFallbackFactory.java new file mode 100644 index 0000000..fb1e63d --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsMarketDataClientFallbackFactory.java @@ -0,0 +1,44 @@ +package com.njcn.csdevice.api.fallback; + +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.csdevice.api.CsMarketDataFeignClient; +import com.njcn.csdevice.pojo.vo.CsMarketDataVO; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author xy + */ +@Slf4j +@Component +public class CsMarketDataClientFallbackFactory implements FallbackFactory { + @Override + public CsMarketDataFeignClient create(Throwable cause) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if (cause.getCause() instanceof BusinessException) { + BusinessException businessException = (BusinessException) cause.getCause(); + } + Enum finalExceptionEnum = exceptionEnum; + return new CsMarketDataFeignClient() { + + @Override + public HttpResult insertData(String userId, String engineeringId) { + log.error("{}异常,降级处理,异常为:{}","根据用户、工程新增数据异常",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> queryByUseId(String userId) { + log.error("{}异常,降级处理,异常为:{}","查询营销,工程数据异常",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + }; + } +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EngineeringClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EngineeringClientFallbackFactory.java index cde1f11..c9b084d 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EngineeringClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EngineeringClientFallbackFactory.java @@ -4,7 +4,9 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.response.HttpResult; import com.njcn.csdevice.api.EngineeringFeignClient; +import com.njcn.csdevice.pojo.param.CsEngineeringAddParm; import com.njcn.csdevice.pojo.param.CsEngineeringQueryParm; +import com.njcn.csdevice.pojo.po.CsEngineeringPO; import com.njcn.csdevice.pojo.vo.CsEngineeringVO; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; @@ -33,6 +35,18 @@ public class EngineeringClientFallbackFactory implements FallbackFactory getEngineeringByName(String name) { + log.error("{}异常,降级处理,异常为:{}","根据工程名称获取工程信息异常",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult addEngineering(CsEngineeringAddParm csEngineeringAddParm) { + log.error("{}异常,降级处理,异常为:{}","新增工程异常",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EquipmentFeignClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EquipmentFeignClientFallbackFactory.java index ce06ffc..5a7d9d5 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EquipmentFeignClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EquipmentFeignClientFallbackFactory.java @@ -72,6 +72,12 @@ public class EquipmentFeignClientFallbackFactory implements FallbackFactory updateLedger(String nDid, String engineeringId, String projectId) { + log.error("{}异常,降级处理,异常为:{}","更新设备预设工程和项目id数据异常",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + @Override public HttpResult> getAll() { log.error("{}异常,降级处理,异常为:{}","获取所有装置",cause.toString()); diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/param/CsUserPinsParam.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/param/CsUserPinsParam.java index c20160b..47c50cc 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/param/CsUserPinsParam.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/param/CsUserPinsParam.java @@ -22,7 +22,7 @@ public class CsUserPinsParam implements Serializable { private Integer targetType; @ApiModelProperty("目标ID(设备ID或工程ID)") - @NotBlank(message = "目标ID(设备ID或工程ID)") + @NotBlank(message = "目标ID(设备ID或工程ID)不能为空") private String targetId; } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsEquipmentDeliveryAddParm.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsEquipmentDeliveryAddParm.java index afb2ee8..c39259a 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsEquipmentDeliveryAddParm.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsEquipmentDeliveryAddParm.java @@ -100,4 +100,10 @@ public class CsEquipmentDeliveryAddParm implements Serializable { @ApiModelProperty(value="日志等级(NORMAL、DEBUG、WARN、ERROR)") private String devLogLevel; + @ApiModelProperty(value="所属工程") + private String associatedEngineering; + + @ApiModelProperty(value="所属项目") + private String associatedProject; + } \ No newline at end of file diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsEquipmentDeliveryAuditParm.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsEquipmentDeliveryAuditParm.java index 95ce8a7..0bb0327 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsEquipmentDeliveryAuditParm.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsEquipmentDeliveryAuditParm.java @@ -104,4 +104,10 @@ public class CsEquipmentDeliveryAuditParm { @ApiModelProperty(value="日志等级(NORMAL、DEBUG、WARN、ERROR)") private String devLogLevel; + + @ApiModelProperty(value="所属工程") + private String associatedEngineering; + + @ApiModelProperty(value="所属项目") + private String associatedProject; } \ No newline at end of file diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/AppProjectPO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/AppProjectPO.java index c23ccd1..eec3c77 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/AppProjectPO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/AppProjectPO.java @@ -28,26 +28,18 @@ public class AppProjectPO extends BaseEntity { @TableId(value = "id", type = IdType.ASSIGN_UUID) private String id; - /** * 项目名称 */ @TableField(value = "name") private String name; -// @TableField(value = "engineering_id") -// private String engineeringId; - - - /** * 地市Id */ @TableField(value = "area") private String area; - - /** * 0:删除 1:正常 */ diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentDeliveryPO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentDeliveryPO.java index db47e39..c862f67 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentDeliveryPO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentDeliveryPO.java @@ -136,4 +136,16 @@ public class CsEquipmentDeliveryPO extends BaseEntity { @TableField(value = "dev_log_level") private String devLogLevel; + /** + * 所属工程 + */ + @TableField(value = "associated_engineering") + private String associatedEngineering; + + /** + * 所属项目 + */ + @TableField(value = "associated_project") + private String associatedProject; + } \ No newline at end of file diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CldLedgerVo.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CldLedgerVo.java index 845373c..516eccb 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CldLedgerVo.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CldLedgerVo.java @@ -31,7 +31,7 @@ public class CldLedgerVo implements Serializable { private String engineeringDescription; @ApiModelProperty(value = "项目信息") - private List projectInfoList; + private List projectInfoList; @ApiModelProperty(value = "设备信息") private List deviceInfoList; @@ -39,4 +39,7 @@ public class CldLedgerVo implements Serializable { @ApiModelProperty(value = "监测点信息") private List lineInfoList; + @ApiModelProperty("工程排序") + private Integer sort; + } \ No newline at end of file diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEquipmentDeliveryVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEquipmentDeliveryVO.java index d18e344..8f7d88f 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEquipmentDeliveryVO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEquipmentDeliveryVO.java @@ -94,4 +94,16 @@ public class CsEquipmentDeliveryVO extends BaseEntity { @ApiModelProperty(value="前置服务器id") private String nodeId ; + @ApiModelProperty(value="所属工程id") + private String associatedEngineering; + + @ApiModelProperty(value="所属工程名称") + private String associatedEngineeringName; + + @ApiModelProperty(value="所属项目id") + private String associatedProject; + + @ApiModelProperty(value="所属项目名称") + private String associatedProjectName; + } \ 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 58b941b..c8c2d7f 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 @@ -4,6 +4,7 @@ import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.io.Serializable; import java.util.List; /** @@ -15,54 +16,59 @@ import java.util.List; */ @Data -public class DevCountVO { - // - @ApiModelProperty(value = "设备在线总数") - private Integer onLineDevCount; +public class DevCountVO implements Serializable { + + /** 所有工程相关数据 **/ + @ApiModelProperty(value = "所有工程设备在线总数") + private Integer onLineDevCount = 0; private List onLineDevs; - @ApiModelProperty(value = "设备离线总数") - private Integer offLineDevCount; + @ApiModelProperty(value = "所有工程设备离线总数") + private Integer offLineDevCount = 0; private List offLineDevs; - @ApiModelProperty(value = "警告数") - private Integer alarmCount; - @ApiModelProperty(value = "事件数") - private Integer eventCount; + + @ApiModelProperty(value = "所有工程暂态事件数量(未读)") + private Integer eventCount = 0; + + @ApiModelProperty(value = "所有工程稳态事件数量(未读)") + private Integer harmonicCount = 0; + + @ApiModelProperty(value = "所有工程运行告警数量(未读)") + private Integer alarmCount = 0; + + @ApiModelProperty(value = "所有工程运行事件数量(未读)") + private Integer runCount = 0; + @ApiModelProperty(value = "工程个数") - private Integer eningerCount; - - @ApiModelProperty(value = "运行事件数") - private Integer runCount; - @ApiModelProperty(value = "稳态件数") - private Integer harmonicCount; + private Integer eningerCount = 0; + /** 当前工程相关数据 **/ @ApiModelProperty(value = "当前工程id") private String currentId; + @ApiModelProperty(value = "当前工程设备在线总数") - private Integer currentOnLineDevCount; + private Integer currentOnLineDevCount = 0; private List currentOnLineDevs; @ApiModelProperty(value = "当前工程设备离线总数") - private Integer currentOffLineDevCount; + private Integer currentOffLineDevCount = 0; private List currentOffLineDevs; - @ApiModelProperty(value = "设备警告数") - private Integer currentAlarmCount; - @ApiModelProperty(value = "暂态事件数") - private Integer currentEventCount; - @ApiModelProperty(value = "运行事件数") - private Integer currentRunCount; - @ApiModelProperty(value = "稳态件数") - private Integer currentHarmonicCount; + @ApiModelProperty(value = "当前工程暂态事件数量(未读)") + private Integer currentEventCount = 0; + + @ApiModelProperty(value = "当前工程稳态事件数量(未读)") + private Integer currentHarmonicCount = 0; + + @ApiModelProperty(value = "当前工程运行告警数量(未读)") + private Integer currentAlarmCount = 0; + + @ApiModelProperty(value = "当前工程运行事件数量(未读)") + private Integer currentRunCount = 0; @ApiModelProperty(value = "当前项目数") - private Integer currentProjectCount; + private Integer currentProjectCount = 0; @ApiModelProperty(value = "反馈数") - private Integer feedBackCount; - - - - - + private Integer feedBackCount = 0; } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/EngineeringHomePageVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/EngineeringHomePageVO.java index b127c7a..01a6297 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/EngineeringHomePageVO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/EngineeringHomePageVO.java @@ -22,16 +22,16 @@ public class EngineeringHomePageVO implements Serializable { private String engineeringName; @ApiModelProperty(name = "devTotal",value = "设备总数") - private Integer devTotal; + private Integer devTotal = 0; @ApiModelProperty(name = "onlineDevTotal",value = "在线设备数") - private Integer onlineDevTotal; + private Integer onlineDevTotal = 0; @ApiModelProperty(name = "offlineDevTotal",value = "离线设备数") - private Integer offlineDevTotal; + private Integer offlineDevTotal = 0; @ApiModelProperty(name = "alarmTotal",value = "告警数量(未读)") - private Integer alarmTotal; + private Integer alarmTotal = 0; @ApiModelProperty(name = "isTop",value = "是否置顶 0:未置顶 1:已置顶") private Integer isTop = 0; diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/ProjectVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/ProjectVO.java new file mode 100644 index 0000000..6ca80f3 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/ProjectVO.java @@ -0,0 +1,20 @@ +package com.njcn.csdevice.pojo.vo; + +import com.njcn.csdevice.pojo.po.AppProjectPO; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + + +/** + * @author 徐扬 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class ProjectVO extends AppProjectPO { + + private String topoId; +} \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceUserController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceUserController.java index f3757be..60900ea 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceUserController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceUserController.java @@ -15,6 +15,7 @@ import com.njcn.web.advice.DeviceLog; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -77,11 +78,13 @@ public class DeviceUserController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/devCount") @ApiOperation("设备统计") - @ApiImplicitParam(name = "id", value = "工程id", required = true) - public HttpResult devCount(@RequestParam("id") String id){ + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "工程id"), + @ApiImplicitParam(name = "time", value = "时间") + }) + public HttpResult devCount(@RequestParam("id") String id,@RequestParam("time") String time){ String methodDescribe = getMethodDescribe("devCount"); - - DevCountVO result = csDeviceUserPOService.devCount (id); + DevCountVO result = csDeviceUserPOService.devCount(id,time); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java index a927afc..1afe3f1 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java @@ -303,6 +303,20 @@ public class EquipmentDeliveryController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/updateLedger") + @ApiOperation("更新设备预设工程和项目id") + @ApiImplicitParams({ + @ApiImplicitParam(name = "nDid", value = "网络设备码", required = true), + @ApiImplicitParam(name = "engineeringId", value = "工程id", required = true), + @ApiImplicitParam(name = "projectId", value = "项目id", required = true) + }) + public HttpResult updateLedger(@RequestParam("nDid") String nDid,@RequestParam("engineeringId") String engineeringId,@RequestParam("projectId") String projectId){ + String methodDescribe = getMethodDescribe("updateLedger"); + csEquipmentDeliveryService.updateLedger(nDid,engineeringId,projectId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/rebootDevice") @ApiOperation("重启设备") 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 586642b..22da6d3 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 @@ -61,6 +61,15 @@ public class CsLedgerController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/AppLineTree") + @ApiOperation("app端监测点树") + public HttpResult> appLineTree(){ + String methodDescribe = getMethodDescribe("AppLineTree"); + List list = csLedgerService.appLineTree(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/deviceTree") @ApiOperation("四层设备树(装置层,根节点为治理设备和便携式设备)") diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/AppProjectController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/AppProjectController.java index 7c9da47..59036f8 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/AppProjectController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/AppProjectController.java @@ -1,6 +1,5 @@ package com.njcn.csdevice.controller.project; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.enums.common.LogEnum; @@ -66,11 +65,11 @@ public class AppProjectController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/addAppProject") @ApiOperation("新增项目") - public HttpResult addAppProject(@Validated AppProjectAddParm appProjectAddParm){ + public HttpResult addAppProject(@Validated @RequestBody AppProjectAddParm appProjectAddParm){ String methodDescribe = getMethodDescribe("addAppProject"); AppProjectPO po = appProjectService.addAppProject(appProjectAddParm); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, ObjectUtil.isNotNull(po), methodDescribe); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe); } @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/auditAppProject") @@ -91,4 +90,14 @@ public class AppProjectController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getProjectByName") + @ApiOperation("根据项目名称获取项目信息") + @ApiImplicitParam(name = "name", value = "项目名称", required = true) + public HttpResult getProjectByName(@RequestParam("name") String name){ + String methodDescribe = getMethodDescribe("getProjectByName"); + AppProjectPO po = appProjectService.getProjectByName(name); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe); + } + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsMarketDataController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsMarketDataController.java index 9846e01..14a4ba2 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsMarketDataController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsMarketDataController.java @@ -99,4 +99,13 @@ public class CsMarketDataController extends BaseController { List list = csMarketDataService.queryAllEnginner(userId); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/insert") + @ApiOperation("根据用户、工程新增数据") + public HttpResult insertData(@RequestParam("userId")String userId, @RequestParam("engineeringId")String engineeringId){ + String methodDescribe = getMethodDescribe("insertData"); + Boolean result = csMarketDataService.insertData(userId,engineeringId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/EngineeringController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/EngineeringController.java index f98c9db..e34a086 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/EngineeringController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/EngineeringController.java @@ -104,4 +104,14 @@ public class EngineeringController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getEngineeringByName") + @ApiOperation("根据工程名称获取工程信息") + @ApiImplicitParam(name = "name", value = "工程名称", required = true) + public HttpResult getEngineeringByName(@RequestParam("name") String name){ + String methodDescribe = getMethodDescribe("getEngineeringByName"); + CsEngineeringPO po = csEngineeringService.getEngineeringByName(name); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe); + } + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDeviceUserPOMapper.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDeviceUserPOMapper.java index 9254380..e913aa6 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDeviceUserPOMapper.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDeviceUserPOMapper.java @@ -2,6 +2,9 @@ package com.njcn.csdevice.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.njcn.csdevice.pojo.po.CsDeviceUserPO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @@ -12,4 +15,17 @@ import com.njcn.csdevice.pojo.po.CsDeviceUserPO; * @version V1.0.0 */ public interface CsDeviceUserPOMapper extends BaseMapper { + + //查询暂态事件(未读) + int queryTempEvent(@Param("userId") String userId, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("ids") List ids); + + //查询稳态事件(未读) + int queryTempHarmonic(@Param("userId") String userId, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("ids") List ids); + + //查询告警事件(未读) + int queryAlarmEvent(@Param("userId") String userId, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("ids") List ids); + + //查询运行事件(未读) + int queryRunEvent(@Param("userId") String userId, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("ids") List ids); + } \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/AppProjectMapper.xml b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/AppProjectMapper.xml index 0cd6ca7..a48b3d1 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/AppProjectMapper.xml +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/AppProjectMapper.xml @@ -45,6 +45,7 @@ AND a.`name` like concat('%',#{temp.searchValue},'%') + AND a.`name` != '便携式项目' order by a.create_time desc \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDeviceUserPOMapper.xml b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDeviceUserPOMapper.xml index fd73414..36cc780 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDeviceUserPOMapper.xml +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDeviceUserPOMapper.xml @@ -16,4 +16,72 @@ primary_user_id, sub_user_id, device_id, create_by, create_time, update_by, update_time + + + + + + + + + \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/AppProjectService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/AppProjectService.java index 68ba757..f74ff22 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/AppProjectService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/AppProjectService.java @@ -62,4 +62,7 @@ public interface AppProjectService extends IService { AppProjectPO updateData(AppProjectAuditParm param); boolean delete(String id); + + AppProjectPO getProjectByName(String name); + } 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 index d15a19b..eb47881 100644 --- 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 @@ -1,25 +1,17 @@ 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/CsDeviceUserPOService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDeviceUserPOService.java index 39784b1..d3f8af4 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDeviceUserPOService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDeviceUserPOService.java @@ -23,7 +23,7 @@ public interface CsDeviceUserPOService extends IService{ Boolean share(List ids); - DevCountVO devCount(String id); + DevCountVO devCount(String id,String time); String isPrimaryUser(String deviceId); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEngineeringService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEngineeringService.java index 0152b3c..dde8ebe 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEngineeringService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEngineeringService.java @@ -66,4 +66,6 @@ public interface CsEngineeringService extends IService{ boolean deleteData(String id); + CsEngineeringPO getEngineeringByName(String name); + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java index 4a349b2..4eaa1bb 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java @@ -122,6 +122,8 @@ public interface CsEquipmentDeliveryService extends IService { List queryAllEnginner(String userId); Boolean follow(EngineerIdParam engineerIdParams); + + Boolean insertData(String userId,String engineeringId); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsTouristDataPOService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsTouristDataPOService.java index bd1ddc9..67ca0ea 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsTouristDataPOService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsTouristDataPOService.java @@ -18,7 +18,7 @@ import java.util.List; public interface CsTouristDataPOService extends IService{ - Boolean add(List csTouristDataParms); + Boolean add(List csTouristDataParms); List queryAll(); 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 616fcfe..7e86830 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 @@ -31,6 +31,8 @@ public interface ICsLedgerService extends IService { */ List getLineTree(String type); + List appLineTree(); + /** * 终端三层树 * @return 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 7339550..31f0564 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 @@ -2,6 +2,7 @@ package com.njcn.csdevice.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.cloud.commons.lang.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -57,10 +58,6 @@ class AppProjectServiceImpl extends ServiceImpl @Transactional(rollbackFor = Exception.class) public AppProjectPO addAppProject(AppProjectAddParm appProjectAddOrAuditParm) { AppProjectPO appProjectPO = new AppProjectPO ( ); -// Boolean result = checkName (appProjectAddOrAuditParm.getUserId ( ), appProjectAddOrAuditParm.getName ( )); -// if (result) { -// throw new BusinessException (AlgorithmResponseEnum.PROJECT_COMMON_ERROR); -// } if(checkName(appProjectAddOrAuditParm.getName(),"",appProjectAddOrAuditParm.getEngineeringId())){ throw new BusinessException(AlgorithmResponseEnum.PROJECT_COMMON_ERROR); @@ -81,22 +78,8 @@ class AppProjectServiceImpl extends ServiceImpl 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); - - } if(Objects.nonNull( appProjectAddOrAuditParm.getFiles ( ))){ for (int i = 0; i < appProjectAddOrAuditParm.getFiles ( ).length; i++) { @@ -157,13 +140,6 @@ class AppProjectServiceImpl extends ServiceImpl QueryWrapper queryWrapper = new QueryWrapper ( ); queryWrapper.eq ("id", appProjectAuditParm.getId ( )); AppProjectPO appProjectPO1 = appProjectMapper.selectOne (queryWrapper); -// if (appProjectAuditParm.getUserId ( ) != null || appProjectAuditParm.getName ( ) != null) { -// Boolean result = checkName (appProjectAuditParm.getUserId ( ) != null ? appProjectAuditParm.getUserId ( ) : appProjectPO1.getUserId ( ), -// appProjectAuditParm.getName ( ) != null ? appProjectAuditParm.getName ( ) : appProjectPO1.getName ( )); -// if (result) { -// throw new BusinessException (AlgorithmResponseEnum.PROJECT_COMMON_ERROR); -// } -// } //删除项目 if(Objects.equals("0",appProjectAuditParm.getStatus())){ QueryWrapper queryWrapper1 = new QueryWrapper<>(); @@ -175,38 +151,26 @@ class AppProjectServiceImpl extends ServiceImpl this.lambdaUpdate().eq(AppProjectPO::getId,appProjectAuditParm.getId()).set(AppProjectPO::getStatus,"0").update(); appTopologyDiagramService.lambdaUpdate().eq(AppTopologyDiagramPO::getProjectId,appProjectAuditParm.getId()).set(AppTopologyDiagramPO::getStatus,"0").update(); CsLedger csLedger1 = new CsLedger(); - csLedger1.setId(appProjectAuditParm.getId()); - csLedger1.setState(0); csLedger1.setState(0); csLedgerMapper.updateById(csLedger1); - - } if(checkName(appProjectAuditParm.getName(),appProjectAuditParm.getId(),appProjectAuditParm.getEngineeringId())){ throw new BusinessException(AlgorithmResponseEnum.PROJECT_COMMON_ERROR); } - - BeanUtils.copyProperties (appProjectAuditParm, appProjectPO); UpdateWrapper updateWrapper = new UpdateWrapper ( ); updateWrapper.eq ("id", appProjectAuditParm.getId ( )); int i = appProjectMapper.update (appProjectPO, updateWrapper); -// Boolean result = checkName (appProjectPO.getUserId ( ), appProjectPO.getName ( )); -// if (result) { -// throw new BusinessException (AlgorithmResponseEnum.PROJECT_COMMON_ERROR); -// } //删除拓扑图 if(CollectionUtils.isEmpty(appProjectAuditParm.getNewTopoIds())){ appTopologyDiagramService.lambdaUpdate().eq(AppTopologyDiagramPO::getProjectId,appProjectAuditParm.getId()).set(AppTopologyDiagramPO::getStatus,"0").update(); - }else { appTopologyDiagramService.lambdaUpdate().eq(AppTopologyDiagramPO::getProjectId,appProjectAuditParm.getId()).notIn(AppTopologyDiagramPO::getId,appProjectAuditParm.getNewTopoIds()).set(AppTopologyDiagramPO::getStatus,"0").update(); - } //如何使用拓扑图模板则将拓扑图模板复制绑定 @@ -227,26 +191,11 @@ class AppProjectServiceImpl extends ServiceImpl 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); - - } if(Objects.nonNull( appProjectAuditParm.getFiles ( ))){ for (int k = 0; k < appProjectAuditParm.getFiles ( ).length; k++) { - AppTopologyDiagramAddParm appTopologyDiagramAddParm = new AppTopologyDiagramAddParm ( ); appTopologyDiagramAddParm.setProjectId (appProjectPO.getId ( )); appTopologyDiagramAddParm.setTopologyDiagramName (appProjectAuditParm.getFiles ( )[k].getOriginalFilename ( )); @@ -255,10 +204,8 @@ class AppProjectServiceImpl extends ServiceImpl } } - CsLedger csLedger2 = new CsLedger(); csLedger2.setId(appProjectAuditParm.getId()); - if(StringUtils.isNotBlank(appProjectAuditParm.getName())){ csLedger2.setName(appProjectAuditParm.getName()); } @@ -403,5 +350,12 @@ class AppProjectServiceImpl extends ServiceImpl return this.update(queryWrapper); } + @Override + public AppProjectPO getProjectByName(String name) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(AppProjectPO::getName,name).eq(AppProjectPO::getStatus,1); + return this.getOne(queryWrapper); + } + } 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 index 74a4a9e..07258a0 100644 --- 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 @@ -5,21 +5,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.csdevice.mapper.CsLinePOMapper; import com.njcn.csdevice.mapper.PqsDeviceUnitMapper; +import com.njcn.csdevice.pojo.dto.DevDetailDTO; 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.pojo.vo.CsMarketDataVO; +import com.njcn.csdevice.pojo.vo.CsTouristDataParmVO; +import com.njcn.csdevice.service.*; import com.njcn.device.biz.pojo.po.PqsDeviceUnit; 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.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; @@ -38,6 +40,9 @@ public class CsCommTerminalServiceImpl implements CsCommTerminalService { private final CsLinePOMapper csLinePOMapper; private final UserFeignClient userFeignClient; private final CsEquipmentDeliveryService csEquipmentDeliveryService; + private final CsMarketDataService csMarketDataService; + private final ICsLedgerService csLedgerService; + private final CsTouristDataPOService csTouristDataPOService; @Override @@ -96,6 +101,22 @@ public class CsCommTerminalServiceImpl implements CsCommTerminalService { .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()); + //note 黄是在cs_market_data写入数据,是用户和工程的关系; + // 但是权限根据用户和设备来判断会有问题,还需要用户和工程的关系(针对营销 工程用户),所以这边还要添加用户和工程的关系 + List list = csMarketDataService.queryByUseId(userId); + if (CollUtil.isNotEmpty(list)) { + List engineerIds = list.stream().map(CsMarketDataVO::getEngineerId).distinct().collect(Collectors.toList()); + List devs = csLedgerService.getDevInfoByEngineerIds(engineerIds); + devIds.addAll(devs.stream().map(DevDetailDTO::getEquipmentId).distinct().collect(Collectors.toList())); + } + //note 如果是游客,则还需要加入系统配置的设备 + String roleString = RequestUtil.getUserRole(); + if (roleString.contains(AppRoleEnum.TOURIST.getCode())) { + devIds.addAll(csTouristDataPOService.queryAll().stream().map(CsTouristDataParmVO::getDeviceId).distinct().collect(Collectors.toList())); + } + } + if (!CollUtil.isEmpty(devIds)) { + devIds = devIds.stream().distinct().collect(Collectors.toList()); } return devIds; } 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 701e0bb..ca29355 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 @@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil; 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.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.csdevice.enums.AlgorithmResponseEnum; @@ -17,13 +16,9 @@ import com.njcn.csdevice.pojo.vo.CsLedgerVO; import com.njcn.csdevice.pojo.vo.DevCountVO; import com.njcn.csdevice.pojo.vo.DevUserVO; import com.njcn.csdevice.service.*; -import com.njcn.csdevice.utils.StringUtil; import com.njcn.csharmonic.api.EventUserFeignClient; -import com.njcn.csharmonic.param.CsEventUserQueryParam; -import com.njcn.csharmonic.pojo.vo.EventDetailVO; import com.njcn.cssystem.api.FeedBackFeignClient; -import com.njcn.cssystem.pojo.param.CsFeedbackQueryParm; -import com.njcn.cssystem.pojo.vo.CsFeedbackVO; +import com.njcn.harmonic.utils.PublicDataUtils; import com.njcn.user.api.UserFeignClient; import com.njcn.user.enums.AppRoleEnum; import com.njcn.user.pojo.po.User; @@ -35,7 +30,6 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -124,114 +118,251 @@ public class CsDeviceUserPOServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + public DevCountVO devCount(String id,String time) { + DevCountVO vo = new DevCountVO(); + //获取app用户的台账树,包含四个层级 工程、项目、设备、监测点 + List appLedger = iCsLedgerService.appLineTree(); + if (CollectionUtil.isNotEmpty(appLedger)) { + //获取第一层项目层级 + List firstLevelList = new ArrayList<>(); + //获取第三层设备层级 + List thirdLevelList = new ArrayList<>(); + for (CsLedgerVO firstLevel : appLedger) { + firstLevelList.add(firstLevel); + if (CollectionUtil.isNotEmpty(firstLevel.getChildren())) { + for (CsLedgerVO secondLevel : firstLevel.getChildren()) { + if (CollectionUtil.isNotEmpty(secondLevel.getChildren())) { + thirdLevelList.addAll(secondLevel.getChildren()); + } + } + } + } + //note 所有工程数据 + //获取工程数量 + if (CollectionUtil.isNotEmpty(firstLevelList)) { + vo.setEningerCount(firstLevelList.size()); + } - DevCountVO devCountVO = new DevCountVO(); + //获取设备总数、在线设备、离线设备 + if (CollectionUtil.isNotEmpty(thirdLevelList)) { + List devIds = thirdLevelList.stream().map(CsLedgerVO::getId).collect(Collectors.toList()); + List devList = csEquipmentDeliveryMapper.selectBatchIds(devIds); + //在线设备 + List onlineDevs = devList.stream().filter(dev -> Objects.equals(dev.getRunStatus(), 2)).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(onlineDevs)) { + vo.setOnLineDevCount(onlineDevs.size()); + vo.setOnLineDevs(onlineDevs); + } + //离线设备 + List offlineDevs = devList.stream().filter(dev -> Objects.equals(dev.getRunStatus(), 1)).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(offlineDevs)) { + vo.setOffLineDevCount(offlineDevs.size()); + vo.setOffLineDevs(offlineDevs); + } + } + //获取未读事件数量 + int eventCount = this.baseMapper.queryTempEvent(RequestUtil.getUserIndex(),PublicDataUtils.calculateMonthStart(time),PublicDataUtils.calculateMonthEnd(time),null); + vo.setEventCount(eventCount); - String userRole = RequestUtil.getUserRole(); - List strings = JSONArray.parseArray(userRole, String.class); - if(CollectionUtils.isEmpty(strings)){ - throw new BusinessException(AlgorithmResponseEnum.UNKNOW_ROLE); + int harmonicCount = this.baseMapper.queryTempHarmonic(RequestUtil.getUserIndex(),PublicDataUtils.calculateMonthStart(time),PublicDataUtils.calculateMonthEnd(time),null); + vo.setHarmonicCount(harmonicCount); + int alarmCount = this.baseMapper.queryAlarmEvent(RequestUtil.getUserIndex(),PublicDataUtils.calculateMonthStart(time),PublicDataUtils.calculateMonthEnd(time),null); + vo.setAlarmCount(alarmCount); + + int runCount = this.baseMapper.queryRunEvent(RequestUtil.getUserIndex(),PublicDataUtils.calculateMonthStart(time),PublicDataUtils.calculateMonthEnd(time),null); + vo.setRunCount(runCount); + + //note 当前工程数据 + //当前工程id + vo.setCurrentId(id); + //设备集合 + List currentDevIds = new ArrayList<>(); + //监测点集合 + List currentLineIds = new ArrayList<>(); + //获取第一层项目层级 + List currentProjectIds = new ArrayList<>(); + // 遍历树结构,找到匹配的工程节点 + for (CsLedgerVO engineering : appLedger) { + if (id.equals(engineering.getId())) { + // 找到工程节点,获取其子节点(项目层级) + if (CollectionUtil.isNotEmpty(engineering.getChildren())) { + for (CsLedgerVO project : engineering.getChildren()) { + currentProjectIds.add(project); + // 获取项目下的设备层级 + if (CollectionUtil.isNotEmpty(project.getChildren())) { + currentDevIds.addAll(project.getChildren().stream().map(CsLedgerVO::getId).collect(Collectors.toList())); + // 获取设备下的监测点层级 + for (CsLedgerVO device : project.getChildren()) { + if (CollectionUtil.isNotEmpty(device.getChildren())) { + currentLineIds.addAll(device.getChildren().stream().map(CsLedgerVO::getId).collect(Collectors.toList())); + } + } + } + } + } + break; + } + } + //获取项目数量 + if (CollectionUtil.isNotEmpty(currentProjectIds)) { + vo.setCurrentProjectCount(currentProjectIds.size()); + } + //获取设备总数、在线设备、离线设备 + if (CollectionUtil.isNotEmpty(currentDevIds)) { + List devList = csEquipmentDeliveryMapper.selectBatchIds(currentDevIds); + //在线设备 + List onlineDevs = devList.stream().filter(dev -> Objects.equals(dev.getRunStatus(), 2)).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(onlineDevs)) { + vo.setCurrentOnLineDevCount(onlineDevs.size()); + vo.setCurrentOnLineDevs(onlineDevs); + } + //离线设备 + List offlineDevs = devList.stream().filter(dev -> Objects.equals(dev.getRunStatus(), 1)).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(offlineDevs)) { + vo.setCurrentOffLineDevCount(offlineDevs.size()); + vo.setCurrentOffLineDevs(offlineDevs); + } + } + //获取未读事件数量 + if (CollectionUtil.isNotEmpty(currentLineIds)) { + int eventCount2 = this.baseMapper.queryTempEvent(RequestUtil.getUserIndex(),PublicDataUtils.calculateMonthStart(time),PublicDataUtils.calculateMonthEnd(time),currentLineIds); + vo.setCurrentEventCount(eventCount2); + + int harmonicCount2 = this.baseMapper.queryTempHarmonic(RequestUtil.getUserIndex(),PublicDataUtils.calculateMonthStart(time),PublicDataUtils.calculateMonthEnd(time),currentLineIds); + vo.setCurrentHarmonicCount(harmonicCount2); + } + if (CollectionUtil.isNotEmpty(currentDevIds)) { + int alarmCount2 = this.baseMapper.queryAlarmEvent(RequestUtil.getUserIndex(),PublicDataUtils.calculateMonthStart(time),PublicDataUtils.calculateMonthEnd(time),currentDevIds); + vo.setCurrentAlarmCount(alarmCount2); + + int runCount2 = this.baseMapper.queryRunEvent(RequestUtil.getUserIndex(),PublicDataUtils.calculateMonthStart(time),PublicDataUtils.calculateMonthEnd(time),currentDevIds); + vo.setCurrentRunCount(runCount2); + } } - userRole=strings.get(0); - - List device = roleEngineerDevService.getDevice(); - if(CollectionUtils.isEmpty(device)){ - devCountVO.setOnLineDevCount(0); - devCountVO.setOnLineDevs(new ArrayList<>()); - devCountVO.setOffLineDevCount(0); - devCountVO.setOffLineDevs(new ArrayList<>()); - }else { - queryWrapper.clear(); - queryWrapper.in("id",device); - - List csEquipmentDeliveryPOS = csEquipmentDeliveryMapper.selectList(queryWrapper); - 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.setOnLineDevCount(collect2.size()); - devCountVO.setOnLineDevs(collect2); - devCountVO.setOffLineDevCount(collect.size()); - devCountVO.setOffLineDevs(collect); - List roleengineer = roleEngineerDevService.getRoleengineer(); - devCountVO.setEningerCount(roleengineer.size()); - } - - List deviceTree = iCsLedgerService.getDeviceTree(null); - //由于多加了一程便携式设备 - List collect1 = deviceTree.stream() - .map(CsLedgerVO::getChildren).flatMap(Collection::stream) - .filter(temp -> temp.getId().equals(id)) - .map(CsLedgerVO::getChildren).flatMap(Collection::stream) - .map(CsLedgerVO::getChildren).flatMap(Collection::stream) - .map(CsLedgerVO::getId).collect(Collectors.toList()); - //求交集 - device.retainAll(collect1); - if(CollectionUtils.isEmpty(device)){ - devCountVO.setCurrentOnLineDevCount(0); - devCountVO.setCurrentOnLineDevs(new ArrayList<>()); - devCountVO.setCurrentOffLineDevCount(0); - devCountVO.setCurrentOffLineDevs(new ArrayList<>()); - devCountVO.setCurrentProjectCount(0); - - }else { - queryWrapper.clear(); - queryWrapper.in("id",device); - - List csEquipmentDeliveryPOS = csEquipmentDeliveryMapper.selectList(queryWrapper); - 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.setCurrentOnLineDevCount(collect2.size()); - devCountVO.setCurrentOnLineDevs(collect2); - devCountVO.setCurrentOffLineDevCount(collect.size()); - devCountVO.setCurrentOffLineDevs(collect); - List list = iCsLedgerService.lambdaQuery().eq(CsLedger::getPid, id).eq(CsLedger::getState, 1).list(); - devCountVO.setCurrentProjectCount(list.size()); - } - CsEventUserQueryParam csEventUserQueryParam = new CsEventUserQueryParam(); - csEventUserQueryParam.setStatus("0"); - List data = eventUserFeignClient.queryEventList(csEventUserQueryParam).getData(); - List event = data.stream().filter(temp -> temp.getType() == 0).collect(Collectors.toList()); - List harmonic = data.stream().filter(temp -> temp.getType() == 1).collect(Collectors.toList()); - List alarm = data.stream().filter(temp -> temp.getType() == 3).collect(Collectors.toList()); - - if(Objects.equals(userRole, AppRoleEnum.APP_VIP_USER.getCode())){ - alarm = alarm.stream().filter(temp -> Objects.equals("3", temp.getLevel())).collect(Collectors.toList()); - } - List run = data.stream().filter(temp -> temp.getType() == 2).collect(Collectors.toList()); - if(Objects.equals(userRole,AppRoleEnum.APP_VIP_USER.getCode())||Objects.equals(userRole,AppRoleEnum.TOURIST.getCode()) - ||Objects.equals(userRole,AppRoleEnum.MARKET_USER.getCode())){ - devCountVO.setFeedBackCount(0); - - }else { - CsFeedbackQueryParm csFeedbackQueryParm = new CsFeedbackQueryParm(); - csFeedbackQueryParm.setPageNum(1); - csFeedbackQueryParm.setPageSize(100000); - csFeedbackQueryParm.setStatus("1"); - Page data1 = feedBackFeignClient.queryFeedBackPage(csFeedbackQueryParm).getData(); - List collect = data1.getRecords().stream().filter(temp -> !Objects.equals(temp.getUserId(), RequestUtil.getUserIndex())).collect(Collectors.toList()); - devCountVO.setFeedBackCount(collect.size()); - } - - //todo 后续添加警告数,事件数 - devCountVO.setEventCount(event.size()); - devCountVO.setAlarmCount(alarm.size()); - devCountVO.setRunCount(run.size()); - devCountVO.setHarmonicCount(harmonic.size()); - List curEvent = event.stream().filter(temp -> Objects.equals(temp.getEngineeringid(), id)).collect(Collectors.toList()); - List curHarmonic = harmonic.stream().filter(temp -> Objects.equals(temp.getEngineeringid(), id)).collect(Collectors.toList()); - List curAlarm = alarm.stream().filter(temp -> Objects.equals(temp.getEngineeringid(), id)).collect(Collectors.toList()); - List curRun = run.stream().filter(temp -> Objects.equals(temp.getEngineeringid(), id)).collect(Collectors.toList()); - - devCountVO.setCurrentEventCount(curEvent.size()); - devCountVO.setCurrentAlarmCount(curAlarm.size()); - devCountVO.setCurrentRunCount(curRun.size()); - devCountVO.setCurrentHarmonicCount(curHarmonic.size()); - - - return devCountVO; + return vo; } + +// @Override +// public DevCountVO devCount(String id,String time) { +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// +// DevCountVO devCountVO = new DevCountVO(); +// +// String userRole = RequestUtil.getUserRole(); +// List strings = JSONArray.parseArray(userRole, String.class); +// if(CollectionUtils.isEmpty(strings)){ +// throw new BusinessException(AlgorithmResponseEnum.UNKNOW_ROLE); +// +// } +// userRole=strings.get(0); +// +// List device = roleEngineerDevService.getDevice(); +// if(CollectionUtils.isEmpty(device)){ +// devCountVO.setOnLineDevCount(0); +// devCountVO.setOnLineDevs(new ArrayList<>()); +// devCountVO.setOffLineDevCount(0); +// devCountVO.setOffLineDevs(new ArrayList<>()); +// }else { +// queryWrapper.clear(); +// queryWrapper.in("id",device); +// +// List csEquipmentDeliveryPOS = csEquipmentDeliveryMapper.selectList(queryWrapper); +// 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.setOnLineDevCount(collect2.size()); +// devCountVO.setOnLineDevs(collect2); +// devCountVO.setOffLineDevCount(collect.size()); +// devCountVO.setOffLineDevs(collect); +// List roleengineer = roleEngineerDevService.getRoleengineer(); +// devCountVO.setEningerCount(roleengineer.size()); +// } +// +// List deviceTree = iCsLedgerService.getDeviceTree(null); +// //由于多加了一程便携式设备 +// List collect1 = deviceTree.stream() +// .map(CsLedgerVO::getChildren).flatMap(Collection::stream) +// .filter(temp -> temp.getId().equals(id)) +// .map(CsLedgerVO::getChildren).flatMap(Collection::stream) +// .map(CsLedgerVO::getChildren).flatMap(Collection::stream) +// .map(CsLedgerVO::getId).collect(Collectors.toList()); +// //求交集 +// device.retainAll(collect1); +// if(CollectionUtils.isEmpty(device)){ +// devCountVO.setCurrentOnLineDevCount(0); +// devCountVO.setCurrentOnLineDevs(new ArrayList<>()); +// devCountVO.setCurrentOffLineDevCount(0); +// devCountVO.setCurrentOffLineDevs(new ArrayList<>()); +// devCountVO.setCurrentProjectCount(0); +// +// }else { +// queryWrapper.clear(); +// queryWrapper.in("id",device); +// +// List csEquipmentDeliveryPOS = csEquipmentDeliveryMapper.selectList(queryWrapper); +// 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.setCurrentOnLineDevCount(collect2.size()); +// devCountVO.setCurrentOnLineDevs(collect2); +// devCountVO.setCurrentOffLineDevCount(collect.size()); +// devCountVO.setCurrentOffLineDevs(collect); +// List list = iCsLedgerService.lambdaQuery().eq(CsLedger::getPid, id).eq(CsLedger::getState, 1).list(); +// devCountVO.setCurrentProjectCount(list.size()); +// } +// CsEventUserQueryParam csEventUserQueryParam = new CsEventUserQueryParam(); +// csEventUserQueryParam.setStatus("0"); +// +// //查询暂态事件、运行事件还是使用之前的方法 +// List data = eventUserFeignClient.queryEventList(csEventUserQueryParam).getData(); +// //查询稳态事件 先获取监测点id +// csLinePOService.getLinesByDevList(device); +// +// +// //查询运行告警事件 +// +// +// +// +// List event = data.stream().filter(temp -> temp.getType() == 0).collect(Collectors.toList()); +// List harmonic = data.stream().filter(temp -> temp.getType() == 1).collect(Collectors.toList()); +// List alarm = data.stream().filter(temp -> temp.getType() == 3).collect(Collectors.toList()); +// +// if(Objects.equals(userRole, AppRoleEnum.APP_VIP_USER.getCode())){ +// alarm = alarm.stream().filter(temp -> Objects.equals("3", temp.getLevel())).collect(Collectors.toList()); +// } +// List run = data.stream().filter(temp -> temp.getType() == 2).collect(Collectors.toList()); +// if(Objects.equals(userRole,AppRoleEnum.APP_VIP_USER.getCode())||Objects.equals(userRole,AppRoleEnum.TOURIST.getCode()) +// ||Objects.equals(userRole,AppRoleEnum.MARKET_USER.getCode())){ +// devCountVO.setFeedBackCount(0); +// +// }else { +// CsFeedbackQueryParm csFeedbackQueryParm = new CsFeedbackQueryParm(); +// csFeedbackQueryParm.setPageNum(1); +// csFeedbackQueryParm.setPageSize(100000); +// csFeedbackQueryParm.setStatus("1"); +// Page data1 = feedBackFeignClient.queryFeedBackPage(csFeedbackQueryParm).getData(); +// List collect = data1.getRecords().stream().filter(temp -> !Objects.equals(temp.getUserId(), RequestUtil.getUserIndex())).collect(Collectors.toList()); +// devCountVO.setFeedBackCount(collect.size()); +// } +// +// //todo 后续添加警告数,事件数 +// devCountVO.setEventCount(event.size()); +// devCountVO.setAlarmCount(alarm.size()); +// devCountVO.setRunCount(run.size()); +// devCountVO.setHarmonicCount(harmonic.size()); +// List curEvent = event.stream().filter(temp -> Objects.equals(temp.getEngineeringid(), id)).collect(Collectors.toList()); +// List curHarmonic = harmonic.stream().filter(temp -> Objects.equals(temp.getEngineeringid(), id)).collect(Collectors.toList()); +// List curAlarm = alarm.stream().filter(temp -> Objects.equals(temp.getEngineeringid(), id)).collect(Collectors.toList()); +// List curRun = run.stream().filter(temp -> Objects.equals(temp.getEngineeringid(), id)).collect(Collectors.toList()); +// +// devCountVO.setCurrentEventCount(curEvent.size()); +// devCountVO.setCurrentAlarmCount(curAlarm.size()); +// devCountVO.setCurrentRunCount(curRun.size()); +// devCountVO.setCurrentHarmonicCount(curHarmonic.size()); +// +// +// return devCountVO; +// } /** * @Description: 判断当前用户是否是主用户 0-否1-是 * @Param: 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 5a1e216..46fcf17 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 @@ -84,7 +84,7 @@ public class CsEngineeringServiceImpl extends ServiceImpl csEngineeringPOS = this.getBaseMapper ( ).selectList (queryWrapper); csEngineeringVOList = csEngineeringPOS.stream ().map (temp->{ @@ -196,6 +197,7 @@ public class CsEngineeringServiceImpl extends ServiceImpl csEngineeringPOPage = this.getBaseMapper ( ).selectPage (tempPage, queryWrapper); List collect = csEngineeringPOPage.getRecords ( ).stream ( ).map (temp -> { @@ -297,6 +299,13 @@ public class CsEngineeringServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CsEngineeringPO::getName,name).eq(CsEngineeringPO::getStatus,1); + return this.getOne(queryWrapper); + } + public String getAreaById(String id){ String areaName =redisUtil.getStringByKey (id); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java index 7d47d4a..c4590c1 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java @@ -24,6 +24,7 @@ import com.njcn.access.utils.MqttUtil; import com.njcn.common.pojo.dto.DeviceLogDTO; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.csdevice.api.CsLogsFeignClient; +import com.njcn.csdevice.api.EngineeringFeignClient; import com.njcn.csdevice.constant.DataParam; import com.njcn.csdevice.enums.AlgorithmResponseEnum; import com.njcn.csdevice.mapper.CsEquipmentDeliveryMapper; @@ -107,6 +108,7 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl lineIds = csLinePOService.getLineByDev(device); + + List recordList = new ArrayList<>(); list.getRecords().forEach(temp->{ temp.setIsPrimaryUser(csDeviceUserPOService.isPrimaryUser(temp.getEquipmentId())); //获取设备类型 SysDicTreePO po = dictTreeFeignClient.queryById(temp.getDevType()).getData(); temp.setDevType(po.getCode()); temp.setLineList(lineIds.stream().filter(line -> line.getDevId().equals(temp.getEquipmentId())).sorted(Comparator.comparing(CsLinePO::getLineId)).collect(Collectors.toList())); + if (!Objects.equals(DicDataEnum.PORTABLE.getCode(),temp.getDevType())) { + recordList.add(temp); + } }); - List recordList = list.getRecords(); //获取用户置顶的设备 List topList = csUserPinsService.getPinToTopList(); List targetIdList = topList.stream() @@ -606,13 +616,15 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(CsEquipmentDeliveryPO::getNdid,nDid) + .ne(CsEquipmentDeliveryPO::getRunStatus,0) + .set(CsEquipmentDeliveryPO::getAssociatedEngineering,engineeringId) + .set(CsEquipmentDeliveryPO::getAssociatedProject,projectId); + result = this.update(lambdaUpdateWrapper); + if (result) { + refreshDeviceDataCache(); + } + } + @Override public boolean rebootDevice(String nDid) { boolean result = false; 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 cfd6669..50a10b4 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 @@ -11,6 +11,8 @@ 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.api.CsCommTerminalFeignClient; +import com.njcn.csdevice.api.CsMarketDataFeignClient; import com.njcn.csdevice.constant.DataParam; import com.njcn.csdevice.enums.LineBaseEnum; import com.njcn.csdevice.mapper.*; @@ -19,6 +21,7 @@ import com.njcn.csdevice.pojo.dto.LineParamDTO; import com.njcn.csdevice.pojo.param.CsLedgerParam; import com.njcn.csdevice.pojo.po.*; import com.njcn.csdevice.pojo.vo.CsLedgerVO; +import com.njcn.csdevice.pojo.vo.CsMarketDataVO; import com.njcn.csdevice.service.*; import com.njcn.csharmonic.api.PqSensitiveUserFeignClient; import com.njcn.device.biz.pojo.po.PqSensitiveUser; @@ -68,6 +71,9 @@ public class CsLedgerServiceImpl extends ServiceImpl i private final PqSensitiveUserFeignClient pqSensitiveUserFeignClient; private final UserFeignClient userFeignClient; private final ICsUserPinsService csUserPinsService; + private final CsCommTerminalFeignClient csCommTerminalFeignClient; + private final CsMarketDataFeignClient csMarketDataFeignClient; + @Override public List getLedgerTree() { @@ -93,6 +99,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i List device = roleEngineerDevService.getDevice(); //区分治理装置和云前置装置 List zhiLianDevice = new ArrayList<>(); + List portableDevice = new ArrayList<>(); List cldDevice = new ArrayList<>(); if (CollectionUtil.isNotEmpty(device)) { List csEquipmentDeliveryPOS = csEquipmentDeliveryMapper.selectBatchIds(device); @@ -112,6 +119,14 @@ public class CsLedgerServiceImpl extends ServiceImpl i .map(CsEquipmentDeliveryPO::getId) .forEach(zhiLianDevice::add) ); + DictTreeVO vo3 = dictTreeFeignClient.queryByCode(DicDataEnum.PORTABLE.getCode()).getData(); + Optional.ofNullable(vo3) + .map(DictTreeVO::getId) + .ifPresent(id -> csEquipmentDeliveryPOS.stream() + .filter(item -> Objects.equals(item.getDevType(), id)) + .map(CsEquipmentDeliveryPO::getId) + .forEach(portableDevice::add) + ); } 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()); @@ -208,28 +223,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i portable.setPid("0"); portable.setId(IdUtil.simpleUUID()); - //根据当前用户获取便携式设备 - 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()) || roles.contains(AppRoleEnum.REGULAR_USER.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()); - List list1 = csDeviceUserPOMapper.selectList(queryWrapper); - List result = new ArrayList<>(); - if (CollectionUtil.isNotEmpty(list1)) { - result = list1.stream().map(CsDeviceUserPO::getDeviceId).collect(Collectors.toList()); - } - //针对未启用的装置判断 - List finalResult = result; - ledger = allList.stream() - .filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0") && finalResult.contains(item.getId())) - .collect(Collectors.toList()); - } + List ledger = allList.stream().filter(obj -> portableDevice.contains(obj.getId())).collect(Collectors.toList()); Map poMap2 = ledger.stream() .collect(Collectors.toMap( CsLedgerVO::getId, @@ -245,6 +239,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i c.setType("device"); c.setName(po.getName()); c.setSort(po.getSort()); + c.setDevConType(po.getDevAccessMethod()); }) .filter(c -> poMap2.get(c.getId()).getUsageStatus() == 1) .collect(Collectors.toList()); @@ -336,6 +331,112 @@ public class CsLedgerServiceImpl extends ServiceImpl i return tree; } + @Override + public List appLineTree() { + //根据用户获取监测点 + List lineIds = csCommTerminalFeignClient.getLineIdsByUser(RequestUtil.getUserIndex()).getData(); + List engineeringIds = roleEngineerDevService.getRoleengineer(); + + if (CollectionUtil.isEmpty(lineIds) && CollectionUtil.isEmpty(engineeringIds)) { + return Collections.emptyList(); + } + + //获取所有台账数据 + List allList = this.baseMapper.getAll(); + if (CollectionUtil.isEmpty(allList)) { + return Collections.emptyList(); + } + + Set resultEngineeringIds = new HashSet<>(); + + //1. 反推:从监测点向上找到所有相关的工程 + if (CollectionUtil.isNotEmpty(lineIds)) { + //过滤出监测点数据 (level=3) + List lineList = allList.stream() + .filter(item -> Objects.equals(item.getLevel(), LineBaseEnum.LINE_LEVEL.getCode())) + .filter(item -> lineIds.contains(item.getId())) + .collect(Collectors.toList()); + + //从监测点向上追溯到工程 + lineList.forEach(line -> { + String[] pids = line.getPids().split(","); + //根据层级结构,工程 ID 在 pids 的第一个位置(索引为 1,因为索引 0 是"0") + if (pids.length > LineBaseEnum.ENGINEERING_LEVEL.getCode() + 1) { + String engineeringId = pids[LineBaseEnum.ENGINEERING_LEVEL.getCode() + 1]; + resultEngineeringIds.add(engineeringId); + } + }); + } + + //2. 正推:添加用户已有的工程 ID + if (CollectionUtil.isNotEmpty(engineeringIds)) { + resultEngineeringIds.addAll(engineeringIds); + } + + if (CollectionUtil.isEmpty(resultEngineeringIds)) { + return Collections.emptyList(); + } + + //获取所有层级数据并排序 + //监测点数据 + List lineList = allList.stream() + .filter(item -> Objects.equals(item.getLevel(), LineBaseEnum.LINE_LEVEL.getCode())) + .filter(item -> lineIds.contains(item.getId())) + .sorted(Comparator.comparing(CsLedgerVO::getSort)) + .collect(Collectors.toList()); + + //设备数据 + List deviceList = allList.stream() + .filter(item -> Objects.equals(item.getLevel(), LineBaseEnum.DEVICE_LEVEL.getCode())) + .sorted(Comparator.comparing(CsLedgerVO::getSort)) + .collect(Collectors.toList()); + + //项目数据 + List projectList = allList.stream() + .filter(item -> Objects.equals(item.getLevel(), LineBaseEnum.PROJECT_LEVEL.getCode())) + .sorted(Comparator.comparing(CsLedgerVO::getSort)) + .collect(Collectors.toList()); + + //工程数据,过滤掉名字是"便携式工程"的数据 + List engineeringList = allList.stream() + .filter(item -> Objects.equals(item.getLevel(), LineBaseEnum.ENGINEERING_LEVEL.getCode())) + .filter(item -> resultEngineeringIds.contains(item.getId())) + .filter(item -> !Objects.equals(item.getName(), "便携式工程")) + .sorted(Comparator.comparing(CsLedgerVO::getSort)) + .collect(Collectors.toList()); + + //构建设备与监测点的关系 + deviceList.forEach(device -> { + List children = lineList.stream() + .filter(line -> Objects.equals(line.getPid(), device.getId())) + .collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(children)) { + device.setChildren(children); + } + }); + + //构建项目与设备的关系 + projectList.forEach(project -> { + List children = deviceList.stream() + .filter(device -> Objects.equals(device.getPid(), project.getId())) + .collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(children)) { + project.setChildren(children); + } + }); + + //构建工程与项目的关系 + engineeringList.forEach(engineering -> { + List children = projectList.stream() + .filter(project -> Objects.equals(project.getPid(), engineering.getId())) + .collect(Collectors.toList()); + //工程下面可以没有项目,所以即使 children 为空也要保留 + engineering.setChildren(children); + }); + + return engineeringList; + } + /** * 合并两个项目列表,根据项目 ID 去重并合并子节点 */ @@ -432,6 +533,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i List device = roleEngineerDevService.getDevice(); List zhiLianDevice = new ArrayList<>(); + List portableDevice = new ArrayList<>(); List cldDevice = new ArrayList<>(); if (CollectionUtil.isNotEmpty(device)) { List csEquipmentDeliveryPOS = csEquipmentDeliveryMapper.selectBatchIds(device); @@ -451,6 +553,14 @@ public class CsLedgerServiceImpl extends ServiceImpl i .map(CsEquipmentDeliveryPO::getId) .forEach(zhiLianDevice::add) ); + DictTreeVO vo3 = dictTreeFeignClient.queryByCode(DicDataEnum.PORTABLE.getCode()).getData(); + Optional.ofNullable(vo3) + .map(DictTreeVO::getId) + .ifPresent(id -> csEquipmentDeliveryPOS.stream() + .filter(item -> Objects.equals(item.getDevType(), id)) + .map(CsEquipmentDeliveryPO::getId) + .forEach(portableDevice::add) + ); } engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList()); @@ -528,28 +638,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i portable.setPid("0"); portable.setId(IdUtil.simpleUUID()); - 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()) || roles.contains(AppRoleEnum.REGULAR_USER.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()); - List list1 = csDeviceUserPOMapper.selectList(queryWrapper); - List result = new ArrayList<>(); - if (CollectionUtil.isNotEmpty(list1)) { - result = list1.stream().map(CsDeviceUserPO::getDeviceId).collect(Collectors.toList()); - } - //针对未启用的装置判断 - List finalResult = result; - ledger = allList.stream() - .filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0") && finalResult.contains(item.getId())) - .collect(Collectors.toList()); - } - + List ledger = allList.stream().filter(obj -> portableDevice.contains(obj.getId())).collect(Collectors.toList()); Map poMap2 = ledger.stream() .collect(Collectors.toMap( CsLedgerVO::getId, @@ -964,78 +1053,6 @@ public class CsLedgerServiceImpl extends ServiceImpl i return tree; } -// @Override -// public List getztProjectTree() { -// List engineeringList; -// List allList = this.baseMapper.getAll(); -// /*获取用户工程,设备信息过滤*/ -// List roleengineer = roleEngineerDevService.getRoleengineer(); -// List device = roleEngineerDevService.getDevice(); -// 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")). -// peek( -// temp -> { -// CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(temp.getId()); -// temp.setComFlag(po.getRunStatus()); -// temp.setNDId(po.getNdid()); -// temp.setType("device"); -// } -// ). -// sorted(Comparator.comparing(CsLedgerVO::getSort)) -// .collect(Collectors.toList()); -// checkDevSetData(deviceList); -// projectList.forEach(pro -> pro.setChildren(getChildren(pro, deviceList))); -// engineeringList.forEach(eng -> eng.setChildren(getChildren(eng, projectList))); -// -// //获取便携式项目数 -// CsLedgerVO portable = new CsLedgerVO(); -// portable.setLevel(0); -// portable.setName(DataParam.PORTABLE_SYSTEM); -// portable.setPid("0"); -// portable.setId(IdUtil.simpleUUID()); -// -// CsLedgerVO project = new CsLedgerVO(); -// project.setLevel(1); -// project.setName(DataParam.WIRELESS_PROJECT); -// 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()); -// checkDevSetData(portables); -// for (CsLedgerVO c : portables) { -// c.setPid(project.getId()); -// CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(c.getId()); -// c.setComFlag(po.getRunStatus()); -// c.setNDId(po.getNdid()); -// c.setType("device"); -// } -// project.setChildren(portables); -// -// List wxProjectList = new ArrayList<>(); -// wxProjectList.add(project); -// -// portable.setChildren(wxProjectList); -// -// -// CsLedgerVO government = new CsLedgerVO(); -// government.setLevel(0); -// government.setName(DataParam.GOVERNANCE_SYSTEM); -// government.setPid("0"); -// government.setId(IdUtil.simpleUUID()); -// government.setChildren(engineeringList); -// List tree = new ArrayList<>(); -// -// if (CollUtil.isNotEmpty(portables)) { -// tree.add(portable); -// } -// if (CollUtil.isNotEmpty(deviceList)) { -// tree.add(government); -// } -// -// return tree; -// } @Override public List objTree() { @@ -1151,37 +1168,38 @@ public class CsLedgerServiceImpl extends ServiceImpl i List allList = this.baseMapper.getAll(); if (CollectionUtil.isEmpty(allList)) { CsLedgerVO government = new CsLedgerVO(); - government.setLevel(0); - government.setName(DataParam.cldDev); + government.setLevel(-1); + government.setName("台账树"); government.setPid("0"); government.setId(IdUtil.simpleUUID()); government.setChildren(new ArrayList<>()); return government; } - DictTreeVO cldDict = dictTreeFeignClient.queryByCode(DicDataEnum.DEV_CLD.getCode()).getData(); - String cldDevTypeId = cldDict.getId(); - List engineeringList = allList.stream() .filter(item -> item.getLevel().equals(LineBaseEnum.ENGINEERING_LEVEL.getCode())) + .sorted(Comparator.comparing(CsLedgerVO::getSort)) .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 -> item.getLevel().equals(LineBaseEnum.DEVICE_LEVEL.getCode())) + .sorted(Comparator.comparing(CsLedgerVO::getSort)) .collect(Collectors.toList()); List lineList = allList.stream() .filter(item -> item.getLevel().equals(LineBaseEnum.LINE_LEVEL.getCode())) + .sorted(Comparator.comparing(CsLedgerVO::getSort)) .collect(Collectors.toList()); if (CollectionUtil.isEmpty(deviceList)) { CsLedgerVO government = new CsLedgerVO(); - government.setLevel(0); - government.setName(DataParam.cldDev); + government.setLevel(-1); + government.setName("台账树"); government.setPid("0"); government.setId(IdUtil.simpleUUID()); government.setChildren(engineeringList); @@ -1194,7 +1212,6 @@ public class CsLedgerServiceImpl extends ServiceImpl i Map lineDevMap = lineList.stream().collect(Collectors.toMap(CsLedgerVO::getId, CsLedgerVO::getPid)); Set cldDevIds = devs.stream() - .filter(item -> item.getDevType().equals(cldDevTypeId)) .map(CsEquipmentDeliveryPO::getId) .collect(Collectors.toSet()); @@ -1208,6 +1225,7 @@ public class CsLedgerServiceImpl extends ServiceImpl i CsEquipmentDeliveryPO dev = devsMap.get(device.getId()); if (dev != null) { device.setComFlag(dev.getRunStatus()); + device.setDevConType(dev.getDevAccessMethod()); } }); @@ -1222,30 +1240,33 @@ public class CsLedgerServiceImpl extends ServiceImpl i }); engineeringList.forEach(engineering -> { - List projectChildren = new ArrayList<>(); - for (CsLedgerVO project : projectList) { - if (project.getPid().equals(engineering.getId())) { - List projectDevices = projectToDeviceMap.getOrDefault(project.getId(), new ArrayList<>()); - if (CollectionUtil.isNotEmpty(projectDevices)) { - List deviceChildren = new ArrayList<>(); - for (CsLedgerVO device : projectDevices) { - if (cldDevIds.contains(device.getId())) { - List lineChildren = deviceToLineMap.getOrDefault(device.getId(), new ArrayList<>()); - device.setChildren(lineChildren); - deviceChildren.add(device); - } + List sortedProjects = projectList.stream() + .filter(project -> project.getPid().equals(engineering.getId())) + .peek(project -> { + List projectDevices = projectToDeviceMap.getOrDefault(project.getId(), new ArrayList<>()); + if (CollectionUtil.isNotEmpty(projectDevices)) { + List sortedDevices = projectDevices.stream() + .filter(device -> cldDevIds.contains(device.getId())) + .peek(device -> { + List sortedLines = deviceToLineMap.getOrDefault(device.getId(), new ArrayList<>()) + .stream() + .sorted(Comparator.comparing(CsLedgerVO::getSort)) + .collect(Collectors.toList()); + device.setChildren(sortedLines); + }) + .sorted(Comparator.comparing(CsLedgerVO::getSort)) + .collect(Collectors.toList()); + project.setChildren(sortedDevices); } - project.setChildren(deviceChildren); - } - projectChildren.add(project); - } - } - engineering.setChildren(projectChildren); + }) + .sorted(Comparator.comparing(CsLedgerVO::getSort)) + .collect(Collectors.toList()); + engineering.setChildren(sortedProjects); }); CsLedgerVO government = new CsLedgerVO(); - government.setLevel(0); - government.setName(DataParam.cldDev); + government.setLevel(-1); + government.setName("台账树"); government.setPid("0"); government.setId(IdUtil.simpleUUID()); government.setChildren(engineeringList); @@ -1253,105 +1274,6 @@ public class CsLedgerServiceImpl extends ServiceImpl i return government; } - - - -// @Override -// public CsLedgerVO cldTree() { -// -// List engineerTree = new ArrayList<>(); -// List projectTree = new ArrayList<>(); -// List deviceTree = new ArrayList<>(); -// List lineTree = new ArrayList<>(); -// -// List allList = this.baseMapper.getAll(); -// if (CollectionUtil.isNotEmpty(allList)) { -// //工程集合 -// List tree1 = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.ENGINEERING_LEVEL.getCode())).collect(Collectors.toList()); -// //项目集合 -// List tree2 = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).collect(Collectors.toList()); -// //设备集合 -// List tree3 = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.DEVICE_LEVEL.getCode())).collect(Collectors.toList()); -// //监测点集合 -// List tree4 = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.LINE_LEVEL.getCode())).collect(Collectors.toList()); -// -// //筛选出云前置设备 -// if (CollectionUtil.isNotEmpty(tree3)) { -// Set list1 = new HashSet<>(); -// List devList = tree3.stream().map(CsLedgerVO::getId).collect(Collectors.toList()); -// List devs = csEquipmentDeliveryMapper.selectBatchIds(devList); -// Map devsMap = devs.stream().collect(Collectors.toMap(CsEquipmentDeliveryPO::getId, Function.identity())); -// DictTreeVO vo1 = dictTreeFeignClient.queryByCode(DicDataEnum.DEV_CLD.getCode()).getData(); -// -// //list1是 cld设备 -// devs.forEach(item -> { -// if (item.getDevType().equals(vo1.getId())) { -// list1.add(item.getId()); -// } -// }); -// //list2是 非cld设备 -// Set list2 = devList.stream().filter(item -> !list1.contains(item)).collect(Collectors.toSet()); -// List tree5 = tree3.stream().filter(vo -> list2.contains(vo.getId())).collect(Collectors.toList()); -// Set list3 = tree5.stream().map(CsLedgerVO::getPid).collect(Collectors.toSet()); -// projectTree = tree2.stream().filter(vo -> !list3.contains(vo.getId())).collect(Collectors.toList()); -// -// List tree6 = tree2.stream().filter(vo -> list3.contains(vo.getId())).collect(Collectors.toList()); -// Set proList = tree6.stream().map(CsLedgerVO::getPid).collect(Collectors.toSet()); -// engineerTree = tree1.stream().filter(vo -> !proList.contains(vo.getId())).collect(Collectors.toList()); -// -// if (CollectionUtil.isNotEmpty(list1)) { -// deviceTree = tree3.stream() -// .filter(vo -> list1.contains(vo.getId())) -// .peek(item -> { -// CsEquipmentDeliveryPO dev = devsMap.get(item.getId()); -// if (dev != null) { -// item.setComFlag(dev.getRunStatus()); -// } -// }) -// .collect(Collectors.toList()); -// -// lineTree = tree4.stream() -// .filter(vo -> list1.contains(vo.getPid())) -// .peek(item -> { -// CsEquipmentDeliveryPO dev = devsMap.get(item.getId()); -// if (dev != null) { -// item.setComFlag(dev.getRunStatus()); -// } -// }) -// .collect(Collectors.toList()); -// } -// } -// } -// -// if (CollectionUtil.isNotEmpty(deviceTree)) { -// List finalLineTree = lineTree; -// deviceTree.forEach(item -> { -// item.setChildren(getChildren(item, finalLineTree)); -// }); -// } -// if (CollectionUtil.isNotEmpty(projectTree)) { -// List finalDeviceTree = deviceTree; -// projectTree.forEach(item -> { -// item.setChildren(getChildren(item, finalDeviceTree)); -// }); -// } -// if (CollectionUtil.isNotEmpty(engineerTree)) { -// List finalProjectTree = projectTree; -// engineerTree.forEach(item -> { -// item.setChildren(getChildren(item, finalProjectTree)); -// }); -// } -// -// CsLedgerVO government = new CsLedgerVO(); -// government.setLevel(0); -// government.setName(DataParam.cldDev); -// government.setPid("0"); -// government.setId(IdUtil.simpleUUID()); -// government.setChildren(engineerTree); -// -// return government; -// } - @Override public List getInfoByIds(List list) { List details = new ArrayList<>(); @@ -1385,51 +1307,73 @@ public class CsLedgerServiceImpl extends ServiceImpl i @Override public List getDevInfoByEngineerIds(List list) { + // 参数校验,确保 list 不为空 + if (CollUtil.isEmpty(list)) { + return new ArrayList<>(); + } + List details = new ArrayList<>(); - //工程 + // 工程 LambdaQueryWrapper queryWrapper0 = new LambdaQueryWrapper<>(); queryWrapper0.in(CsLedger::getId, list); List engineering = this.list(queryWrapper0); + if (CollUtil.isEmpty(engineering)) { + return details; + } Map engineeringMap = engineering.stream().collect(Collectors.toMap(CsLedger::getId, item -> item)); - //项目 + // 项目 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(CsLedger::getPid, list); List project = this.list(queryWrapper); + if (CollUtil.isEmpty(project)) { + return details; + } Map projectMap = project.stream().collect(Collectors.toMap(CsLedger::getId, item -> item)); - //设备 + // 设备 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 (CollUtil.isNotEmpty(projectIds)) { + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.in(CsLedger::getPid, projectIds); + List dev = this.list(queryWrapper2); - if (CollectionUtil.isNotEmpty(dev)) { - List devIds = dev.stream().map(CsLedger::getId).collect(Collectors.toList()); - List devs = csEquipmentDeliveryMapper.selectBatchIds(devIds); - Map devsMap = devs.stream().collect(Collectors.toMap(CsEquipmentDeliveryPO::getId, item -> item)); + if (CollUtil.isNotEmpty(dev)) { + List devIds = dev.stream().map(CsLedger::getId).collect(Collectors.toList()); + List devs = csEquipmentDeliveryMapper.selectBatchIds(devIds); + Map devsMap = devs.stream().collect(Collectors.toMap(CsEquipmentDeliveryPO::getId, item -> item)); - dev.forEach(item -> { - DevDetailDTO detail = new DevDetailDTO(); - detail.setEquipmentName(item.getName()); - detail.setEquipmentId(item.getId()); + dev.forEach(item -> { + DevDetailDTO detail = new DevDetailDTO(); + detail.setEquipmentName(item.getName()); + detail.setEquipmentId(item.getId()); - CsLedger csLedger = projectMap.get(item.getPid()); - detail.setProjectId(csLedger.getId()); - detail.setProjectName(csLedger.getName()); + CsLedger csLedger = projectMap.get(item.getPid()); + if (csLedger != null) { + detail.setProjectId(csLedger.getId()); + detail.setProjectName(csLedger.getName()); - CsLedger csLedger1 = engineeringMap.get(csLedger.getPid()); - detail.setEngineeringid(csLedger1.getId()); - detail.setEngineeringName(csLedger1.getName()); - detail.setRunStatus(devsMap.get(item.getId()).getRunStatus()); + CsLedger csLedger1 = engineeringMap.get(csLedger.getPid()); + if (csLedger1 != null) { + detail.setEngineeringid(csLedger1.getId()); + detail.setEngineeringName(csLedger1.getName()); + } + } - details.add(detail); - }); + CsEquipmentDeliveryPO devInfo = devsMap.get(item.getId()); + if (devInfo != null) { + detail.setRunStatus(devInfo.getRunStatus()); + } + + details.add(detail); + }); + } } return details; } + @Override public List getEngineeringHaveDevs(List list) { List result = new ArrayList<>(); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsMarketDataServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsMarketDataServiceImpl.java index 904beef..54c52bf 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsMarketDataServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsMarketDataServiceImpl.java @@ -1,11 +1,15 @@ package com.njcn.csdevice.service.impl; +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.csdevice.mapper.CsEngineeringMapper; +import com.njcn.csdevice.mapper.CsMarketDataMapper; import com.njcn.csdevice.pojo.param.CsMarketDataParam; import com.njcn.csdevice.pojo.param.EngineerIdParam; import com.njcn.csdevice.pojo.po.CsEngineeringPO; import com.njcn.csdevice.pojo.po.CsLedger; +import com.njcn.csdevice.pojo.po.CsMarketData; import com.njcn.csdevice.pojo.vo.CsMarketDataVO; import com.njcn.csdevice.service.CsMarketDataService; import com.njcn.csdevice.service.ICsLedgerService; @@ -13,16 +17,12 @@ import com.njcn.web.utils.RequestUtil; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.njcn.csdevice.pojo.po.CsMarketData; -import com.njcn.csdevice.mapper.CsMarketDataMapper; -import org.springframework.transaction.annotation.Transactional; - /** * * Description: @@ -79,7 +79,11 @@ public class CsMarketDataServiceImpl extends ServiceImpl queryAllEnginner(String userId) { List result = new ArrayList<>(); - List list = csLedgerService.lambdaQuery().eq(CsLedger::getState, 1).eq(CsLedger::getLevel, 0).list(); + List list = csLedgerService.lambdaQuery() + .eq(CsLedger::getState, 1) + .eq(CsLedger::getLevel, 0) + .ne(CsLedger::getName, "便携式工程") + .list(); List csMarketDataVOS = this.queryByUseId(userId); List collect = csMarketDataVOS.stream().map(CsMarketDataVO::getEngineerId).collect(Collectors.toList()); List collect1 = list.stream().filter(temp -> !collect.contains(temp.getId())).collect(Collectors.toList()); @@ -115,4 +119,19 @@ public class CsMarketDataServiceImpl extends ServiceImpl queryWrap = new LambdaQueryWrapper<>(); + queryWrap.eq(CsMarketData::getUserId,userId); + queryWrap.eq(CsMarketData::getEngineerId,engineeringId); + CsMarketData csMarketData = this.getOne(queryWrap); + if (csMarketData == null) { + csMarketData = new CsMarketData(); + csMarketData.setUserId(userId); + csMarketData.setEngineerId(engineeringId); + this.save(csMarketData); + } + return true; + } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTouristDataPOServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTouristDataPOServiceImpl.java index c4400b4..592f425 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTouristDataPOServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTouristDataPOServiceImpl.java @@ -58,8 +58,7 @@ public class CsTouristDataPOServiceImpl extends ServiceImpl getLedgerInfo(IcdParam param) { @@ -162,8 +164,9 @@ class IcdServiceImpl implements IcdService { } Integer level = csLedger.getLevel(); String[] pids = csLedger.getPids().split(StrUtil.COMMA); + Integer sort = csLedger.getSort(); // 设置工程信息(所有级别都需要) - setEngineeringInfo(vo, level, pids, id); + setEngineeringInfo(vo, level, pids, id, sort); // 根据级别设置不同的业务数据 switch (level) { case 0: @@ -369,24 +372,6 @@ class IcdServiceImpl implements IcdService { return replies; } -// private CsTerminalReply buildTerminalReply(String replyId, CsEquipmentDeliveryPO device, -// List csLineList) { -// List lineIds = csLineList.stream() -// .filter(line -> Objects.equals(line.getDeviceId(), device.getId())) -// .map(CsLinePO::getLineId) -// .collect(Collectors.toList()); -// -// CsTerminalReply reply = new CsTerminalReply(); -// reply.setId(IdUtil.simpleUUID()); -// reply.setReplyId(replyId); -// reply.setNodeId(device.getNodeId()); -// reply.setProcessNo(device.getNodeProcess()); -// reply.setDeviceId(device.getId()); -// reply.setLineId(String.join(",", lineIds)); -// reply.setIsReceived(0); -// reply.setCode("allEvent"); -// return reply; -// } @Override @Transactional(rollbackFor = Exception.class) @@ -500,7 +485,7 @@ class IcdServiceImpl implements IcdService { /** * 设置工程信息 */ - private void setEngineeringInfo(CldLedgerVo vo, Integer level, String[] pids, String id) { + private void setEngineeringInfo(CldLedgerVo vo, Integer level, String[] pids, String id, Integer sort) { String engineeringId; if (level == 0) { @@ -519,6 +504,7 @@ class IcdServiceImpl implements IcdService { vo.setProvince(po.getProvince()); vo.setCity(po.getCity()); vo.setEngineeringDescription(po.getDescription()); + vo.setSort(sort); } } @@ -526,8 +512,22 @@ class IcdServiceImpl implements IcdService { * 处理0级数据(工程级别) */ private void handleLevel0(CldLedgerVo vo, String id) { + List result = new ArrayList<>(); List projectInfoList = appProjectService.getProjectByEngineering(Collections.singletonList(id)); - vo.setProjectInfoList(projectInfoList); + if (CollectionUtil.isNotEmpty(projectInfoList)) { + List projectIds = projectInfoList.stream().map(AppProjectPO::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(AppTopologyDiagramPO::getProjectId,projectIds).eq(AppTopologyDiagramPO::getStatus,1); + List appTopologyDiagramPOList = appTopologyDiagramService.list(queryWrapper); + Map appTopologyDiagramPOMap = appTopologyDiagramPOList.stream().collect(Collectors.toMap(AppTopologyDiagramPO::getProjectId, item -> item)); + projectInfoList.forEach(item->{ + ProjectVO vo1 = new ProjectVO(); + BeanUtils.copyProperties(item,vo1); + vo1.setTopoId(Objects.isNull(appTopologyDiagramPOMap.get(item.getId()))?null:appTopologyDiagramPOMap.get(item.getId()).getTopoId()); + result.add(vo1); + }); + } + vo.setProjectInfoList(result); } /** @@ -535,19 +535,34 @@ class IcdServiceImpl implements IcdService { */ private void handleLevel1(CldLedgerVo vo, String id, String[] pids) { // 设置项目信息 + List result = new ArrayList<>(); List appProjectPOS = appProjectService.listByIds(Collections.singletonList(id)); - vo.setProjectInfoList(appProjectPOS); + if (CollectionUtil.isNotEmpty(appProjectPOS)) { + List projectIds = appProjectPOS.stream().map(AppProjectPO::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(AppTopologyDiagramPO::getProjectId,projectIds).eq(AppTopologyDiagramPO::getStatus,1); + List appTopologyDiagramPOList = appTopologyDiagramService.list(queryWrapper); + Map appTopologyDiagramPOMap = appTopologyDiagramPOList.stream().collect(Collectors.toMap(AppTopologyDiagramPO::getProjectId, item -> item)); + appProjectPOS.forEach(item->{ + ProjectVO vo1 = new ProjectVO(); + BeanUtils.copyProperties(item,vo1); + vo1.setTopoId(Objects.isNull(appTopologyDiagramPOMap.get(item.getId()))?null:appTopologyDiagramPOMap.get(item.getId()).getTopoId()); + result.add(vo1); + }); + } + vo.setProjectInfoList(result); // 设置设备信息 List devList = csEquipmentDeliveryService.getDevListByProjectId(id); - if (CollectionUtil.isNotEmpty(devList)) { - //如果不是监测设备,则不展示 - DictTreeVO cldDict = dictTreeFeignClient.queryByCode(DicDataEnum.DEV_CLD.getCode()).getData(); - String cldDevTypeId = cldDict.getId(); - List cldDevIds = devList.stream() - .filter(item -> item.getDevType().equals(cldDevTypeId)) - .collect(Collectors.toList()); - vo.setDeviceInfoList(cldDevIds); - } + vo.setDeviceInfoList(devList); +// if (CollectionUtil.isNotEmpty(devList)) { +// //如果不是监测设备,则不展示 +// DictTreeVO cldDict = dictTreeFeignClient.queryByCode(DicDataEnum.DEV_CLD.getCode()).getData(); +// String cldDevTypeId = cldDict.getId(); +// List cldDevIds = devList.stream() +// .filter(item -> item.getDevType().equals(cldDevTypeId)) +// .collect(Collectors.toList()); +// vo.setDeviceInfoList(cldDevIds); +// } } /** @@ -558,13 +573,43 @@ class IcdServiceImpl implements IcdService { if (pids.length > 2) { String projectId = pids[2]; List project = appProjectService.listByIds(Collections.singletonList(projectId)); - vo.setProjectInfoList(project); + List result = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(project)) { + List projectIds = project.stream().map(AppProjectPO::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(AppTopologyDiagramPO::getProjectId,projectIds).eq(AppTopologyDiagramPO::getStatus,1); + List appTopologyDiagramPOList = appTopologyDiagramService.list(queryWrapper); + Map appTopologyDiagramPOMap = appTopologyDiagramPOList.stream().collect(Collectors.toMap(AppTopologyDiagramPO::getProjectId, item -> item)); + project.forEach(item->{ + ProjectVO vo1 = new ProjectVO(); + BeanUtils.copyProperties(item,vo1); + vo1.setTopoId(Objects.isNull(appTopologyDiagramPOMap.get(item.getId()))?null:appTopologyDiagramPOMap.get(item.getId()).getTopoId()); + result.add(vo1); + }); + } + vo.setProjectInfoList(result); } // 设置设备信息 List csEquipmentDeliveryPOS = csEquipmentDeliveryService.listByIds(Collections.singletonList(id)); vo.setDeviceInfoList(csEquipmentDeliveryPOS); // 设置线路信息 List list = csLinePOService.queryByDevId(id); + if (CollectionUtil.isNotEmpty(list)) { + list.forEach(item->{ + if (Objects.isNull(item.getPt2Ratio())) { + item.setPt2Ratio(1.0); + } + if (Objects.isNull(item.getCt2Ratio())) { + item.setCt2Ratio(1.0); + } + if (Objects.isNull(item.getLineNo())) { + item.setLineNo(item.getClDid() == 0 ? null:item.getClDid()); + } + if (Objects.isNull(item.getRunStatus())) { + item.setRunStatus(csEquipmentDeliveryPOS.get(0).getRunStatus()); + } + }); + } vo.setLineInfoList(list); } @@ -574,18 +619,51 @@ class IcdServiceImpl implements IcdService { private void handleLevel3(CldLedgerVo vo, String id, String[] pids) { // 设置项目信息(项目ID在pids[2]位置) if (pids.length > 2) { + List result = new ArrayList<>(); String projectId = pids[2]; List appProjectPOS = appProjectService.listByIds(Collections.singletonList(projectId)); - vo.setProjectInfoList(appProjectPOS); + if (CollectionUtil.isNotEmpty(appProjectPOS)) { + List projectIds = appProjectPOS.stream().map(AppProjectPO::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(AppTopologyDiagramPO::getProjectId,projectIds).eq(AppTopologyDiagramPO::getStatus,1); + List appTopologyDiagramPOList = appTopologyDiagramService.list(queryWrapper); + Map appTopologyDiagramPOMap = appTopologyDiagramPOList.stream().collect(Collectors.toMap(AppTopologyDiagramPO::getProjectId, item -> item)); + appProjectPOS.forEach(item->{ + ProjectVO vo1 = new ProjectVO(); + BeanUtils.copyProperties(item,vo1); + vo1.setTopoId(Objects.isNull(appTopologyDiagramPOMap.get(item.getId()))?null:appTopologyDiagramPOMap.get(item.getId()).getTopoId()); + result.add(vo1); + }); + } + vo.setProjectInfoList(result); } // 设置设备信息(设备ID在pids[3]位置) + List csEquipmentDeliveryPOS; if (pids.length > 3) { String deviceId = pids[3]; - List csEquipmentDeliveryPOS = csEquipmentDeliveryService.listByIds(Collections.singletonList(deviceId)); + csEquipmentDeliveryPOS = csEquipmentDeliveryService.listByIds(Collections.singletonList(deviceId)); vo.setDeviceInfoList(csEquipmentDeliveryPOS); + } else { + csEquipmentDeliveryPOS = new ArrayList<>(); } // 设置线路信息 List line = csLinePOService.listByIds(Collections.singletonList(id)); + if (CollectionUtil.isNotEmpty(line)) { + line.forEach(item->{ + if (Objects.isNull(item.getPt2Ratio())) { + item.setPt2Ratio(1.0); + } + if (Objects.isNull(item.getCt2Ratio())) { + item.setCt2Ratio(1.0); + } + if (Objects.isNull(item.getLineNo())) { + item.setLineNo(item.getClDid() == 0 ? null:item.getClDid()); + } + if (CollectionUtil.isNotEmpty(csEquipmentDeliveryPOS)) { + item.setRunStatus(csEquipmentDeliveryPOS.get(0).getRunStatus()); + } + }); + } vo.setLineInfoList(line); } 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 3d20a85..ac8cf09 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 @@ -116,7 +116,7 @@ public class RoleEngineerDevServiceImpl implements RoleEngineerDevService { List collect = new ArrayList<>(); if( - Objects.equals(role,AppRoleEnum.APP_VIP_USER.getCode()) || Objects.equals(role,AppRoleEnum.REGULAR_USER_8000.getCode())){ + Objects.equals(role,AppRoleEnum.APP_VIP_USER.getCode()) || Objects.equals(role,AppRoleEnum.REGULAR_USER_8000.getCode()) || Objects.equals(role,"bxs_user")){ csDeviceUserPOQueryWrapper.clear(); csDeviceUserPOQueryWrapper.eq("status","1").and(wq -> { wq.eq("primary_user_id", userIndex) diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/api/WavePicFeignClient.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/api/WavePicFeignClient.java index b6e66b9..c05c695 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/api/WavePicFeignClient.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/api/WavePicFeignClient.java @@ -1,11 +1,18 @@ package com.njcn.csharmonic.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.csharmonic.api.fallback.WavePicClientFallbackFactory; import com.njcn.csharmonic.pojo.vo.CsEventVO; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; /** @@ -18,4 +25,7 @@ public interface WavePicFeignClient { @GetMapping("/getWavePics") HttpResult getWavePics(@RequestParam("eventId") String eventId); + @PostMapping("/updateEventById") + HttpResult updateEventById(@RequestParam("id") String id); + } diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/api/fallback/WavePicClientFallbackFactory.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/api/fallback/WavePicClientFallbackFactory.java index 2682226..6e707f9 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/api/fallback/WavePicClientFallbackFactory.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/api/fallback/WavePicClientFallbackFactory.java @@ -29,6 +29,12 @@ public class WavePicClientFallbackFactory implements FallbackFactory updateEventById(String id) { + log.error("{}异常,降级处理,异常为:{}","修改事件信息异常",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsEventPO.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsEventPO.java index ccc6921..b397fab 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsEventPO.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsEventPO.java @@ -123,4 +123,10 @@ public class CsEventPO extends BaseEntity { */ @TableField(value = "amplitude") private Double amplitude; + + /** + * 相别 + */ + @TableField(value = "phase") + private String phase; } \ No newline at end of file diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/CsEventController.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/CsEventController.java index 82a9d3b..ed6f8a7 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/CsEventController.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/CsEventController.java @@ -152,6 +152,16 @@ public class CsEventController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/updateEventById") + @ApiOperation("修改事件信息(修改文件)") + @ApiImplicitParam(name = "id", value = "事件id", required = true) + public HttpResult updateEventById(@RequestParam("id") String id) { + String methodDescribe = getMethodDescribe("updateEventById"); + Boolean result = csEventPOService.updateEventById(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getEventByTime") @ApiOperation("根据时间获取无波形的暂态事件") diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java index 90cd93e..2342ccf 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java @@ -10,7 +10,6 @@ import com.njcn.csharmonic.pojo.vo.EventDetailVO; import org.apache.ibatis.annotations.Param; import java.util.List; -import java.util.Map; /** * @@ -27,7 +26,13 @@ public interface CsEventUserPOMapper extends BaseMapper { List queryUserEventList(@Param("csEventUserQueryParam") CsEventUserQueryParam csEventUserQueryParam, @Param("devIds") List devIds, @Param("flag") Boolean flag); - Page queryEventpage(Page returnpage, @Param("csEventUserQueryPage") CsEventUserQueryPage csEventUserQueryPage, @Param("devIds") List devIds, @Param("flag") Boolean flag); +// Page queryEventpage(Page returnpage, @Param("csEventUserQueryPage") CsEventUserQueryPage csEventUserQueryPage, @Param("devIds") List devIds, @Param("flag") Boolean flag); + + /** + * app事件查询 + */ + Page queryEventpage(Page returnpage, @Param("csEventUserQueryPage") CsEventUserQueryPage csEventUserQueryPage, @Param("devIds") List devIds); + Page queryEventPageWeb(Page returnpage,@Param("csEventUserQueryPage") CsEventUserQueryPage csEventUserQueryPage,@Param("devIds") List collect); } \ No newline at end of file diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml index 1d4231d..ea072d8 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml @@ -87,17 +87,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +