两级贯通接口开发

This commit is contained in:
cdf
2024-05-15 10:19:59 +08:00
parent b213b66f46
commit 79248176b7
19 changed files with 479 additions and 112 deletions

View File

@@ -1,5 +1,6 @@
package com.njcn.device.pms.api;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pms.api.fallback.MonitorClientFallbackFactory;
@@ -8,6 +9,7 @@ import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
import com.njcn.device.pms.pojo.param.MonitorTerminalParam;
import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.device.pms.pojo.param.TerminalQueryParam;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.vo.MonitorVO;
import com.njcn.device.biz.pojo.po.Overlimit;
@@ -68,6 +70,10 @@ public interface MonitorClient {
HttpResult<List<Monitor>> getMonitorList(@RequestBody List<String> monitorIds);
@PostMapping("getMonitorPage")
HttpResult<Page<Monitor>> getMonitorPage(@RequestBody TerminalQueryParam baseParam);
/***
* 获取台账和终端信息(波形专用)
* @author wr

View File

@@ -0,0 +1,33 @@
package com.njcn.device.pms.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pms.api.fallback.PmsMidLedgerClientFallbackFactory;
import com.njcn.device.pms.api.fallback.StatationStatClientFallbackFactory;
import com.njcn.device.pms.pojo.dto.PmsStatationStatInfoDTO;
import com.njcn.device.pms.pojo.param.PmsBaseParam;
import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.pojo.po.StatationStat;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* @author yzh
* @date 2022/10/18
*/
@FeignClient(value = ServerInfo.DEVICE,
path = "/pms/pmsMidLedger",
contextId = "pms/pmsMidLedger",
fallbackFactory = PmsMidLedgerClientFallbackFactory.class)
public interface PmsMidLedgerClient {
@PostMapping("getPmsMidLedgerList")
HttpResult<List<PmsMidLedger>> getPmsMidLedgerList(@RequestBody List<String> ids);
}

View File

@@ -1,5 +1,6 @@
package com.njcn.device.pms.api.fallback;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
@@ -9,6 +10,7 @@ import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
import com.njcn.device.pms.pojo.param.MonitorTerminalParam;
import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.device.pms.pojo.param.TerminalQueryParam;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.vo.MonitorVO;
import com.njcn.device.pms.utils.PmsDeviceEnumUtil;
@@ -62,6 +64,12 @@ public class MonitorClientFallbackFactory implements FallbackFactory<MonitorClie
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Page<Monitor>> getMonitorPage(TerminalQueryParam baseParam) {
log.error("{}异常,降级处理,异常为:{}", "分页获取主网监测点数据 ", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<MonitorVO> getMonitorTerminal(MonitorTerminalParam param) {
log.error("{}异常,降级处理,异常为:{}", "获取台账和终端信息(波形专用) ", throwable.toString());

View File

@@ -0,0 +1,42 @@
package com.njcn.device.pms.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.device.pms.api.PmsMidLedgerClient;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.utils.PmsDeviceEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author yzh
* @date 2022/10/18
*/
@Slf4j
@Component
public class PmsMidLedgerClientFallbackFactory implements FallbackFactory<PmsMidLedgerClient> {
@Override
public PmsMidLedgerClient create(Throwable throwable) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (throwable.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) throwable.getCause();
exceptionEnum = PmsDeviceEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new PmsMidLedgerClient() {
@Override
public HttpResult<List<PmsMidLedger>> getPmsMidLedgerList(List<String> ids) {
log.error("{}异常,降级处理,异常为:{}", "获取中台电站母线信息", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* pqs
*
@@ -38,4 +40,6 @@ public class TerminalQueryParam extends BaseParam {
@ApiModelProperty(value = "主网上送标识")
private Integer monitorUploadStatus;
private List<String> monitorIds;
}

View File

@@ -2,6 +2,7 @@ package com.njcn.device.pms.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -47,6 +48,26 @@ public class PmsMidLedger extends BaseEntity {
@TableField(value = "SectionId")
private String SectionId;
@TableField(value = "cityOrg")
private String cityOrg;
@TableField(value = "cityOrgName")
private String cityOrgName;
@TableField(value = "maintCrew")
private String maintCrew;
@TableField(value = "maintCrewName")
private String maintCrewName;
private String OperationId;
private String OperationName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime OperationDate;
private String AssetNo;
/**
* 名称
*/

View File

@@ -0,0 +1,56 @@
package com.njcn.device.pms.controller.ledgerManger;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.service.ledgerManger.IPmsMidLedgerService;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
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 com.njcn.web.controller.BaseController;
import java.util.List;
/**
* <p>
* 变电站-母线数据中间表 前端控制器
* </p>
*
* @author hongawen
* @since 2024-05-14
*/
@RestController
@RequestMapping("pms/pmsMidLedger")
@RequiredArgsConstructor
public class PmsMidLedgerController extends BaseController {
private final IPmsMidLedgerService iPmsMidLedgerService;
/**
* 获取中台电站母线信息
* @author cdf
* @date 2024/5/14
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getPmsMidLedgerList")
@ApiOperation("获取中台电站母线信息")
@ApiImplicitParam(name = "ids",value = "母线电站编号",required = true)
public HttpResult<List<PmsMidLedger>> getPmsMidLedgerList(@RequestBody List<String> ids){
String methodDescribe = getMethodDescribe("getPmsMidLedgerList");
List<PmsMidLedger> result = iPmsMidLedgerService.list(new LambdaQueryWrapper<PmsMidLedger>().in(PmsMidLedger::getId,ids));
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -138,6 +138,16 @@ public class PmsMonitorController extends BaseController {
}
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getMonitorPage")
@ApiOperation("获取所有主网监测点(或者指定监测点编号查询)")
@ApiImplicitParam(name = "monitorIds",value = "主网监测点编号",required = true)
public HttpResult<Page<Monitor>> getMonitorPage(@RequestBody TerminalQueryParam baseParam) {
String methodDescribe = getMethodDescribe("getMonitorPage");
Page<Monitor> monitor= monitorService.getMonitorPage(baseParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe);
}
/**
* 根据条件获取所有主网监测点
* @author cdf
@@ -310,6 +320,9 @@ public class PmsMonitorController extends BaseController {
}
public static void main(String[] args) throws IOException {
/*try {
// 创建一个临时文件,前缀为"temp_",后缀为".txt",存储在默认的临时文件夹中

View File

@@ -0,0 +1,16 @@
package com.njcn.device.pms.service.ledgerManger;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 变电站-母线数据中间表 服务类
* </p>
*
* @author hongawen
* @since 2024-05-14
*/
public interface IPmsMidLedgerService extends IService<PmsMidLedger> {
}

View File

@@ -0,0 +1,21 @@
package com.njcn.device.pms.service.ledgerManger.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.device.pms.mapper.majornetwork.PmsMidLedgerMapper;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.service.ledgerManger.IPmsMidLedgerService;
import org.springframework.stereotype.Service;
/**
* <p>
* 变电站-母线数据中间表 服务实现类
* </p>
*
* @author hongawen
* @since 2024-05-14
*/
@Service
public class PmsMidLedgerServiceImpl extends ServiceImpl<PmsMidLedgerMapper, PmsMidLedger> implements IPmsMidLedgerService {
}

View File

@@ -82,6 +82,9 @@ public interface IMonitorService extends IService<Monitor> {
List<Monitor> getMonitorList(List<String> monitorIds);
Page<Monitor> getMonitorPage(TerminalQueryParam baseParam);
List<Monitor> getMonitorListByParam(MonitorParam monitorParam);

View File

@@ -292,6 +292,16 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
return monitorList;
}
@Override
public Page<Monitor> getMonitorPage(TerminalQueryParam baseParam) {
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode());
lambdaQueryWrapper.in(Monitor::getId, baseParam.getMonitorIds());
Page<Monitor> page = this.page(new Page<>(PageFactory.getPageNum(baseParam),PageFactory.getPageSize(baseParam)),lambdaQueryWrapper);
return page;
}
@Override
public List<Monitor> getMonitorListByParam(MonitorParam monitorParam) {
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();