cvt算法

This commit is contained in:
hzj
2025-03-03 20:06:11 +08:00
parent 6321c68282
commit 5f18dd4fb6
8 changed files with 235 additions and 14 deletions

View File

@@ -0,0 +1,92 @@
package com.njcn.dataProcess.controller;
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.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.dao.imapper.DataHarmRateVCvtMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataHarmRateVCvt;
import com.njcn.dataProcess.po.influx.DataV;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto;
import com.njcn.dataProcess.pojo.dto.DataVCvtDto;
import com.njcn.dataProcess.service.IDataHarmRateVCvt;
import com.njcn.dataProcess.service.IDataVCvt;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
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 javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author hongawen
* @version 1.0
* @data 2024/11/6 19:48
*/
@Validated
@Slf4j
@Controller
@RestController
@RequestMapping("/dataHarmRateVCvt")
@Api(tags = "电压好含有率数(cvt表)据获取")
public class DataHarmRateVCvtController extends BaseController {
@QueryBean
private IDataHarmRateVCvt dataHarmRateVCvtQuery;
@InsertBean
private IDataHarmRateVCvt dataHarmRateVCvtInsert;
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@QueryBean
private IDataVCvt dataVCvtQuery;
@Resource
private DataHarmRateVCvtMapper dataHarmRateVCvtMapper;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getRawData")
@ApiOperation("获取原始数据")
public HttpResult<List<DataHarmRateVCvtDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getRawData");
List<DataHarmRateVCvtDto> data = dataHarmRateVCvtInsert.getRawData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/createData")
@ApiOperation("获取原始数据")
public HttpResult<String> createData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("createData");
List<DataVCvtDto> rawData = dataVCvtQuery.getRawData(lineParam);
List<DataHarmRateVCvt> collect = rawData.stream().map(temp ->
{
DataHarmRateVCvt dataV = new DataHarmRateVCvt();
BeanUtils.copyProperties(temp, dataV);
dataV.setTime(LocalDateTime.parse(temp.getMinTime(), DATE_TIME_FORMATTER).atZone(ZoneId.systemDefault()).toInstant());
return dataV;
}).collect(Collectors.toList());
dataHarmRateVCvtMapper.insertBatch(collect);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,11 @@
package com.njcn.dataProcess.dao.imapper;
import com.njcn.dataProcess.po.influx.DataHarmRateVCvt;
import com.njcn.influx.base.InfluxDbBaseMapper;
/**
* @author xy
*/
public interface DataHarmRateVCvtMapper extends InfluxDbBaseMapper<DataHarmRateVCvt> {
}

View File

@@ -0,0 +1,27 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataHarmrateVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateVD;
import java.util.List;
/**
* @author xy
*/
public interface IDataHarmRateVCvt {
/**
* 获取原始数据
* @param lineParam
* @return
*/
List<DataHarmRateVCvtDto> getRawData(LineCountEvaluateParam lineParam);
}

View File

@@ -0,0 +1,50 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.njcn.dataProcess.dao.imapper.DataHarmRateVCvtMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataHarmRateVCvt;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto;
import com.njcn.dataProcess.service.IDataHarmRateVCvt;
import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
* Description:
* Date: 2025/03/03 下午 6:27【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service("InfluxdbDataHarmRateVCvtImpl")
@RequiredArgsConstructor
public class InfluxdbDataHarmRateVCvtImpl implements IDataHarmRateVCvt {
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
private final DataHarmRateVCvtMapper dataHarmRateVCvtMapper;
@Override
public List<DataHarmRateVCvtDto> getRawData(LineCountEvaluateParam lineParam) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmRateVCvt.class);
influxQueryWrapper.regular(DataHarmRateVCvt::getLineId,lineParam.getLineId()).between(DataHarmRateVCvt::getTime, lineParam.getStartTime(), lineParam.getEndTime());
List<DataHarmRateVCvt> dataVCvts = dataHarmRateVCvtMapper.selectByQueryWrapper(influxQueryWrapper);
List<DataHarmRateVCvtDto> result = new ArrayList<>();
dataVCvts.forEach(item->{
DataHarmRateVCvtDto dto = new DataHarmRateVCvtDto();
BeanUtils.copyProperties(item,dto);
dto.setMinTime(DATE_TIME_FORMATTER.format(item.getTime()));
result.add(dto);
});
return result;
}
}

View File

@@ -8,6 +8,7 @@ import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmRateVRelationMapper
import com.njcn.dataProcess.dto.DataHarmrateVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataHarmrateV;
import com.njcn.dataProcess.po.influx.DataV;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
@@ -21,6 +22,7 @@ import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
@@ -170,7 +172,14 @@ public class InfluxdbDataHarmRateVImpl extends MppServiceImpl<RStatDataHarmRateV
@Override
public void addList(List<DataHarmRateVDto> list) {
List<DataHarmrateV> result = new ArrayList<>();
list.forEach(item->{
DataHarmrateV dataV = new DataHarmrateV();
BeanUtils.copyProperties(item, dataV);
dataV.setTime(LocalDateTime.parse(item.getMinTime(), DATE_TIME_FORMATTER).atZone(ZoneId.systemDefault()).toInstant());
result.add(dataV);
});
dataHarmRateVMapper.insertBatch(result);
}
/**

View File

@@ -49,7 +49,7 @@ public class InfluxdbDataVCvtImpl implements IDataVCvt {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataVCvt.class);
influxQueryWrapper.regular(DataV::getLineId,lineParam.getLineId()).between(DataV::getTime, lineParam.getStartTime(), lineParam.getEndTime());
influxQueryWrapper.regular(DataV::getLineId,lineParam.getLineId()).between(DataVCvt::getTime, lineParam.getStartTime(), lineParam.getEndTime());
List<DataVCvt> dataVCvts = dataVCvtMapper.selectByQueryWrapper(influxQueryWrapper);

View File

@@ -0,0 +1,24 @@
package com.njcn.dataProcess.service.impl.relation;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto;
import com.njcn.dataProcess.service.IDataHarmRateVCvt;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Description:
* Date: 2025/03/03 下午 6:27【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RelationDataHarmRateVCvtImpl implements IDataHarmRateVCvt {
@Override
public List<DataHarmRateVCvtDto> getRawData(LineCountEvaluateParam lineParam) {
return null;
}
}