feat(harmonic): 添加稳态指标方案与监测点关联功能

- 新增根据名称查询稳态指标方案的接口和实现
- 添加方案与监测点关联的保存和删除接口
- 在设备交付服务中集成稳态指标方案配置功能
- 实现监测点创建时自动关联默认方案
- 完善相关Feign客户端和服务降级处理
- 优化方法命名规范统一小写开头
This commit is contained in:
xy
2026-05-27 18:10:44 +08:00
parent f81be47e5f
commit a6f424025a
10 changed files with 87 additions and 5 deletions

View File

@@ -9,6 +9,8 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @author xy
*/
@@ -19,4 +21,8 @@ public interface CsHarmonicPlanFeignClient {
@ApiOperation("根据ID查询稳态指标方案")
HttpResult<CsHarmonicPlan> getById(@RequestParam("id") String id);
@GetMapping("/getByName")
@ApiOperation("根据名称查询稳态指标方案")
HttpResult<List<CsHarmonicPlan>> getByName(@RequestParam("name") String name);
}

View File

@@ -3,11 +3,17 @@ package com.njcn.csharmonic.api;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.csharmonic.api.fallback.CsHarmonicPlanLineFeignClientFallbackFactory;
import com.njcn.csharmonic.param.CsHarmonicPlanLineParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
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
*/
@@ -18,4 +24,12 @@ public interface CsHarmonicPlanLineFeignClient {
@ApiOperation("根据监测点ID查询方案ID")
HttpResult<String> getPlanIdByLineId(@RequestParam("lineId") String lineId);
@PostMapping("/savePlanLines")
@ApiOperation("新增方案与监测点关联")
HttpResult<Boolean> savePlanLines(@RequestBody @Validated CsHarmonicPlanLineParam param);
@PostMapping("/deleteByLineIds")
@ApiOperation("根据监测点ID集合删除关联")
HttpResult<Boolean> deleteByLineIds(@RequestBody List<String> lineIds);
}

View File

@@ -3,9 +3,7 @@ package com.njcn.csharmonic.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.csharmonic.api.CsHarmonicFeignClient;
import com.njcn.csharmonic.api.CsHarmonicPlanFeignClient;
import com.njcn.csharmonic.pojo.po.CsHarmonic;
import com.njcn.csharmonic.pojo.po.CsHarmonicPlan;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
@@ -34,6 +32,12 @@ public class CsHarmonicPlanFeignClientFallbackFactory implements FallbackFactory
log.error("{}异常,降级处理,异常为:{}","根据ID查询稳态指标方案异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CsHarmonicPlan>> getByName(String name) {
log.error("{}异常,降级处理,异常为:{}","根据名称查询稳态指标方案异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -4,10 +4,13 @@ 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.csharmonic.api.CsHarmonicPlanLineFeignClient;
import com.njcn.csharmonic.param.CsHarmonicPlanLineParam;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author xy
*/
@@ -28,6 +31,18 @@ public class CsHarmonicPlanLineFeignClientFallbackFactory implements FallbackFac
log.error("{}异常,降级处理,异常为:{}","根据监测点ID查询方案ID异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> savePlanLines(CsHarmonicPlanLineParam param) {
log.error("{}异常,降级处理,异常为:{}","新增方案与监测点关联异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> deleteByLineIds(List<String> lineIds) {
log.error("{}异常,降级处理,异常为:{}","根据监测点ID集合删除关联异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -112,4 +112,17 @@ public class CsHarmonicPlanController extends BaseController {
List<CsHarmonicPlan> list = csHarmonicPlanService.listAllOrderBySort();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
/**
* 根据ID查询稳态指标方案(包含监测点列表)
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@GetMapping("/getByName")
@ApiOperation("根据名称查询稳态指标方案")
@ApiImplicitParam(name = "name", value = "name", required = true)
public HttpResult<List<CsHarmonicPlan>> getByName(@RequestParam("name") String name) {
String methodDescribe = getMethodDescribe("getByName");
List<CsHarmonicPlan> plan = csHarmonicPlanService.getByName(name);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, plan, methodDescribe);
}
}

View File

@@ -60,4 +60,6 @@ public interface ICsHarmonicPlanService extends IService<CsHarmonicPlan> {
* @return 方案详情
*/
CsHarmonicPlan getByIdWithLines(String id);
List<CsHarmonicPlan> getByName(String name);
}

View File

@@ -131,4 +131,11 @@ public class CsHarmonicPlanServiceImpl extends ServiceImpl<CsHarmonicPlanMapper,
}
return plan;
}
@Override
public List<CsHarmonicPlan> getByName(String name) {
LambdaQueryWrapper<CsHarmonicPlan> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CsHarmonicPlan::getName, name);
return this.list(wrapper);
}
}