diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/api/CsStatisticalSetFeignClient.java b/pqs-system/system-api/src/main/java/com/njcn/system/api/CsStatisticalSetFeignClient.java new file mode 100644 index 000000000..b743c8ca7 --- /dev/null +++ b/pqs-system/system-api/src/main/java/com/njcn/system/api/CsStatisticalSetFeignClient.java @@ -0,0 +1,44 @@ +package com.njcn.system.api; + + +import com.njcn.common.pojo.constant.ServerInfo; + +import com.njcn.common.pojo.response.HttpResult; + +import com.njcn.system.api.fallback.CsStatistiacalFeignClientFallbackFactory; +import com.njcn.system.pojo.po.EleEpdPqd; +import com.njcn.system.pojo.vo.CsStatisticalSetVO; + +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 xuyang + * @since 2023-05-24 + */ + +@FeignClient(value = ServerInfo.SYSTEM, path = "/csstatisticalset", fallbackFactory = CsStatistiacalFeignClientFallbackFactory.class,contextId = "csstatisticalset") +public interface CsStatisticalSetFeignClient { + + + @PostMapping("/addStatistical") + HttpResult addStatistical(@RequestParam("id")String id,@RequestParam("ids")List ids); + + @PostMapping("/queryStatistical") + HttpResult queryStatistical(@RequestParam("id")String id); + + @PostMapping("/queryStatisticalSelect") + HttpResult> queryStatisticalSelect(@RequestParam("id")String id); + + + + +} + diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/api/fallback/CsStatistiacalFeignClientFallbackFactory.java b/pqs-system/system-api/src/main/java/com/njcn/system/api/fallback/CsStatistiacalFeignClientFallbackFactory.java new file mode 100644 index 000000000..0c9fa2d79 --- /dev/null +++ b/pqs-system/system-api/src/main/java/com/njcn/system/api/fallback/CsStatistiacalFeignClientFallbackFactory.java @@ -0,0 +1,64 @@ +package com.njcn.system.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.system.api.AreaFeignClient; +import com.njcn.system.api.ConfigFeignClient; +import com.njcn.system.api.CsStatisticalSetFeignClient; +import com.njcn.system.pojo.dto.AreaTreeDTO; +import com.njcn.system.pojo.po.Area; +import com.njcn.system.pojo.po.Config; +import com.njcn.system.pojo.po.EleEpdPqd; +import com.njcn.system.pojo.vo.CsStatisticalSetVO; +import com.njcn.system.utils.SystemEnumUtil; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author denghuajun + * @version 1.0.0 + * @date 2022年01月05日 15:08 + */ +@Slf4j +@Component +public class CsStatistiacalFeignClientFallbackFactory implements FallbackFactory { + + + /** + * 输出远程请求接口异常日志 + * @param cause RPC请求异常 + */ + @Override + public CsStatisticalSetFeignClient create(Throwable cause) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if(cause.getCause() instanceof BusinessException){ + BusinessException businessException = (BusinessException) cause.getCause(); + exceptionEnum = SystemEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + return new CsStatisticalSetFeignClient() { + + + @Override + public HttpResult addStatistical(String id, List ids) { + log.error("{}异常,降级处理,异常为:{}","根据模板录入字典数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult queryStatistical(String id) { + log.error("{}异常,降级处理,异常为:{}","根据统计类型id查询定指标",cause.toString()); + throw new BusinessException(finalExceptionEnum); } + + @Override + public HttpResult> queryStatisticalSelect(String id) { + log.error("{}异常,降级处理,异常为:{}","根据统计类型id查询已绑定指标下拉框",cause.toString()); + throw new BusinessException(finalExceptionEnum); } + }; + } +}