组态功能开发

This commit is contained in:
2023-06-02 11:42:19 +08:00
parent bf2a0ea480
commit 63c10fb8b5
40 changed files with 823 additions and 76 deletions

View File

@@ -1,20 +0,0 @@
package com.njcn.csdevice.api;
import com.njcn.csdevice.api.fallback.CsEdDataFeignClientFallbackFactory;
import com.njcn.csdevice.pojo.dto.CsDictDTO;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/dict", fallbackFactory = CsEdDataFeignClientFallbackFactory.class,contextId = "edData")
public interface CsDictFeignClient {
@PostMapping("/getOwnAndFatherData")
HttpResult<CsDictDTO> getOwnAndFatherData(@RequestParam("name")String name);
}

View File

@@ -0,0 +1,19 @@
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.CsLedgerFeignClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/csLedger", fallbackFactory = CsLedgerFeignClientFallbackFactory.class,contextId = "csLedger")
public interface CsLedgerFeignClient {
@PostMapping("/findDevByLineId")
HttpResult<String> findDevByLineId(@RequestParam("lineId") String lineId);
}

View File

@@ -0,0 +1,40 @@
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.DataArrayFeignClientFallbackFactory;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
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;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/csDataArray", fallbackFactory = DataArrayFeignClientFallbackFactory.class,contextId = "csDataArray")
public interface DataArrayFeignClient {
@PostMapping("/getArrayBySet")
HttpResult<List<CsDataArray>> getArrayBySet(@RequestBody List<CsDataSet> setList);
@PostMapping("/getDataArray")
HttpResult<List<LineTargetVO>> getDataArray(@RequestBody List<String> dataSetList);
@PostMapping("/getDataArrayById")
HttpResult<List<CsDataArray>> getDataArrayById(@RequestParam("pid") String pid, @RequestParam("name") String name);
}

View File

@@ -0,0 +1,27 @@
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.DataSetFeignClientFallbackFactory;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
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 = "/csDataSet", fallbackFactory = DataSetFeignClientFallbackFactory.class,contextId = "csDataSet")
public interface DataSetFeignClient {
@PostMapping("/getSetByModelId")
HttpResult<List<CsDataSet>> getSetByModelId(@RequestParam("modelId") String modelId);
@PostMapping("/getDataSet")
HttpResult<List<LineTargetVO>> getDataSet(@RequestParam("modelId") String modelId);
}

View File

@@ -28,4 +28,8 @@ public interface DevModelFeignClient {
@PostMapping("/findModel")
HttpResult<CsDevModelPO> findModel(@RequestParam("devType") String devType, @RequestParam("version") String version, @RequestParam("time") String time);
@PostMapping("/getModelById")
HttpResult<CsDevModelPO> getModelById(@RequestParam("id") String id);
}

View File

@@ -0,0 +1,20 @@
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.DevModelRelationFeignClientFallbackFactory;
import com.njcn.csdevice.pojo.po.CsDevModelRelationPO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/devmodelRelation", fallbackFactory = DevModelRelationFeignClientFallbackFactory.class,contextId = "devmodelRelation")
public interface DevModelRelationFeignClient {
@PostMapping("/getModelByDevId")
HttpResult<CsDevModelRelationPO> getModelByDevId(@RequestParam("devId") String devId);
}

View File

