包名调整
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package com.njcn.csharmonic;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.context.annotation.DependsOn;
|
||||
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0.0
|
||||
* @date 2021年12月09日 20:59
|
||||
*/
|
||||
@Slf4j
|
||||
@MapperScan("com.njcn.**.mapper")
|
||||
@EnableFeignClients(basePackages = "com.njcn")
|
||||
@SpringBootApplication(scanBasePackages = "com.njcn")
|
||||
@DependsOn("proxyMapperRegister")
|
||||
public class CsHarmonicBootApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(CsHarmonicBootApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.njcn.csharmonic.controller;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.constant.OperateType;
|
||||
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.service.CsConfigurationService;
|
||||
import com.njcn.minioss.bo.MinIoUploadResDTO;
|
||||
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.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.njcn.csharmonic.param.CsConfigurationParm;
|
||||
import com.njcn.csharmonic.pojo.vo.CsConfigurationVO;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* (cs_configuration)表控制层
|
||||
*
|
||||
* @author xxxxx
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/csconfiguration")
|
||||
@Api(tags = "组态项目")
|
||||
@AllArgsConstructor
|
||||
public class CsConfigurationController extends BaseController {
|
||||
private final CsConfigurationService csConfigurationService;
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/add")
|
||||
@ApiOperation("新增组态项目")
|
||||
@ApiImplicitParam(name = "csConfigurationParm", value = "新增组态项目参数", required = true)
|
||||
public HttpResult<Boolean> add(@RequestBody @Validated CsConfigurationParm csConfigurationParm){
|
||||
String methodDescribe = getMethodDescribe("add");
|
||||
|
||||
boolean save = csConfigurationService.add (csConfigurationParm);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, save, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/audit")
|
||||
@ApiOperation("修改组态项目")
|
||||
@ApiImplicitParam(name = "auditParm", value = "修改组态项目参数", required = true)
|
||||
public HttpResult<Boolean> audit(@RequestBody @Validated CsConfigurationParm.CsConfigurationAuditParam auditParm){
|
||||
String methodDescribe = getMethodDescribe("audit");
|
||||
|
||||
boolean save = csConfigurationService.audit (auditParm);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, save, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/queryPage")
|
||||
@ApiOperation("组态项目分页查询")
|
||||
@ApiImplicitParam(name = "csConfigurationQueryParam", value = "组态项目查询参数", required = true)
|
||||
public HttpResult<IPage<CsConfigurationVO>> queryPage(@RequestBody @Validated CsConfigurationParm.CsConfigurationQueryParam csConfigurationQueryParam ){
|
||||
String methodDescribe = getMethodDescribe("queryPage");
|
||||
|
||||
IPage<CsConfigurationVO> page = csConfigurationService.queryPage (csConfigurationQueryParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPLOAD)
|
||||
@PostMapping("/uploadImage")
|
||||
@ApiOperation("上传底图")
|
||||
@ApiImplicitParam(name = "file", value = "底图文件", required = true)
|
||||
public HttpResult<MinIoUploadResDTO> uploadImage(@RequestParam("file") MultipartFile issuesFile){
|
||||
String methodDescribe = getMethodDescribe("uploadImage");
|
||||
String filePath = csConfigurationService.uploadImage(issuesFile);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,new MinIoUploadResDTO(issuesFile.getOriginalFilename(),filePath), methodDescribe);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.njcn.csharmonic.controller;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* (cs_net_dev)表控制层
|
||||
*
|
||||
* @author xxxxx
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/csnetdev")
|
||||
@Api(tags = "组态页面")
|
||||
@AllArgsConstructor
|
||||
public class CsNetDevPOController extends BaseController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.njcn.csharmonic.controller;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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.csharmonic.service.CsPagePOService;
|
||||
import com.njcn.csharmonic.pojo.vo.CsPageVO;
|
||||
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 org.springframework.validation.annotation.Validated;
|
||||
import com.njcn.csharmonic.param.CsPageParm;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* (cs_page)表控制层
|
||||
*
|
||||
* @author xxxxx
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cspage")
|
||||
@Api(tags = "组态项目页面")
|
||||
@AllArgsConstructor
|
||||
public class CsPagePOController extends BaseController {
|
||||
private final CsPagePOService csPagePOService;
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/add")
|
||||
@ApiOperation("新增组态页面")
|
||||
@ApiImplicitParam(name = "csPageParm", value = "新增组态项目参数", required = true)
|
||||
public HttpResult<CsPageVO> add(@RequestBody @Validated CsPageParm csPageParm){
|
||||
String methodDescribe = getMethodDescribe("add");
|
||||
|
||||
CsPageVO csPageVO = csPagePOService.add (csPageParm);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csPageVO, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/audit")
|
||||
@ApiOperation("修改组态页面")
|
||||
@ApiImplicitParam(name = "auditParm", value = "修改组态项目参数", required = true)
|
||||
public HttpResult<Boolean> audit(@RequestBody @Validated CsPageParm.CsPageParmAuditParam auditParm){
|
||||
String methodDescribe = getMethodDescribe("audit");
|
||||
|
||||
boolean save = csPagePOService.audit (auditParm);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, save, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/queryPage")
|
||||
@ApiOperation("组态页面分页查询")
|
||||
@ApiImplicitParam(name = "csPageParam", value = "组态项目查询参数", required = true)
|
||||
public HttpResult<IPage<CsPageVO>> queryPage(@RequestBody @Validated CsPageParm.CsPageParmQueryParam csPageParam ){
|
||||
String methodDescribe = getMethodDescribe("queryPage");
|
||||
|
||||
IPage<CsPageVO> page = csPagePOService.queryPage (csPageParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.njcn.csharmonic.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.csharmonic.pojo.vo.RtDataVO;
|
||||
import com.njcn.csharmonic.pojo.vo.TargetDetailVO;
|
||||
import com.njcn.csharmonic.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 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);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/lineData")
|
||||
@ApiOperation("获取指标数据")
|
||||
@ApiImplicitParam(name = "id", value = "组态页面id", required = true)
|
||||
@Deprecated
|
||||
public HttpResult<List<RtDataVO>> getLineData(@RequestParam("id") String id) {
|
||||
String methodDescribe = getMethodDescribe("getLineData");
|
||||
List<RtDataVO> list = lineTargetService.getLineData(id);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.njcn.csharmonic.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.csharmonic.service.StableDataService;
|
||||
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.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.njcn.csharmonic.param.ThdDataQueryParm;
|
||||
import com.njcn.csharmonic.pojo.vo.ThdDataVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2023/5/18 8:51【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/stable")
|
||||
@Api(tags = "稳态数据展示")
|
||||
@AllArgsConstructor
|
||||
public class StableDataController extends BaseController {
|
||||
|
||||
private final StableDataService stableDataService;
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/queryFisrtThdData")
|
||||
@ApiOperation("查询谐波畸变率实时数据")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "devId", value = "设备id", required = true),
|
||||
@ApiImplicitParam(name = "statisticalName", value = "统计指标name", required = true)
|
||||
})
|
||||
public HttpResult<List<ThdDataVO>> queryFisrtThdData(@RequestParam("devId") String devId, @RequestParam("statisticalName") String statisticalName) {
|
||||
String methodDescribe = getMethodDescribe("queryThdData");
|
||||
List<ThdDataVO> list = stableDataService.queryThdData(devId, statisticalName);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/queryThdDataByTime")
|
||||
@ApiOperation("查询时间段内谐波畸变率")
|
||||
@ApiImplicitParam(name = "thdDataQueryParm", value = "查询参数", required = true)
|
||||
public HttpResult<List<ThdDataVO>> queryThdDataByTime(@RequestBody @Validated ThdDataQueryParm thdDataQueryParm) {
|
||||
String methodDescribe = getMethodDescribe("queryThdDataByTime");
|
||||
List<ThdDataVO> list = stableDataService.queryThdDataByTime(thdDataQueryParm);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/queryFisrtThdContent")
|
||||
@ApiOperation("查询谐波含量实时数据")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "devId", value = "设备id", required = true),
|
||||
@ApiImplicitParam(name = "statisticalName", value = "统计指标name", required = true)
|
||||
})
|
||||
public HttpResult<List<ThdDataVO>> queryFisrtThdContent(@RequestParam("devId") String devId, @RequestParam("statisticalName") String statisticalName) {
|
||||
String methodDescribe = getMethodDescribe("queryFisrtThdContent");
|
||||
List<ThdDataVO> list = stableDataService.queryFisrtThdContent(devId, statisticalName);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/queryThdContentByTime")
|
||||
@ApiOperation("查询时间段内谐波畸变率")
|
||||
@ApiImplicitParam(name = "thdDataQueryParm", value = "查询参数", required = true)
|
||||
public HttpResult<List<ThdDataVO>> queryThdContentByTime(@RequestBody @Validated ThdDataQueryParm thdDataQueryParm) {
|
||||
String methodDescribe = getMethodDescribe("queryThdContentByTime");
|
||||
List<ThdDataVO> list = stableDataService.queryThdContentByTime(thdDataQueryParm);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.njcn.csharmonic.handler;
|
||||
|
||||
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
||||
import com.github.tocrhz.mqtt.annotation.MqttSubscribe;
|
||||
import com.github.tocrhz.mqtt.annotation.NamedValue;
|
||||
import com.github.tocrhz.mqtt.annotation.Payload;
|
||||
import com.github.tocrhz.mqtt.publisher.MqttPublisher;
|
||||
import com.njcn.csharmonic.pojo.vo.RtDataVO;
|
||||
import com.njcn.csharmonic.service.ILineTargetService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.eclipse.paho.client.mqttv3.MqttMessage;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0.0
|
||||
* @date 2022年03月23日 09:41
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
public class MqttMessageHandler {
|
||||
|
||||
private final MqttPublisher publisher;
|
||||
|
||||
private final ILineTargetService lineTargetService;
|
||||
|
||||
/**
|
||||
* 实时数据应答
|
||||
*/
|
||||
@MqttSubscribe(value = "/zl/askRtData/{pageId}",qos = 1)
|
||||
public void responseRtData(String topic, @NamedValue("pageId") String pageId, MqttMessage message, @Payload String payload) {
|
||||
List<RtDataVO> list = lineTargetService.getLineData(pageId);
|
||||
Gson gson = new Gson();
|
||||
publisher.send("/zl/rtData/"+pageId,gson.toJson(list),1,false);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.njcn.csharmonic.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.csharmonic.pojo.po.CsConfigurationPO;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2023/5/31 10:53【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CsConfigurationMapper extends BaseMapper<CsConfigurationPO> {
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.njcn.csharmonic.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.csharmonic.pojo.po.CsNetDevPO;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2023/5/31 14:13【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CsNetDevPOMapper extends BaseMapper<CsNetDevPO> {
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.njcn.csharmonic.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.csharmonic.pojo.po.CsPagePO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/5/31 14:31【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CsPagePOMapper extends BaseMapper<CsPagePO> {
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?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.csharmonic.mapper.CsConfigurationMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.csharmonic.pojo.po.CsConfigurationPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table cs_configuration-->
|
||||
<id column="id" jdbcType="VARCHAR" property="id" />
|
||||
<result column="name" jdbcType="VARCHAR" property="name" />
|
||||
<result column="status" jdbcType="INTEGER" property="status" />
|
||||
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
id, `name`, `status`, create_by, create_time, update_by, update_time
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,24 @@
|
||||
<?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.csharmonic.mapper.CsNetDevPOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.csharmonic.pojo.po.CsNetDevPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table cs_net_dev-->
|
||||
<id column="id" jdbcType="VARCHAR" property="id" />
|
||||
<result column="dev_type" jdbcType="VARCHAR" property="devType" />
|
||||
<result column="time" jdbcType="TIMESTAMP" property="time" />
|
||||
<result column="version" jdbcType="VARCHAR" property="version" />
|
||||
<result column="soft_info_id" jdbcType="VARCHAR" property="softInfoId" />
|
||||
<result column="prj_info_id" jdbcType="VARCHAR" property="prjInfoId" />
|
||||
<result column="status" jdbcType="INTEGER" property="status" />
|
||||
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
id, dev_type, `time`, version, soft_info_id, prj_info_id, `status`, create_by, create_time,
|
||||
update_by, update_time
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,21 @@
|
||||
<?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.csharmonic.mapper.CsPagePOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.csharmonic.pojo.po.CsPagePO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table cs_page-->
|
||||
<id column="id" jdbcType="VARCHAR" property="id" />
|
||||
<result column="pid" jdbcType="VARCHAR" property="pid" />
|
||||
<result column="name" jdbcType="VARCHAR" property="name" />
|
||||
<result column="path" jdbcType="VARCHAR" property="path" />
|
||||
<result column="status" jdbcType="INTEGER" property="status" />
|
||||
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
id, pid, `name`, `path`, `status`, create_by, create_time, update_by, update_time
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.njcn.csharmonic.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.csharmonic.param.CsConfigurationParm;
|
||||
import com.njcn.csharmonic.pojo.po.CsConfigurationPO;
|
||||
import com.njcn.csharmonic.pojo.vo.CsConfigurationVO;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/5/31 10:53【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CsConfigurationService extends IService<CsConfigurationPO>{
|
||||
|
||||
|
||||
boolean add(CsConfigurationParm csConfigurationParm);
|
||||
|
||||
boolean audit(CsConfigurationParm.CsConfigurationAuditParam auditParm);
|
||||
|
||||
IPage<CsConfigurationVO> queryPage(CsConfigurationParm.CsConfigurationQueryParam csConfigurationQueryParam);
|
||||
|
||||
String uploadImage(MultipartFile issuesFile);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.csharmonic.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.csharmonic.pojo.po.CsNetDevPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/5/31 14:12【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CsNetDevPOService extends IService<CsNetDevPO>{
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.njcn.csharmonic.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.csharmonic.param.CsPageParm;
|
||||
import com.njcn.csharmonic.pojo.po.CsPagePO;
|
||||
import com.njcn.csharmonic.pojo.vo.CsPageVO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/5/31 14:31【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CsPagePOService extends IService<CsPagePO>{
|
||||
|
||||
|
||||
CsPageVO add(CsPageParm csPageParm);
|
||||
|
||||
boolean audit(CsPageParm.CsPageParmAuditParam auditParm);
|
||||
|
||||
IPage<CsPageVO> queryPage(CsPageParm.CsPageParmQueryParam csPageParam);
|
||||
|
||||
/**
|
||||
* 根据id获取组态页面数据
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
CsPagePO queryById(String id);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.njcn.csharmonic.service;
|
||||
|
||||
import com.njcn.csdevice.pojo.vo.LineTargetVO;
|
||||
import com.njcn.csharmonic.pojo.vo.RtDataVO;
|
||||
import com.njcn.csharmonic.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);
|
||||
|
||||
/**
|
||||
* 获取绑定指标的数据
|
||||
* @param id
|
||||
*/
|
||||
List<RtDataVO> getLineData(String id);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.njcn.csharmonic.service;
|
||||
|
||||
|
||||
|
||||
import com.njcn.csharmonic.param.ThdDataQueryParm;
|
||||
import com.njcn.csharmonic.pojo.vo.ThdDataVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2023/5/18 14:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface StableDataService {
|
||||
List<ThdDataVO> queryThdData(String devId, String statisticalName);
|
||||
/**
|
||||
* @Description: 查询时间段内谐波畸变率
|
||||
* @Param:
|
||||
* @return: java.util.List<com.njcn.algorithm.pojo.vo.ThdDataVO>
|
||||
* @Author: clam
|
||||
* @Date: 2023/5/23
|
||||
*/
|
||||
List<ThdDataVO> queryThdDataByTime(ThdDataQueryParm thdDataQueryParm);
|
||||
|
||||
List<ThdDataVO> queryFisrtThdContent(String devId, String statisticalName);
|
||||
|
||||
List<ThdDataVO> queryThdContentByTime(ThdDataQueryParm thdDataQueryParm);
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
package com.njcn.csharmonic.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
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.common.utils.NjcnBeanUtil;
|
||||
import com.njcn.csharmonic.constant.HarmonicConstant;
|
||||
import com.njcn.csharmonic.mapper.CsConfigurationMapper;
|
||||
import com.njcn.csharmonic.param.CsConfigurationParm;
|
||||
import com.njcn.csharmonic.pojo.po.CsConfigurationPO;
|
||||
import com.njcn.csharmonic.pojo.vo.CsConfigurationVO;
|
||||
import com.njcn.csharmonic.service.CsConfigurationService;
|
||||
import com.njcn.oss.utils.FileStorageUtil;
|
||||
import com.njcn.user.api.UserFeignClient;
|
||||
import com.njcn.user.pojo.po.User;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/5/31 10:53【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CsConfigurationServiceImpl extends ServiceImpl<CsConfigurationMapper, CsConfigurationPO> implements CsConfigurationService{
|
||||
private final FileStorageUtil fileStorageUtil;
|
||||
|
||||
private final UserFeignClient userFeignClient;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public boolean add(CsConfigurationParm csConfigurationParm) {
|
||||
CsConfigurationPO csConfigurationPO = new CsConfigurationPO();
|
||||
BeanUtils.copyProperties(csConfigurationParm,csConfigurationPO);
|
||||
csConfigurationPO.setStatus("1");
|
||||
boolean save = this.save(csConfigurationPO);
|
||||
return save;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean audit(CsConfigurationParm.CsConfigurationAuditParam auditParm) {
|
||||
CsConfigurationPO csConfigurationPO = new CsConfigurationPO();
|
||||
NjcnBeanUtil.copyPropertiesIgnoreCase(auditParm,csConfigurationPO);
|
||||
boolean b = this.updateById(csConfigurationPO);
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<CsConfigurationVO> queryPage(CsConfigurationParm.CsConfigurationQueryParam csConfigurationQueryParam) {
|
||||
Page<CsConfigurationVO> returnpage = new Page<> (csConfigurationQueryParam.getPageNum(), csConfigurationQueryParam.getPageSize ( ));
|
||||
Page<CsConfigurationPO> temppage = new Page<> (csConfigurationQueryParam.getPageNum(), csConfigurationQueryParam.getPageSize ( ));
|
||||
|
||||
QueryWrapper<CsConfigurationPO> query = new QueryWrapper<>();
|
||||
query.like(StringUtils.isNotBlank(csConfigurationQueryParam.getSearchValue()),CsConfigurationPO.COL_NAME,csConfigurationQueryParam.getSearchValue()).
|
||||
le (StringUtils.isNotBlank (csConfigurationQueryParam.getSearchEndTime()), CsConfigurationPO.COL_CREATE_TIME, csConfigurationQueryParam.getSearchEndTime ( )).
|
||||
ge (StringUtils.isNotBlank (csConfigurationQueryParam.getSearchBeginTime()), CsConfigurationPO.COL_CREATE_TIME, csConfigurationQueryParam.getSearchBeginTime ( )).
|
||||
eq ("status",1).orderByDesc(CsConfigurationPO.COL_CREATE_TIME);
|
||||
Page<CsConfigurationPO> csConfigurationPOPage = this.getBaseMapper().selectPage(temppage, query);
|
||||
List<String> collect1 = csConfigurationPOPage.getRecords().stream().map(CsConfigurationPO::getCreateBy).collect(Collectors.toList());
|
||||
Map<String, String> collect2;
|
||||
if(!CollectionUtils.isEmpty(collect1)){
|
||||
List<User> data = userFeignClient.getUserByIdList(collect1).getData();
|
||||
collect2 = data.stream().collect(Collectors.toMap(User::getId, User::getName, (e1, e2) -> e1 + "," + e2));
|
||||
|
||||
} else {
|
||||
collect2 = new HashMap<>();
|
||||
}
|
||||
|
||||
List<CsConfigurationVO> collect = csConfigurationPOPage.getRecords().stream().map(page -> {
|
||||
CsConfigurationVO csDevModelPageVO = new CsConfigurationVO();
|
||||
BeanUtils.copyProperties(page, csDevModelPageVO);
|
||||
csDevModelPageVO.setOperater(collect2.get(csDevModelPageVO.getCreateBy()));
|
||||
return csDevModelPageVO;
|
||||
}).collect(Collectors.toList());
|
||||
returnpage.setRecords(collect);
|
||||
returnpage.setTotal(csConfigurationPOPage.getTotal());
|
||||
|
||||
|
||||
|
||||
return returnpage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String uploadImage(MultipartFile issuesFile) {
|
||||
return fileStorageUtil.getFileUrl( fileStorageUtil.uploadMultipart(issuesFile, HarmonicConstant.CONFIGURATIONPATH));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.njcn.csharmonic.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.csharmonic.mapper.CsNetDevPOMapper;
|
||||
import com.njcn.csharmonic.pojo.po.CsNetDevPO;
|
||||
import com.njcn.csharmonic.service.CsNetDevPOService;
|
||||
import org.springframework.stereotype.Service;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/5/31 14:12【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class CsNetDevPOServiceImpl extends ServiceImpl<CsNetDevPOMapper, CsNetDevPO> implements CsNetDevPOService{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
package com.njcn.csharmonic.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
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.csharmonic.constant.HarmonicConstant;
|
||||
import com.njcn.csharmonic.mapper.CsConfigurationMapper;
|
||||
import com.njcn.csharmonic.mapper.CsPagePOMapper;
|
||||
import com.njcn.csharmonic.param.CsPageParm;
|
||||
import com.njcn.csharmonic.pojo.po.CsConfigurationPO;
|
||||
import com.njcn.csharmonic.pojo.po.CsPagePO;
|
||||
import com.njcn.csharmonic.pojo.vo.CsPageVO;
|
||||
import com.njcn.csharmonic.service.CsPagePOService;
|
||||
import com.njcn.oss.utils.FileStorageUtil;
|
||||
import com.njcn.user.api.UserFeignClient;
|
||||
import com.njcn.user.pojo.po.User;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/5/31 14:31【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CsPagePOServiceImpl extends ServiceImpl<CsPagePOMapper, CsPagePO> implements CsPagePOService{
|
||||
private final FileStorageUtil fileStorageUtil;
|
||||
private final CsConfigurationMapper csConfigurationMapper;
|
||||
private final UserFeignClient userFeignClient;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public CsPageVO add(CsPageParm csPageParm) {
|
||||
CsPagePO csPagePO = new CsPagePO();
|
||||
CsPageVO csPageVO = new CsPageVO();
|
||||
csPagePO.setPid(csPageParm.getPid());
|
||||
csPagePO.setStatus("1");
|
||||
csPagePO.setName(csPageParm.getName());
|
||||
InputStream inputStream = this.writeJsonStringToInputStream(csPageParm.getJsonFile());
|
||||
String s = fileStorageUtil.uploadStream(inputStream, HarmonicConstant.CONFIGURATIONPATH, HarmonicConstant.CONFIGURATIONNAME);
|
||||
csPagePO.setPath(s);
|
||||
boolean save = this.save(csPagePO);
|
||||
BeanUtils.copyProperties(csPagePO, csPageVO);
|
||||
|
||||
InputStream fileStream = fileStorageUtil.getFileStream(csPagePO.getPath());
|
||||
String text = new BufferedReader(
|
||||
new InputStreamReader(fileStream, StandardCharsets.UTF_8))
|
||||
.lines()
|
||||
.collect(Collectors.joining("\n"));
|
||||
csPageVO.setPath(text);
|
||||
return csPageVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public boolean audit(CsPageParm.CsPageParmAuditParam auditParm) {
|
||||
CsPagePO csPagePO = new CsPagePO();
|
||||
CsPagePO byId = this.getById(auditParm.getId());
|
||||
fileStorageUtil.deleteFile(byId.getPath());
|
||||
BeanUtils.copyProperties(auditParm, csPagePO);
|
||||
if(StringUtils.isNotBlank(auditParm.getJsonFile())){
|
||||
InputStream inputStream = this.writeJsonStringToInputStream(auditParm.getJsonFile());
|
||||
|
||||
String s = fileStorageUtil.uploadStream(inputStream, HarmonicConstant.CONFIGURATIONPATH, HarmonicConstant.CONFIGURATIONNAME);
|
||||
csPagePO.setPath(s);
|
||||
}
|
||||
|
||||
|
||||
return this.updateById(csPagePO);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<CsPageVO> queryPage(CsPageParm.CsPageParmQueryParam csPageParam) {
|
||||
Page<CsPageVO> returnpage = new Page<> (csPageParam.getPageNum(), csPageParam.getPageSize ( ));
|
||||
QueryWrapper<CsPagePO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq(StringUtils.isNotBlank (csPageParam.getPid()),CsPagePO.COL_PID,csPageParam.getPid()).
|
||||
like(StringUtils.isNotBlank (csPageParam.getSearchValue()),CsPagePO.COL_NAME,csPageParam.getSearchValue()).
|
||||
eq ("status",1).
|
||||
orderByDesc(CsPagePO.COL_CREATE_TIME);
|
||||
|
||||
IPage<CsPagePO> pageData = this.page(new Page<>(csPageParam.getPageNum(), csPageParam.getPageSize()), queryWrapper);
|
||||
List<String> collect1 = pageData.getRecords().stream().map(CsPagePO::getCreateBy).collect(Collectors.toList());
|
||||
Map<String, String> collect2;
|
||||
if(!CollectionUtils.isEmpty(collect1)){
|
||||
List<User> data = userFeignClient.getUserByIdList(collect1).getData();
|
||||
collect2 = data.stream().collect(Collectors.toMap(User::getId, User::getName, (e1, e2) -> e1 + "," + e2));
|
||||
|
||||
} else {
|
||||
collect2 = new HashMap<>();
|
||||
}
|
||||
List<CsPageVO> collect = pageData.getRecords().stream().map(temp -> {
|
||||
CsPageVO csPageVO = new CsPageVO();
|
||||
CsConfigurationPO csConfigurationPO = csConfigurationMapper.selectById(temp.getPid());
|
||||
BeanUtils.copyProperties(temp, csPageVO);
|
||||
csPageVO.setConfigurationName(csConfigurationPO.getName());
|
||||
InputStream fileStream = fileStorageUtil.getFileStream(temp.getPath());
|
||||
String text = new BufferedReader(
|
||||
new InputStreamReader(fileStream, StandardCharsets.UTF_8))
|
||||
.lines()
|
||||
.collect(Collectors.joining("\n"));
|
||||
csPageVO.setPath(text);
|
||||
csPageVO.setOperater(collect2.get(csPageVO.getCreateBy()));
|
||||
return csPageVO;
|
||||
}).collect(Collectors.toList());
|
||||
returnpage.setRecords(collect);
|
||||
returnpage.setTotal(pageData.getTotal());
|
||||
|
||||
return returnpage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CsPagePO queryById(String id) {
|
||||
return this.lambdaQuery().eq(CsPagePO::getId,id).one();
|
||||
}
|
||||
|
||||
|
||||
/*将strin写入Json文件,返回一个InputStream*/
|
||||
public InputStream writeJsonStringToInputStream(String jsonString) {
|
||||
// 转换为输入流
|
||||
ByteArrayInputStream inputStream = new ByteArrayInputStream(jsonString.getBytes(StandardCharsets.UTF_8));
|
||||
return inputStream;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,241 @@
|
||||
package com.njcn.csharmonic.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
||||
import com.github.tocrhz.mqtt.publisher.MqttPublisher;
|
||||
import com.njcn.csdevice.api.*;
|
||||
import com.njcn.csdevice.pojo.po.CsDataArray;
|
||||
import com.njcn.csdevice.pojo.po.CsDevModelPO;
|
||||
import com.njcn.csdevice.pojo.po.CsDevModelRelationPO;
|
||||
import com.njcn.csdevice.pojo.vo.LineTargetVO;
|
||||
import com.njcn.csharmonic.constant.HarmonicConstant;
|
||||
import com.njcn.csharmonic.pojo.influx.CsDataHarmPowerP;
|
||||
import com.njcn.csharmonic.pojo.influx.CsDataV;
|
||||
import com.njcn.csharmonic.pojo.influx.CsPqdData;
|
||||
import com.njcn.csharmonic.pojo.vo.ElementsVO;
|
||||
import com.njcn.csharmonic.pojo.vo.RtDataVO;
|
||||
import com.njcn.csharmonic.pojo.vo.TargetDetailVO;
|
||||
import com.njcn.csharmonic.pojo.vo.ZuTaiVo;
|
||||
import com.njcn.csharmonic.service.CsPagePOService;
|
||||
import com.njcn.csharmonic.service.ILineTargetService;
|
||||
import com.njcn.csharmonic.utils.CsReflectUitl;
|
||||
import com.njcn.influx.pojo.dto.StatisticalDataDTO;
|
||||
import com.njcn.influx.service.CommonService;
|
||||
import com.njcn.influxdb.utils.InfluxDbUtils;
|
||||
import com.njcn.oss.utils.FileStorageUtil;
|
||||
import com.njcn.system.api.EpdFeignClient;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.influxdb.dto.QueryResult;
|
||||
import org.influxdb.impl.InfluxDBResultMapper;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
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;
|
||||
|
||||
private final FileStorageUtil fileStorageUtil;
|
||||
|
||||
private final CsPagePOService csPagePOService;
|
||||
|
||||
private final MqttPublisher publisher;
|
||||
|
||||
private final InfluxDbUtils influxDbUtils;
|
||||
|
||||
private final EpdFeignClient epdFeignClient;
|
||||
|
||||
private final CommonService commonService;
|
||||
|
||||
|
||||
@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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RtDataVO> getLineData(String id) {
|
||||
List<RtDataVO> result = new ArrayList<>();
|
||||
String path = csPagePOService.queryById(id).getPath();
|
||||
InputStream inputStream = fileStorageUtil.getFileStream(path);
|
||||
List<ElementsVO> list = analysisJson(inputStream);
|
||||
//influx的原始方法获取数据
|
||||
if (CollectionUtil.isNotEmpty(list)){
|
||||
list.forEach(item->{
|
||||
String targetTag = item.getTargetId().stream().reduce((first, second) -> second).orElse("no last element");
|
||||
if (CollectionUtil.isNotEmpty(dataArrayFeignClient.getDataArrayById(item.getTargetPid(),targetTag).getData())){
|
||||
String targetName = dataArrayFeignClient.getDataArrayById(item.getTargetPid(),targetTag).getData().get(0).getAnotherName();
|
||||
String dataId = dataArrayFeignClient.getDataArrayById(item.getTargetPid(),targetTag).getData().get(0).getDataId();
|
||||
String classId = epdFeignClient.selectById(dataId).getData().getClassId();
|
||||
String lineId = item.getLineId().stream().reduce((first, second) -> second).orElse("no last element");
|
||||
String dataType = item.getDataType();
|
||||
String phasic = item.getPhasic();
|
||||
result.add(getLineRtData2(lineId,classId,targetTag,phasic,dataType,targetName));
|
||||
}
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取子节点
|
||||
*/
|
||||
public List<LineTargetVO> getChildren(LineTargetVO item, List<LineTargetVO> all) {
|
||||
return all.stream().filter(allItem -> allItem.getPid().equals(item.getId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析json文件
|
||||
*/
|
||||
public List<ElementsVO> analysisJson(InputStream inputStream) {
|
||||
Gson gson = new Gson();
|
||||
String text = new BufferedReader(
|
||||
new InputStreamReader(inputStream, StandardCharsets.UTF_8))
|
||||
.lines()
|
||||
.collect(Collectors.joining("\n"));
|
||||
ZuTaiVo zuTai = gson.fromJson(text, ZuTaiVo.class);
|
||||
return zuTai.getElements();
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过拼接sql语句获取方法
|
||||
* @param lineId 监测点Id
|
||||
* @param tableName 表名称
|
||||
* @param columnName 字段名称
|
||||
* @param phasic 相别
|
||||
* @param dataType 数据类型
|
||||
* @return
|
||||
*/
|
||||
public <T> T getLineRtData(String lineId, String tableName, String columnName, String phasic, String dataType) {
|
||||
T t = null;
|
||||
HashMap<String, Class<?>> entityClassesByAnnotation = CsReflectUitl.getEntityClassesByAnnotation();
|
||||
Class<?> aClass = entityClassesByAnnotation.get(tableName);
|
||||
String sql = "select line_id,phasic_type,value_type,last(" + columnName + ") AS rtData from "+ tableName +" where line_id = '" + lineId + "' and phasic_type = '" + phasic + "' and value_type = '" + dataType + "' tz('Asia/Shanghai')";
|
||||
System.out.println("sql==:" + sql);
|
||||
QueryResult sqlResult = influxDbUtils.query(sql);
|
||||
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
|
||||
List<?> list = resultMapper.toPOJO(sqlResult, aClass);
|
||||
if (CollectionUtil.isNotEmpty(list)){
|
||||
t = (T)list.get(0);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过拼接sql语句获取方法
|
||||
* @param lineId 监测点Id
|
||||
* @param tableName 表名称
|
||||
* @param columnName 字段名称
|
||||
* @param phasic 相别
|
||||
* @param dataType 数据类型
|
||||
* @return
|
||||
*/
|
||||
public RtDataVO getLineRtData2(String lineId, String tableName, String columnName, String phasic, String dataType, String target) {
|
||||
RtDataVO vo = new RtDataVO();
|
||||
String sql = "select line_id,phasic_type,value_type,last(" + columnName + ") AS rtData from "+ tableName +" where line_id = '" + lineId + "' and phasic_type = '" + phasic + "' and value_type = '" + dataType + "' tz('Asia/Shanghai')";
|
||||
QueryResult sqlResult = influxDbUtils.query(sql);
|
||||
if (CollectionUtil.isNotEmpty(sqlResult.getResults().get(0).getSeries())){
|
||||
vo.setRtData(BigDecimal.valueOf(Double.parseDouble(sqlResult.getResults().get(0).getSeries().get(0).getValues().get(0).get(4).toString())).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
||||
} else {
|
||||
vo.setRtData(3.1415926);
|
||||
}
|
||||
vo.setLineId(lineId);
|
||||
vo.setPhaseType(phasic);
|
||||
vo.setValueType(dataType);
|
||||
vo.setValueType(dataType);
|
||||
vo.setTargetName(target);
|
||||
vo.setTargetTag(columnName);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过orm框架获取数据
|
||||
* @param lineId 监测点Id
|
||||
* @param tableName 表名称
|
||||
* @param columnName 字段名称
|
||||
* @param phasic 相别
|
||||
* @param dataType 数据类型
|
||||
* @return
|
||||
*/
|
||||
public StatisticalDataDTO getLineRtData3(String lineId, String tableName, String columnName, String phasic, String dataType, String target) {
|
||||
return commonService.getLineRtData(lineId,tableName,columnName,phasic,dataType);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据表明返回不同数据结果
|
||||
*/
|
||||
public RtDataVO findDataByTableName(String lineId, String tableName, String columnName, String phasic, String dataType,String targetName) {
|
||||
RtDataVO rtDataVO = new RtDataVO();
|
||||
switch (tableName) {
|
||||
case HarmonicConstant.DATA_HARM_POWER_P:
|
||||
CsDataHarmPowerP rtData1 = getLineRtData(lineId,tableName,targetName,phasic,dataType);
|
||||
BeanUtils.copyProperties(rtData1,rtDataVO);
|
||||
rtDataVO.setTargetName(targetName);
|
||||
break;
|
||||
case HarmonicConstant.DATA_V:
|
||||
CsDataV rtData2 = getLineRtData(lineId,tableName,targetName,phasic,dataType);
|
||||
BeanUtils.copyProperties(rtData2,rtDataVO);
|
||||
rtDataVO.setTargetName(targetName);
|
||||
break;
|
||||
case HarmonicConstant.PQD_DATA:
|
||||
CsPqdData rtData3 = getLineRtData(lineId,tableName,targetName,phasic,dataType);
|
||||
BeanUtils.copyProperties(rtData3,rtDataVO);
|
||||
rtDataVO.setTargetName(targetName);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return rtDataVO;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
package com.njcn.csharmonic.service.impl;
|
||||
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.csdevice.api.CsLineFeignClient;
|
||||
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
|
||||
import com.njcn.csdevice.pojo.po.CsLinePO;
|
||||
import com.njcn.csdevice.utils.ReflectUtils;
|
||||
import com.njcn.csharmonic.service.StableDataService;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.njcn.csharmonic.param.ThdDataQueryParm;
|
||||
import com.njcn.csharmonic.pojo.vo.ThdDataVO;
|
||||
import com.njcn.influx.pojo.po.HarmonicRatioData;
|
||||
import com.njcn.influx.pojo.po.PowerQualityData;
|
||||
import com.njcn.influx.service.HaronicRatioService;
|
||||
import com.njcn.influx.service.PowerQualityService;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2023/5/18 14:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class StableDataServiceImpl implements StableDataService {
|
||||
|
||||
private final CsLineFeignClient csLineFeignClient;
|
||||
private final PowerQualityService powerQualityService;
|
||||
private final HaronicRatioService harmonicRatioService;
|
||||
|
||||
@Override
|
||||
public List<ThdDataVO> queryThdData(String devId, String statisticalName) {
|
||||
List<ThdDataVO> thdDataVOList = new ArrayList<>();
|
||||
List<CsLinePO> csLinePOList = csLineFeignClient.queryLineByDevId(devId).getData();
|
||||
Optional.ofNullable(csLinePOList).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.LINE_DATA_ERROR));
|
||||
List<String> collect = csLinePOList.stream().map(CsLinePO::getLineId).collect(Collectors.toList());
|
||||
List<PowerQualityData> firstPowerQuality = powerQualityService.getFirstPowerQuality(collect, statisticalName);
|
||||
|
||||
firstPowerQuality.forEach(temp->{
|
||||
ThdDataVO thdDataVO = new ThdDataVO();
|
||||
BeanUtils.copyProperties(temp,thdDataVO);
|
||||
thdDataVO.setStatisticalName(statisticalName);
|
||||
thdDataVO.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toLocalDateTime());
|
||||
String position = csLinePOList.stream().filter(csLinePO -> Objects.equals(csLinePO.getLineId(), thdDataVO.getLineId())).collect(Collectors.toList()).get(0).getPosition();
|
||||
thdDataVO.setPosition(position);
|
||||
Double statisticalValue = 0.00;
|
||||
statisticalValue= (Double) ReflectUtils.getValue(temp, statisticalName);
|
||||
thdDataVO.setStatisticalData(statisticalValue);
|
||||
|
||||
thdDataVOList.add(thdDataVO);
|
||||
|
||||
});
|
||||
|
||||
return thdDataVOList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ThdDataVO> queryThdDataByTime(ThdDataQueryParm thdDataQueryParm) {
|
||||
List<ThdDataVO> thdDataVOList = new ArrayList<>();
|
||||
List<CsLinePO> csLinePOList = csLineFeignClient.queryLineByDevId(thdDataQueryParm.getDevId()).getData();
|
||||
Optional.ofNullable(csLinePOList).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.LINE_DATA_ERROR));
|
||||
List<String> collect = csLinePOList.stream().map(CsLinePO::getLineId).collect(Collectors.toList());
|
||||
List<PowerQualityData> firstPowerQuality = powerQualityService.getPowerQuality(collect, thdDataQueryParm.getStatisticalName(), thdDataQueryParm.getStartTime(), thdDataQueryParm.getEndTime());
|
||||
|
||||
firstPowerQuality.forEach(temp->{
|
||||
ThdDataVO thdDataVO = new ThdDataVO();
|
||||
BeanUtils.copyProperties(temp,thdDataVO);
|
||||
thdDataVO.setStatisticalName(thdDataQueryParm.getStatisticalName());
|
||||
thdDataVO.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toLocalDateTime());
|
||||
String position = csLinePOList.stream().filter(csLinePO -> Objects.equals(csLinePO.getLineId(), thdDataVO.getLineId())).collect(Collectors.toList()).get(0).getPosition();
|
||||
thdDataVO.setPosition(position);
|
||||
Double statisticalValue = 0.00;
|
||||
statisticalValue= (Double) ReflectUtils.getValue(temp, thdDataQueryParm.getStatisticalName());
|
||||
thdDataVO.setStatisticalData(statisticalValue);
|
||||
|
||||
thdDataVOList.add(thdDataVO);
|
||||
|
||||
});
|
||||
|
||||
return thdDataVOList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ThdDataVO> queryFisrtThdContent(String devId, String statisticalName) {
|
||||
List<ThdDataVO> thdDataVOList = new ArrayList<>();
|
||||
List<CsLinePO> csLinePOList = csLineFeignClient.queryLineByDevId(devId).getData();
|
||||
Optional.ofNullable(csLinePOList).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.LINE_DATA_ERROR));
|
||||
List<String> collect = csLinePOList.stream().map(CsLinePO::getLineId).collect(Collectors.toList());
|
||||
List<HarmonicRatioData> harmonicRatioList = harmonicRatioService.getFirstHaronicRatio(collect, statisticalName);
|
||||
harmonicRatioList.forEach(temp->{
|
||||
ThdDataVO thdDataVO = new ThdDataVO();
|
||||
BeanUtils.copyProperties(temp,thdDataVO);
|
||||
thdDataVO.setStatisticalName(statisticalName);
|
||||
thdDataVO.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toLocalDateTime());
|
||||
String position = csLinePOList.stream().filter(csLinePO -> Objects.equals(csLinePO.getLineId(), thdDataVO.getLineId())).collect(Collectors.toList()).get(0).getPosition();
|
||||
thdDataVO.setPosition(position);
|
||||
Double statisticalValue = 0.00;
|
||||
statisticalValue= (Double) ReflectUtils.getValue(temp, statisticalName);
|
||||
thdDataVO.setStatisticalData(statisticalValue);
|
||||
|
||||
thdDataVOList.add(thdDataVO);
|
||||
|
||||
});
|
||||
|
||||
return thdDataVOList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ThdDataVO> queryThdContentByTime(ThdDataQueryParm thdDataQueryParm) {
|
||||
List<ThdDataVO> thdDataVOList = new ArrayList<>();
|
||||
List<CsLinePO> csLinePOList = csLineFeignClient.queryLineByDevId(thdDataQueryParm.getDevId()).getData();
|
||||
Optional.ofNullable(csLinePOList).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.LINE_DATA_ERROR));
|
||||
List<String> collect = csLinePOList.stream().map(CsLinePO::getLineId).collect(Collectors.toList());
|
||||
List<HarmonicRatioData> harmonicRatioList = harmonicRatioService.getHaronicRatio(collect, thdDataQueryParm.getStatisticalName(),thdDataQueryParm.getStartTime(), thdDataQueryParm.getEndTime());
|
||||
harmonicRatioList.forEach(temp->{
|
||||
ThdDataVO thdDataVO = new ThdDataVO();
|
||||
BeanUtils.copyProperties(temp,thdDataVO);
|
||||
thdDataVO.setStatisticalName(thdDataQueryParm.getStatisticalName());
|
||||
thdDataVO.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toLocalDateTime());
|
||||
String position = csLinePOList.stream().filter(csLinePO -> Objects.equals(csLinePO.getLineId(), thdDataVO.getLineId())).collect(Collectors.toList()).get(0).getPosition();
|
||||
thdDataVO.setPosition(position);
|
||||
Double statisticalValue = 0.00;
|
||||
statisticalValue= (Double) ReflectUtils.getValue(temp, thdDataQueryParm.getStatisticalName());
|
||||
thdDataVO.setStatisticalData(statisticalValue);
|
||||
|
||||
thdDataVOList.add(thdDataVO);
|
||||
|
||||
});
|
||||
|
||||
return thdDataVOList;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user