监测点谐波畸变率算法提交
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user