监测点谐波畸变率算法提交

This commit is contained in:
2023-04-24 18:39:23 +08:00
parent 943933d447
commit 93e4c8c7c0
6 changed files with 105 additions and 5 deletions

View File

@@ -2,6 +2,7 @@ package com.njcn.harmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -35,6 +36,7 @@ public class RMpVThd implements Serializable {
*/ */
@TableField(value = "measurement_point_id") @TableField(value = "measurement_point_id")
@ApiModelProperty(value="监测点ID") @ApiModelProperty(value="监测点ID")
@MppMultiId
private String measurementPointId; private String measurementPointId;
/** /**
@@ -42,6 +44,7 @@ public class RMpVThd implements Serializable {
*/ */
@TableField(value = "data_type") @TableField(value = "data_type")
@ApiModelProperty(value="排名类型,字典表1年 2季度 3月份 4周 5日") @ApiModelProperty(value="排名类型,字典表1年 2季度 3月份 4周 5日")
@MppMultiId
private String dataType; private String dataType;
/** /**
@@ -49,6 +52,7 @@ public class RMpVThd implements Serializable {
*/ */
@TableField(value = "data_date") @TableField(value = "data_date")
@ApiModelProperty(value="时间") @ApiModelProperty(value="时间")
@MppMultiId
private Date dataDate; private Date dataDate;
/** /**

View File

@@ -7,10 +7,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.prepare.harmonic.pojo.param.LineParam; import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.line.IRMpPartHarmonicDetailDService; import com.njcn.prepare.harmonic.service.mysql.line.*;
import com.njcn.prepare.harmonic.service.mysql.line.IRMpPartHarmonicDetailMService;
import com.njcn.prepare.harmonic.service.mysql.line.IRMpSurplusHarmonicDetailDService;
import com.njcn.prepare.harmonic.service.mysql.line.IRMpSurplusHarmonicDetailMService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -46,6 +43,8 @@ public class HarmonicOverLimitController extends BaseController {
private final IRMpSurplusHarmonicDetailMService mpSurplusHarmonicDetailMService; private final IRMpSurplusHarmonicDetailMService mpSurplusHarmonicDetailMService;
private final IRMpVThdService mpVThdService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/harmonicDetailDay1") @PostMapping("/harmonicDetailDay1")
@ApiOperation("监测点稳态指标超标明细日表1") @ApiOperation("监测点稳态指标超标明细日表1")
@@ -86,4 +85,14 @@ public class HarmonicOverLimitController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/harmonicThdDay")
@ApiOperation("谐波畸变率日表")
@ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true)
public HttpResult<Boolean> harmonicThdDay(@RequestBody @Validated LineParam lineParam) {
String methodDescribe = getMethodDescribe("harmonicThdDay");
mpVThdService.insertHarmonicVThdDay(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
} }

View File

@@ -1,9 +1,11 @@
package com.njcn.prepare.harmonic.mapper.mysql.line; package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.RMpVThd; import com.njcn.harmonic.pojo.po.RMpVThd;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@@ -14,7 +16,13 @@ import java.util.Map;
* @author xiaoyao * @author xiaoyao
* @since 2022-11-07 * @since 2022-11-07
*/ */
public interface RMpVThdMapper extends BaseMapper<RMpVThd> { public interface RMpVThdMapper extends MppBaseMapper<RMpVThd> {
int insertRate(@Param("item") Map<String, Object> item); int insertRate(@Param("item") Map<String, Object> item);
/**
* 从r_stat_data_v_d中获取畸变率的最大值
* phasic_type = A、B、C && value_type = CP95
*/
List<RMpVThd> getVThdData(@Param("time") String time, @Param("lineList")List<String> lineList);
} }

View File

@@ -8,4 +8,24 @@
ON DUPLICATE KEY UPDATE v_thd = #{item.vThd} ON DUPLICATE KEY UPDATE v_thd = #{item.vThd}
</insert> </insert>
<select id="getVThdData" resultType="com.njcn.harmonic.pojo.po.RMpVThd">
select
line_id measurementPointId,
max(v_thd) vThd,
`time` dataDate,
'0' dataType
from
r_stat_data_v_d
where
`time` = #{time}
and phasic_type in ('A', 'B', 'C')
and value_type = 'CP95'
<if test="lineList != null and lineList.size() > 0">
and line_id in
<foreach collection="lineList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
group by line_id, `time`
</select>
</mapper> </mapper>

View File

@@ -0,0 +1,51 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
import com.njcn.harmonic.pojo.po.RMpVThd;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpVThdMapper;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.line.IRMpVThdService;
import com.njcn.prepare.harmonic.utils.PublicUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/4/24 17:58
*/
@Service
@Slf4j
public class RMpVThdServiceImpl extends MppServiceImpl<RMpVThdMapper, RMpVThd> implements IRMpVThdService {
@Override
@Transactional(rollbackFor = {Exception.class})
@Async("asyncExecutor")
public void insertHarmonicVThdDay(LineParam lineParam) {
log.info(LocalDateTime.now()+"===>监测点谐波畸变率开始执行");
List<RMpVThd> result = new ArrayList<>();
if (Objects.equals(lineParam.getType(),5)){
result = this.baseMapper.getVThdData(lineParam.getDataDate(),lineParam.getLineIds());
} else if (Objects.equals(lineParam.getType(),3)){
int year = Integer.parseInt(lineParam.getDataDate().split("-")[0]);
int month = Integer.parseInt(lineParam.getDataDate().split("-")[1]);
List<String> dayList = PublicUtil.getDayByMonth(year,month);
for (String item : dayList) {
result.addAll(this.baseMapper.getVThdData(item,lineParam.getLineIds()));
}
}
this.saveOrUpdateBatchByMultiId(result,50);
}
}

View File

@@ -0,0 +1,8 @@
package com.njcn.prepare.harmonic.service.mysql.line;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
public interface IRMpVThdService {
void insertHarmonicVThdDay(LineParam lineParam);
}