@@ -1,10 +1,10 @@
package com.njcn.csdevice.api.fallback;
import com.njcn.csdevice.api.CsDictFeignClient;
import com.njcn.csdevice.pojo.dto.CsDictDTO;
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.CsLedgerFeignClient;
import com.njcn.csdevice.utils.CsDeviceEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -14,20 +14,21 @@ import org.springframework.stereotype.Component;
*/
@Slf4j
@Component
public class CsDictFeignClientFallbackFactory implements FallbackFactory<CsDictFeignClient> {
public class CsLedgerFeignClientFallbackFactory implements FallbackFactory<CsLedgerFeignClient> {
@Override
public CsDictFeignClient create(Throwable cause) {
public CsLedgerFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
exceptionEnum = CsDeviceEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new CsDictFeignClient() {
return new CsLedgerFeignClient() {
@Override
public HttpResult<CsDictDTO> getOwnAndFatherData(String name) {
log.error("{}异常,降级处理,异常为:{}","获取指标自身和父级信息",cause.toString());
public HttpResult<String> findDevByLineId(String lineId) {
log.error("{}异常,降级处理,异常为:{}","根据监测点获取装置失败",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};

View File

@@ -0,0 +1,56 @@
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.DataArrayFeignClient;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import com.njcn.csdevice.utils.CsDeviceEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/4/10 20:09
*/
@Slf4j
@Component
public class DataArrayFeignClientFallbackFactory implements FallbackFactory<DataArrayFeignClient> {
@Override
public DataArrayFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
exceptionEnum = CsDeviceEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new DataArrayFeignClient() {
@Override
public HttpResult<List<CsDataArray>> getArrayBySet(List<CsDataSet> setList) {
log.error("{}异常,降级处理,异常为:{}","根据数据集获取详细数据失败",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<LineTargetVO>> getDataArray(List<String> dataSetList) {
log.error("{}异常,降级处理,异常为:{}","获取详细数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CsDataArray>> getDataArrayById(String pid, String name) {
log.error("{}异常,降级处理,异常为:{}","根据数据集id和名称获取详细数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,54 @@
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.DataSetFeignClient;
import com.njcn.csdevice.api.DevModelFeignClient;
import com.njcn.csdevice.pojo.param.CsDevModelAddParm;
import com.njcn.csdevice.pojo.param.CsDevModelQueryListParm;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.po.CsDevModelPO;
import com.njcn.csdevice.pojo.vo.CsDevModelPageVO;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import com.njcn.csdevice.utils.CsDeviceEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/4/10 20:09
*/
@Slf4j
@Component
public class DataSetFeignClientFallbackFactory implements FallbackFactory<DataSetFeignClient> {
@Override
public DataSetFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
exceptionEnum = CsDeviceEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new DataSetFeignClient() {
@Override
public HttpResult<List<CsDataSet>> getSetByModelId(String modelId) {
log.error("{}异常,降级处理,异常为:{}","根据模板id获取数据集",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<LineTargetVO>> getDataSet(String modelId) {
log.error("{}异常,降级处理,异常为:{}","获取数据集",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -8,6 +8,7 @@ import com.njcn.csdevice.pojo.vo.CsDevModelPageVO;
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.utils.CsDeviceEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -28,7 +29,7 @@ public class DevModelFeignClientFallbackFactory implements FallbackFactory<DevMo
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
// exceptionEnum = UserEnumUtil.getExceptionEnum(businessException.getResult());
exceptionEnum = CsDeviceEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new DevModelFeignClient() {
@@ -50,6 +51,12 @@ public class DevModelFeignClientFallbackFactory implements FallbackFactory<DevMo
log.error("{}异常,降级处理,异常为:{}","根据条件查询模板",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<CsDevModelPO> getModelById(String id) {
log.error("{}异常,降级处理,异常为:{}","根据id查询模板失败",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,37 @@
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.CsLedgerFeignClient;
import com.njcn.csdevice.api.DevModelRelationFeignClient;
import com.njcn.csdevice.pojo.po.CsDevModelRelationPO;
import com.njcn.csdevice.utils.CsDeviceEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @author xy
*/
@Slf4j
@Component
public class DevModelRelationFeignClientFallbackFactory implements FallbackFactory<DevModelRelationFeignClient> {
@Override
public DevModelRelationFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
exceptionEnum = CsDeviceEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new DevModelRelationFeignClient() {
@Override
public HttpResult<CsDevModelRelationPO> getModelByDevId(String devId) {
log.error("{}异常,降级处理,异常为:{}","根据装置获取模板",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -14,6 +14,7 @@ public enum AlgorithmResponseEnum {
/**
* A00500 ~ A01550 用于终端模块的枚举
*/
CS_DEVICE_COMMON_ERROR("A00500","治理终端模块异常"),
PROJECT_COMMON_ERROR("A00500","同一用户下项目名不能相同"),
DICT_DATA_ERROR("A00501","暂无此字典表类型"),
NDID_ERROR("A00502","存在相同的ndid"),

View File

@@ -0,0 +1,24 @@
package com.njcn.csdevice.pojo.dto;
import lombok.Data;
import java.io.Serializable;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/6/1 16:57
*/
@Data
public class DataArrayDTO implements Serializable {
private String dataSetId;
private String dataSetName;
private String dataArrayName;
private String dataArrayShowName;
}

View File

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@@ -15,8 +17,7 @@ import lombok.Setter;
* @author xuyang
* @since 2023-05-31
*/
@Getter
@Setter
@Data
@TableName("cs_data_array")
public class CsDataArray extends BaseEntity {

View File

@@ -26,9 +26,11 @@ public class CsDevModelRelationPO extends BaseEntity {
@TableId(value = "id",type = IdType.ASSIGN_UUID)
private String id;
@ApiModelProperty(value="装置id")
@TableField(value = "dev_id")
private String devId;
@ApiModelProperty(value="装置模板id")
@TableField(value = "model_id")
private String modelId;

View File

@@ -0,0 +1,37 @@
package com.njcn.csdevice.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/6/1 10:13
*/
@Data
public class LineTargetVO {
@ApiModelProperty("指标id")
private String id;
@ApiModelProperty("父id")
private String pid;
@ApiModelProperty("指标名称")
private String name;
@ApiModelProperty("显示名称")
private String anotherName;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("子集")
private List<LineTargetVO> children = new ArrayList<>();
}

View File

@@ -0,0 +1,44 @@
package com.njcn.csdevice.utils;
import cn.hutool.core.util.StrUtil;
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.common.utils.EnumUtils;
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
import javax.validation.constraints.NotNull;
import java.util.Objects;
/**
* @author hongawen
* @version 1.0.0
* @date 2021年05月26日 17:17
*/
public class CsDeviceEnumUtil {
/**
* 获取UserResponseEnum实例
*/
public static AlgorithmResponseEnum getResponseEnumByMessage(@NotNull Object value) {
AlgorithmResponseEnum algorithmResponseEnum;
try {
String message = value.toString();
if(message.indexOf(StrUtil.C_COMMA)>0){
value = message.substring(message.indexOf(StrUtil.C_COMMA)+1);
}
algorithmResponseEnum = EnumUtils.valueOf(AlgorithmResponseEnum.class, value, AlgorithmResponseEnum.class.getMethod(BusinessException.GET_MESSAGE_METHOD));
return Objects.isNull(algorithmResponseEnum) ? AlgorithmResponseEnum.CS_DEVICE_COMMON_ERROR : algorithmResponseEnum;
} catch (NoSuchMethodException e) {
throw new BusinessException(CommonResponseEnum.INTERNAL_ERROR);
}
}
public static Enum<?> getExceptionEnum(HttpResult<Object> result){
//如果返回错误,且为内部错误,则直接抛出异常
CommonResponseEnum commonResponseEnum = EnumUtils.getCommonResponseEnumByCode(result.getCode());
if (commonResponseEnum == CommonResponseEnum.CS_DEVICE_RESPONSE_ENUM) {
return getResponseEnumByMessage(result.getMessage());
}
return commonResponseEnum;
}
}

View File

@@ -1,13 +1,25 @@
package com.njcn.csdevice.controller.Equipment;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import com.njcn.csdevice.service.ICsDataArrayService;
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;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;
import com.njcn.web.controller.BaseController;
import java.util.List;
/**
* <p>
@@ -20,9 +32,44 @@ import com.njcn.web.controller.BaseController;
@Slf4j
@RestController
@RequestMapping("/csDataArray")
@Api(tags = "终端指标集")
@Api(tags = "终端详细数据")
@AllArgsConstructor
public class CsDataArrayController extends BaseController {
private final ICsDataArrayService csDataArrayService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getArrayBySet")
@ApiOperation("根据数据集获取详细数据")
@ApiImplicitParam(name = "dataSetList", value = "数据集集合", required = true)
public HttpResult<List<CsDataArray>> getArrayBySet(@RequestBody List<CsDataSet> dataSetList){
String methodDescribe = getMethodDescribe("getArrayBySet");
List<CsDataArray> list = csDataArrayService.getArrayBySet(dataSetList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getDataArray")
@ApiOperation("获取详细数据")
@ApiImplicitParam(name = "dataSetList", value = "数据集集合", required = true)
public HttpResult<List<LineTargetVO>> getDataArray(@RequestBody List<String> dataSetList){
String methodDescribe = getMethodDescribe("getDataArray");
List<LineTargetVO> list = csDataArrayService.getDataArray(dataSetList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getDataArrayById")
@ApiOperation("获取详细数据(id)")
@ApiImplicitParams({
@ApiImplicitParam(name = "pid", value = "数据集id", required = true),
@ApiImplicitParam(name = "name", value = "名称", required = true)
})
public HttpResult<List<CsDataArray>> getDataArrayById(@RequestParam("pid") String pid, @RequestParam("name") String name){
String methodDescribe = getMethodDescribe("getDataArrayById");
List<CsDataArray> list = csDataArrayService.getDataArrayById(pid, name);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -1,13 +1,26 @@
package com.njcn.csdevice.controller.Equipment;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import com.njcn.csdevice.service.ICsDataSetService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.njcn.web.controller.BaseController;
import java.util.List;
/**
* <p>
@@ -24,5 +37,27 @@ import com.njcn.web.controller.BaseController;
@AllArgsConstructor
public class CsDataSetController extends BaseController {
private final ICsDataSetService csDataSetService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getSetByModelId")
@ApiOperation("根据模板Id获取数据集")
@ApiImplicitParam(name = "modelId", value = "模板id", required = true)
public HttpResult<List<CsDataSet>> getSetByModelId(@RequestParam("modelId") String modelId){
String methodDescribe = getMethodDescribe("getSetByModelId");
List<CsDataSet> list = csDataSetService.findDataSetByModelId(modelId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getDataSet")
@ApiOperation("获取数据集")
@ApiImplicitParam(name = "modelId", value = "模板id", required = true)
public HttpResult<List<LineTargetVO>> getDataSet(@RequestParam("modelId") String modelId){
String methodDescribe = getMethodDescribe("getDataSet");
List<LineTargetVO> list = csDataSetService.getDataSet(modelId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -95,12 +95,19 @@ public class DevModelController extends BaseController {
@ApiImplicitParam(name = "time", value = "时间", required = true)
})
public HttpResult<CsDevModelPO> findModel(@RequestParam("devType") String devType,@RequestParam("version") String version,@RequestParam("time") String time){
System.out.println(devType);
System.out.println(version);
System.out.println(time);
String methodDescribe = getMethodDescribe("findModel");
CsDevModelPO csDevModelPo = csDevModelService.findModel(devType,version,time);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csDevModelPo, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getModelById")
@ApiOperation("根据模板Id获取模板数据")
@ApiImplicitParam(name = "id", value = "模板id", required = true)
public HttpResult<CsDevModelPO> getModelById(@RequestParam("id") String id){
String methodDescribe = getMethodDescribe("getDataById");
CsDevModelPO po = csDevModelService.getModelById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe);
}
}

View File

@@ -19,10 +19,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -80,6 +77,14 @@ public class DevModelRelationController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getModelByDevId")
@ApiOperation("根据装置Id查询模板")
@ApiImplicitParam(name = "devId", value = "装置id", required = true)
public HttpResult<CsDevModelRelationPO> getModelByDevId(@RequestParam("devId") String devId){
String methodDescribe = getMethodDescribe("getModelByDevId");
CsDevModelRelationPO po = csDevModelRelationService.findModelByDevId(devId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe);
}
}

View File

@@ -2,6 +2,10 @@ package com.njcn.csdevice.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
@@ -13,4 +17,6 @@ import com.njcn.csdevice.pojo.po.CsDataArray;
*/
public interface CsDataArrayMapper extends BaseMapper<CsDataArray> {
List<LineTargetVO> getDataArray(@Param("list") List<String> list);
}

View File

@@ -2,6 +2,10 @@ package com.njcn.csdevice.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
@@ -13,4 +17,6 @@ import com.njcn.csdevice.pojo.po.CsDataSet;
*/
public interface CsDataSetMapper extends BaseMapper<CsDataSet> {
List<LineTargetVO> getDataSet(@Param("modelId") String modelId);
}

View File

@@ -2,12 +2,15 @@ package com.njcn.csdevice.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.csdevice.pojo.dto.DataArrayDTO;
import com.njcn.csdevice.pojo.param.CsDevModelQueryListParm;
import com.njcn.csdevice.pojo.param.CsDevModelQueryParm;
import com.njcn.csdevice.pojo.po.CsDevModelPO;
import com.njcn.csdevice.pojo.vo.CsDevModelPageVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
* Description:
@@ -21,4 +24,6 @@ public interface CsDevModelMapper extends BaseMapper<CsDevModelPO> {
Page<CsDevModelPageVO> getPage(Page<CsDevModelPageVO> returnpage,@Param("csDevModelQueryParm") CsDevModelQueryParm csDevModelQueryParm);
CsDevModelPageVO queryOne(@Param("csDevModelQueryListParm")CsDevModelQueryListParm csDevModelQueryListParm);
List<DataArrayDTO> getDataArrayByModelId(@Param("modelId")String modelId);
}

View File

@@ -1,20 +0,0 @@
package com.njcn.csdevice.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.csdevice.pojo.dto.CsDictDTO;
import com.njcn.csdevice.pojo.po.CsDictPO;
import org.apache.ibatis.annotations.Param;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 14:53【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsDictMapper extends BaseMapper<CsDictPO> {
CsDictDTO getOwnAndFatherData(@Param("name") String name);
}

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.csdevice.mapper.CsDataArrayMapper">
<select id="getDataArray" resultType="LineTargetVO">
select
pid,
name,
another_name anotherName,
idx sort
from
cs_data_array
where
pid in
<foreach collection='list' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
group by pid,name,another_name,idx
order by idx
</select>
</mapper>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.csdevice.mapper.CsDataSetMapper">
<select id="getDataSet" resultType="LineTargetVO">
select
id,
pid,
name,
another_name anotherName,
idx sort
from
cs_data_set
where
pid = #{modelId}
</select>
</mapper>

View File

@@ -74,4 +74,18 @@
</if>
</select>
<select id="getDataArrayByModelId" resultType="com.njcn.csdevice.pojo.dto.DataArrayDTO">
select
distinct t1.id dataSetId,t1.another_name dataSetName ,t2.name dataArrayName,t2.another_name dataArrayShowName
from
cs_dev_model t0
left join cs_data_set t1 on
t0.id = t1.pid
left join cs_data_array t2 on
t1.id = t2.pid
where
t0.id = #{modelId}
</select>
</mapper>

View File

@@ -38,4 +38,12 @@ public interface CsDevModelRelationService extends IService<CsDevModelRelationPO
Boolean AuditDevModelRelation(CsDevModelRelationAuidtParm auditParm);
List<CsDevModelRelationVO> queryDevModelRelation(CsDevModelRelationQueryParm queryParm);
/**
* 根据装置id获取关联信息
* @param devId
* @return
*/
CsDevModelRelationPO findModelByDevId(String devId);
}

View File

@@ -64,11 +64,10 @@ public interface CsDevModelService extends IService<CsDevModelPO>{
CsDevModelPO findModel(String devType, String version, String time);
/**
* 根据装置型号查询模板
* @param devType 装置型号
* 根据id获取模板信息
* @param id
* @return
*/
CsDevModelPO findModelByDevType(String devType);
CsDevModelPO getModelById(String id);
}

View File

@@ -2,6 +2,9 @@ package com.njcn.csdevice.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -15,13 +18,16 @@ import java.util.List;
*/
public interface ICsDataArrayService extends IService<CsDataArray> {
/**
* 根据数据集id获取指标数据
* @param dataSetId 数据集Id
* 根据数据集获取指标数据
* @param list 数据集
* @return
*/
List<CsDataArray> findDataArrayByDataSetId(String dataSetId);
List<CsDataArray> getArrayBySet(List<CsDataSet> list);
List<LineTargetVO> getDataArray(List<String> list);
List<CsDataArray> getDataArrayById(String pid, String name);
}

View File

@@ -2,6 +2,7 @@ package com.njcn.csdevice.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import java.util.List;
@@ -22,4 +23,11 @@ public interface ICsDataSetService extends IService<CsDataSet> {
*/
List<CsDataSet> findDataSetByModelId(String modelId);
/**
* 获取数据集
* @param modelId 模板id
* @return
*/
List<LineTargetVO> getDataSet(String modelId);
}

View File

@@ -3,10 +3,13 @@ package com.njcn.csdevice.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csdevice.mapper.CsDataArrayMapper;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import com.njcn.csdevice.service.ICsDataArrayService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
@@ -20,7 +23,20 @@ import java.util.List;
public class CsDataArrayServiceImpl extends ServiceImpl<CsDataArrayMapper, CsDataArray> implements ICsDataArrayService {
@Override
public List<CsDataArray> findDataArrayByDataSetId(String dataSetId) {
return this.lambdaQuery().eq(CsDataArray::getPid,dataSetId).list();
public List<CsDataArray> getArrayBySet(List<CsDataSet> list) {
List<String> setList = list.stream().map(CsDataSet::getId).collect(Collectors.toList());
return this.lambdaQuery().in(CsDataArray::getPid,setList).list();
}
@Override
public List<LineTargetVO> getDataArray(List<String> list) {
return this.baseMapper.getDataArray(list);
}
@Override
public List<CsDataArray> getDataArrayById(String pid, String name) {
return this.lambdaQuery().eq(CsDataArray::getPid,pid).eq(CsDataArray::getName,name).list();
}
}

View File

@@ -3,6 +3,7 @@ package com.njcn.csdevice.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csdevice.mapper.CsDataSetMapper;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import com.njcn.csdevice.service.ICsDataSetService;
import org.springframework.stereotype.Service;
@@ -23,4 +24,10 @@ public class CsDataSetServiceImpl extends ServiceImpl<CsDataSetMapper, CsDataSet
public List<CsDataSet> findDataSetByModelId(String modelId) {
return this.lambdaQuery().eq(CsDataSet::getPid,modelId).list();
}
@Override
public List<LineTargetVO> getDataSet(String modelId) {
return this.baseMapper.getDataSet(modelId);
}
}

View File

@@ -87,4 +87,9 @@ public class CsDevModelRelationServiceImpl extends ServiceImpl<CsDevModelRelatio
}).collect (Collectors.toList ( ));
return collect;
}
@Override
public CsDevModelRelationPO findModelByDevId(String devId) {
return this.lambdaQuery().eq(CsDevModelRelationPO::getDevId,devId).eq(CsDevModelRelationPO::getStatus,1).one();
}
}

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csdevice.mapper.CsDevModelMapper;
import com.njcn.csdevice.pojo.dto.DataArrayDTO;
import com.njcn.csdevice.pojo.param.CsDevModelAddParm;
import com.njcn.csdevice.pojo.param.CsDevModelAuditParm;
import com.njcn.csdevice.pojo.param.CsDevModelQueryListParm;
@@ -19,6 +20,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
@@ -77,7 +81,8 @@ public class CsDevModelServiceImpl extends ServiceImpl<CsDevModelMapper, CsDevMo
}
@Override
public CsDevModelPO findModelByDevType(String devType) {
return this.lambdaQuery().eq(CsDevModelPO::getDevType,devType).eq(CsDevModelPO::getStatus,1).one();
public CsDevModelPO getModelById(String id) {
return this.lambdaQuery().eq(CsDevModelPO::getId,id).one();
}
}

View File

@@ -0,0 +1,26 @@
package pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/6/2 11:15
*/
@Data
public class TargetDetailVO implements Serializable {
@ApiModelProperty("数据类型")
private List<String> dataTypeList;
@ApiModelProperty("相别")
private List<String> phasicList;
}

View File

@@ -0,0 +1,64 @@
package com.njcn.harmonic.controller;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import com.njcn.harmonic.service.ILineTargetService;
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;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import pojo.vo.TargetDetailVO;
import java.util.List;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/6/1 10:03
*/
@Slf4j
@RestController
@RequestMapping("/lineTarget")
@Api(tags = "组态指标绑定")
@AllArgsConstructor
public class LineTargetController extends BaseController {
private final ILineTargetService lineTargetService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/target")
@ApiOperation("监测点指标")
@ApiImplicitParam(name = "lineId", value = "监测点Id", required = true)
public HttpResult<List<LineTargetVO>> getLineTarget(@RequestParam("lineId") String lineId) {
String methodDescribe = getMethodDescribe("getLineTarget");
List<LineTargetVO> list = lineTargetService.getLineTarget(lineId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/targetDetail")
@ApiOperation("获取指标数据类型和相别")
@ApiImplicitParams({
@ApiImplicitParam(name = "pid", value = "数据集id", required = true),
@ApiImplicitParam(name = "name", value = "名称", required = true)
})
public HttpResult<TargetDetailVO> getTargetDetail(@RequestParam("pid") String pid, @RequestParam("name") String name) {
String methodDescribe = getMethodDescribe("getTargetDetail");
TargetDetailVO list = lineTargetService.getTargetDetail(pid,name);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -0,0 +1,29 @@
package com.njcn.harmonic.service;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import pojo.vo.TargetDetailVO;
import java.util.List;
/**
* @author xuyang
*/
public interface ILineTargetService {
/**
* 根据监测点Id获取对应指标
* @param lineId
* @return
*/
List<LineTargetVO> getLineTarget(String lineId);
/**
* 获取指标的数据类型和相别
* @param pid
* @param name
* @return
*/
TargetDetailVO getTargetDetail(String pid, String name);
}

View File

@@ -0,0 +1,75 @@
package com.njcn.harmonic.service.impl;
import com.njcn.csdevice.api.*;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.po.CsDevModelPO;
import com.njcn.csdevice.pojo.po.CsDevModelRelationPO;
import com.njcn.csdevice.pojo.vo.CsLedgerVO;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import com.njcn.harmonic.service.ILineTargetService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import pojo.vo.TargetDetailVO;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/6/1 10:11
*/
@Service
@AllArgsConstructor
public class LineTargetServiceImpl implements ILineTargetService {
private final CsLedgerFeignClient csLedgerFeignClient;
private final DevModelRelationFeignClient devModelRelationFeignClient;
private final DevModelFeignClient devModelFeignClient;
private final DataSetFeignClient dataSetFeignClient;
private final DataArrayFeignClient dataArrayFeignClient;
@Override
public List<LineTargetVO> getLineTarget(String lineId) {
List<LineTargetVO> list = new ArrayList<>();
String devId = csLedgerFeignClient.findDevByLineId(lineId).getData();
CsDevModelRelationPO po = devModelRelationFeignClient.getModelByDevId(devId).getData();
if (!Objects.isNull(po)){
CsDevModelPO csDevModelPo = devModelFeignClient.getModelById(po.getModelId()).getData();
List<LineTargetVO> dataSetList = dataSetFeignClient.getDataSet(csDevModelPo.getId()).getData();
List<String> setList = dataSetList.stream().map(LineTargetVO::getId).collect(Collectors.toList());
List<LineTargetVO> dataArrayList = dataArrayFeignClient.getDataArray(setList).getData();
dataSetList.forEach(dev -> dev.setChildren(getChildren(dev, dataArrayList)));
list.addAll(dataSetList);
}
return list;
}
@Override
public TargetDetailVO getTargetDetail(String pid, String name) {
TargetDetailVO vo = new TargetDetailVO();
List<CsDataArray> dataArrayList = dataArrayFeignClient.getDataArrayById(pid,name).getData();
List<String> dataType = dataArrayList.stream().map(CsDataArray::getStatMethod).distinct().collect(Collectors.toList());
List<String> phasic = dataArrayList.stream().map(CsDataArray::getPhase).distinct().collect(Collectors.toList());
vo.setDataTypeList(dataType);
vo.setPhasicList(phasic);
return vo;
}
/**
* 获取子节点
*/
public List<LineTargetVO> getChildren(LineTargetVO item, List<LineTargetVO> all) {
return all.stream().filter(allItem -> allItem.getPid().equals(item.getId())).collect(Collectors.toList());
}
}