电能质量问题

This commit is contained in:
1771838663@qq.com
2022-11-24 16:01:28 +08:00
parent 28f6f2a320
commit cee90270e9
14 changed files with 210 additions and 129 deletions

View File

@@ -24,9 +24,13 @@ public class AbnormalParam extends IssuesParam {
@NotNull(message = "发现异常时间不可为空") @NotNull(message = "发现异常时间不可为空")
private String abnormalDevTime; private String abnormalDevTime;
@ApiModelProperty(name = "abnormalTarget",value = "异常指标") @ApiModelProperty(name = "steadyState",value = "稳态指标")
@NotNull(message = "异常指标不可为空") @NotNull(message = "稳态指标不可为空")
private String abnormalTarget; private String[] steadyState;
@ApiModelProperty(name = "transientIndicators",value = "暂态指标")
@NotNull(message = "暂态指标不可为空")
private String[] transientIndicators;
@ApiModelProperty(name = "eventDescription",value = "事件描述") @ApiModelProperty(name = "eventDescription",value = "事件描述")
@NotNull(message = "事件描述不可为空") @NotNull(message = "事件描述不可为空")

View File

@@ -36,9 +36,13 @@ public class ComplaintParam extends IssuesParam {
@NotNull(message = "投诉时间不可为空") @NotNull(message = "投诉时间不可为空")
private String complaintTime; private String complaintTime;
@ApiModelProperty(name = "abnormalTarget",value = "异常指标") @ApiModelProperty(name = "steadyState",value = "稳态指标")
@NotNull(message = "异常指标不可为空") @NotNull(message = "稳态指标不可为空")
private String abnormalTarget; private String[] steadyState;
@ApiModelProperty(name = "transientIndicators",value = "暂态指标")
@NotNull(message = "暂态指标不可为空")
private String[] transientIndicators;
@ApiModelProperty(name = "electricityType",value = "用电类别") @ApiModelProperty(name = "electricityType",value = "用电类别")
@NotNull(message = "用电类别不可为空") @NotNull(message = "用电类别不可为空")

View File

@@ -24,10 +24,6 @@ public class ExcessiveParam extends IssuesParam {
@NotNull(message = "告警原因不可为空") @NotNull(message = "告警原因不可为空")
private String warnReason; private String warnReason;
@ApiModelProperty(name = "substationId",value = "变电站ID")
@NotNull(message = "变电站ID不可为空")
private String substationId;
@ApiModelProperty(name = "measurementPointId",value = "监测点ID") @ApiModelProperty(name = "measurementPointId",value = "监测点ID")
@NotNull(message = "监测点ID不可为空") @NotNull(message = "监测点ID不可为空")
private String measurementPointId; private String measurementPointId;

View File

@@ -28,9 +28,13 @@ public class GeneralSurveyParam extends IssuesParam {
@NotNull(message = "监测点ID不可为空") @NotNull(message = "监测点ID不可为空")
private String measurementPointId; private String measurementPointId;
@ApiModelProperty(name = "overLimitTarget",value = "超标指标") @ApiModelProperty(name = "steadyState",value = "稳态指标")
@NotNull(message = "超标指标不可为空") @NotNull(message = "稳态指标不可为空")
private String overLimitTarget; private String[] steadyState;
@ApiModelProperty(name = "transientIndicators",value = "暂态指标")
@NotNull(message = "暂态指标不可为空")
private String[] transientIndicators;
@ApiModelProperty(name = "planName",value = "普测计划名称") @ApiModelProperty(name = "planName",value = "普测计划名称")
@NotNull(message = "普测计划名称不可为空") @NotNull(message = "普测计划名称不可为空")

View File

@@ -18,9 +18,9 @@ public class IssuesParam {
@NotNull(message = "单位不可为空") @NotNull(message = "单位不可为空")
private String orgNo; private String orgNo;
@ApiModelProperty(name = "powerQualityProblemNo",value = "电能质量问题编号") @ApiModelProperty(name = "orgName",value = "单位名称")
@NotNull(message = "电能质量问题编号不可为空") @NotNull(message = "单位名称不可为空")
private String powerQualityProblemNo; private String orgName;
@ApiModelProperty(name = "problemName",value = "问题名称") @ApiModelProperty(name = "problemName",value = "问题名称")
@NotNull(message = "问题名称不可为空") @NotNull(message = "问题名称不可为空")

View File

@@ -18,16 +18,16 @@ public class ProcessParam {
private String powerQualityProblemNo; private String powerQualityProblemNo;
@ApiModelProperty(name = "reportProcessContentYyfx",value = "电网侧原因") @ApiModelProperty(name = "reportProcessContentYyfx",value = "电网侧原因")
private String reportProcessContentYyfx; private String[] reportProcessContentYyfx;
@ApiModelProperty(name = "userReportProcessContentYyfx",value = "用户侧原因") @ApiModelProperty(name = "userReportProcessContentYyfx",value = "用户侧原因")
private String userReportProcessContentYyfx; private String[] userReportProcessContentYyfx;
@ApiModelProperty(name = "powerGridAffectDev",value = "电网侧受影响设备") @ApiModelProperty(name = "powerGridAffectDev",value = "电网侧受影响设备")
private String powerGridAffectDev; private String[] powerGridAffectDev;
@ApiModelProperty(name = "userAffectDev",value = "用户侧受影响设备") @ApiModelProperty(name = "userAffectDev",value = "用户侧受影响设备")
private String userAffectDev; private String[] userAffectDev;
@ApiModelProperty(name = "eventDescriptionYyfx",value = "事件描述") @ApiModelProperty(name = "eventDescriptionYyfx",value = "事件描述")
private String eventDescriptionYyfx; private String eventDescriptionYyfx;
@@ -39,10 +39,10 @@ public class ProcessParam {
private String filePathYyfx; private String filePathYyfx;
@ApiModelProperty(name = "reportProcessContentYyfx",value = "电网侧整改治理措施") @ApiModelProperty(name = "reportProcessContentYyfx",value = "电网侧整改治理措施")
private String reportProcessContentJhzg; private String[] reportProcessContentJhzg;
@ApiModelProperty(name = "userReportProcessContentJhzg",value = "用户侧整改治理措施") @ApiModelProperty(name = "userReportProcessContentJhzg",value = "用户侧整改治理措施")
private String userReportProcessContentJhzg; private String[] userReportProcessContentJhzg;
@ApiModelProperty(name = "fileNameJhzg",value = "计划整改文件名称") @ApiModelProperty(name = "fileNameJhzg",value = "计划整改文件名称")
private String fileNameJhzg; private String fileNameJhzg;
@@ -51,10 +51,10 @@ public class ProcessParam {
private String filePathJhzg; private String filePathJhzg;
@ApiModelProperty(name = "reportProcessContentSjcq",value = "电网侧实际采取措施") @ApiModelProperty(name = "reportProcessContentSjcq",value = "电网侧实际采取措施")
private String reportProcessContentSjcq; private String[] reportProcessContentSjcq;
@ApiModelProperty(name = "userReportProcessContentSjcq",value = "用户侧实际采取措施") @ApiModelProperty(name = "userReportProcessContentSjcq",value = "用户侧实际采取措施")
private String userReportProcessContentSjcq; private String[] userReportProcessContentSjcq;
@ApiModelProperty(name = "fileNameSjcq",value = "实际采取措施报告文件名称") @ApiModelProperty(name = "fileNameSjcq",value = "实际采取措施报告文件名称")
private String fileNameSjcq; private String fileNameSjcq;

View File

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
/** /**
@@ -14,6 +16,7 @@ import java.io.Serializable;
* @author xiaoyao * @author xiaoyao
* @since 2022-11-14 * @since 2022-11-14
*/ */
@Data
@TableName("r_mp_online_monitor_overproof_problem") @TableName("r_mp_online_monitor_overproof_problem")
public class RMpOnlineMonitorOverproofProblem implements Serializable { public class RMpOnlineMonitorOverproofProblem implements Serializable {
@@ -53,67 +56,4 @@ public class RMpOnlineMonitorOverproofProblem implements Serializable {
* 告警持续时间 * 告警持续时间
*/ */
private String warnLastTime; private String warnLastTime;
public String getPowerQualityProblemNo() {
return powerQualityProblemNo;
}
public void setPowerQualityProblemNo(String powerQualityProblemNo) {
this.powerQualityProblemNo = powerQualityProblemNo;
}
public String getWarnTarget() {
return warnTarget;
}
public void setWarnTarget(String warnTarget) {
this.warnTarget = warnTarget;
}
public String getWarnReason() {
return warnReason;
}
public void setWarnReason(String warnReason) {
this.warnReason = warnReason;
}
public String getSubstationId() {
return substationId;
}
public void setSubstationId(String substationId) {
this.substationId = substationId;
}
public String getMeasurementPointId() {
return measurementPointId;
}
public void setMeasurementPointId(String measurementPointId) {
this.measurementPointId = measurementPointId;
}
public LocalDateTime getDataDate() {
return dataDate;
}
public void setDataDate(LocalDateTime dataDate) {
this.dataDate = dataDate;
}
public String getWarnLastTime() {
return warnLastTime;
}
public void setWarnLastTime(String warnLastTime) {
this.warnLastTime = warnLastTime;
}
@Override
public String toString() {
return "RMpOnlineMonitorOverproofProblem{" +
"powerQualityProblemNo=" + powerQualityProblemNo +
", warnTarget=" + warnTarget +
", warnReason=" + warnReason +
", substationId=" + substationId +
", measurementPointId=" + measurementPointId +
", dataDate=" + dataDate +
", warnLastTime=" + warnLastTime +
"}";
}
} }

View File

@@ -34,10 +34,10 @@ public class AbnormalVO extends ProcessVO implements Serializable {
/** /**
* 稳态指标 * 稳态指标
*/ */
private String steadyIndicator; private String[] steadyIndicator;
/** /**
* 暂态指标 * 暂态指标
*/ */
private String transientIndicators; private String[] transientIndicators;
} }

View File

@@ -39,11 +39,11 @@ public class ComplaintVO extends ProcessVO implements Serializable {
/** /**
* 稳态指标 * 稳态指标
*/ */
private String steadyIndicator; private String[] steadyIndicator;
/** /**
* 暂态指标 * 暂态指标
*/ */
private String transientIndicators; private String[] transientIndicators;
} }

View File

@@ -44,10 +44,10 @@ public class GeneralSurveyVO extends ProcessVO implements Serializable {
/** /**
* 稳态指标 * 稳态指标
*/ */
private String steadyIndicator; private String[] steadyIndicator;
/** /**
* 暂态指标 * 暂态指标
*/ */
private String transientIndicators; private String[] transientIndicators;
} }

View File

@@ -47,22 +47,22 @@ public class ProcessVO implements Serializable {
/** /**
* 电网侧原因 * 电网侧原因
*/ */
private String reportProcessContentYyfx; private String[] reportProcessContentYyfx;
/** /**
* 用户侧原因 * 用户侧原因
*/ */
private String userReportProcessContentYyfx; private String[] userReportProcessContentYyfx;
/** /**
* 电网侧受影响设备 * 电网侧受影响设备
*/ */
private String powerGridAffectDev; private String[] powerGridAffectDev;
/** /**
* 用户侧受影响设备 * 用户侧受影响设备
*/ */
private String userAffectDev; private String[] userAffectDev;
/** /**
* 事件描述 * 事件描述
@@ -82,12 +82,12 @@ public class ProcessVO implements Serializable {
/** /**
* 电网侧整改治理措施 * 电网侧整改治理措施
*/ */
private String reportProcessContentJhzg; private String[] reportProcessContentJhzg;
/** /**
* 用户侧整改治理措施 * 用户侧整改治理措施
*/ */
private String userReportProcessContentJhzg; private String[] userReportProcessContentJhzg;
/** /**
* 计划整改文件名称 * 计划整改文件名称
@@ -102,12 +102,12 @@ public class ProcessVO implements Serializable {
/** /**
* 电网侧实际采取措施 * 电网侧实际采取措施
*/ */
private String reportProcessContentSjcq; private String[] reportProcessContentSjcq;
/** /**
* 用户侧实际采取措施 * 用户侧实际采取措施
*/ */
private String userReportProcessContentSjcq; private String[] userReportProcessContentSjcq;
/** /**
* 实际采取措施报告文件名称 * 实际采取措施报告文件名称

View File

@@ -97,6 +97,11 @@
<version>1.5.1-RELEASE</version> <version>1.5.1-RELEASE</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@@ -8,6 +8,8 @@ import com.njcn.process.pojo.po.RStatElectricQualityProblemFlow;
import com.njcn.process.pojo.vo.IssuesVO; import com.njcn.process.pojo.vo.IssuesVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* <p> * <p>
* 电能质量问题流程表 Mapper 接口 * 电能质量问题流程表 Mapper 接口
@@ -18,5 +20,5 @@ import org.apache.ibatis.annotations.Param;
*/ */
public interface RStatElectricQualityProblemFlowMapper extends BaseMapper<RStatElectricQualityProblemFlow> { public interface RStatElectricQualityProblemFlowMapper extends BaseMapper<RStatElectricQualityProblemFlow> {
Page<IssuesVO> getIssues(IPage<IssuesVO> page, @Param("param") QueryIssuesParam param, @Param("dateBegin") String dateBegin, @Param("dateEnd") String dateEnd); List<IssuesVO> getIssues(@Param("param") QueryIssuesParam param, @Param("dateBegin") String dateBegin, @Param("dateEnd") String dateEnd);
} }

View File

@@ -3,8 +3,11 @@ package com.njcn.process.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.pinyin.PinyinUtil;
import com.alibaba.nacos.shaded.com.google.common.collect.Lists;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.constant.BizParamConstant; import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
@@ -25,6 +28,7 @@ import com.njcn.user.api.DeptFeignClient;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -68,10 +72,11 @@ public class IssuesServiceImpl implements IssuesService {
/** /**
* 新增电能质量问题流程表信息 * 新增电能质量问题流程表信息
*/ */
private LocalDateTime addIssues(IssuesParam issuesParam){ private LocalDateTime addIssues(IssuesParam issuesParam,String powerQualityProblemNo){
RStatElectricQualityProblemFlow issues = new RStatElectricQualityProblemFlow(); RStatElectricQualityProblemFlow issues = new RStatElectricQualityProblemFlow();
LocalDateTime local = LocalDateTimeUtil.now(); LocalDateTime local = LocalDateTimeUtil.now();
BeanUtil.copyProperties(issuesParam,issues); BeanUtil.copyProperties(issuesParam,issues);
issues.setPowerQualityProblemNo(powerQualityProblemNo);
issues.setDataDate(local); issues.setDataDate(local);
issues.setStartTime(null); issues.setStartTime(null);
issues.setUpdateTime(null); issues.setUpdateTime(null);
@@ -81,6 +86,33 @@ public class IssuesServiceImpl implements IssuesService {
return local; return local;
} }
/**
* 生成问题编号
*/
private String getPowerQualityProblemNo(IssuesParam issuesParam){
StringBuilder powerQualityProblemNo = new StringBuilder();
powerQualityProblemNo.append(PinyinUtil.getFirstLetter(issuesParam.getOrgName(),"").toUpperCase()).append("-");
if (DicDataEnum.ONLINE.getCode().equals(issuesParam.getProblemSources())){
powerQualityProblemNo.append("ZXJC");
}else if (DicDataEnum.GENERAL.getCode().equals(issuesParam.getProblemSources())){
powerQualityProblemNo.append("PCCB");
}else if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesParam.getProblemSources())){
powerQualityProblemNo.append("YHTS");
}else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesParam.getProblemSources())){
powerQualityProblemNo.append("YWYC");
}
String nowDate = DateUtil.format(new Date(), "yyyyMMdd");
String processDate = DateUtil.format(new Date(), "yyyy-MM-dd");
powerQualityProblemNo.append(nowDate);
LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>();
LocalDateTime local = LocalDateTimeUtil.parse(processDate + "T00:00:00");
LocalDateTime localEnd = LocalDateTimeUtil.parse(processDate + "T23:59:59");
issuesQuery.ge(RStatElectricQualityProblemFlow::getDataDate, local).le(RStatElectricQualityProblemFlow::getDataDate,localEnd);
Integer count = issuesMapper.selectCount(issuesQuery);
powerQualityProblemNo.append(StrUtil.padPre(String.valueOf(count + 1),5, '0'));
return powerQualityProblemNo.toString();
}
/** /**
* 填报在线监测超标问题 * 填报在线监测超标问题
*/ */
@@ -88,9 +120,11 @@ public class IssuesServiceImpl implements IssuesService {
public void addExcessiveIssues(ExcessiveParam excessiveParam) { public void addExcessiveIssues(ExcessiveParam excessiveParam) {
IssuesParam issuesParam = new IssuesParam(); IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(excessiveParam,issuesParam); BeanUtil.copyProperties(excessiveParam,issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam); String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpOnlineMonitorOverproofProblem excessive = new RMpOnlineMonitorOverproofProblem(); RMpOnlineMonitorOverproofProblem excessive = new RMpOnlineMonitorOverproofProblem();
BeanUtil.copyProperties(excessiveParam,excessive); BeanUtil.copyProperties(excessiveParam,excessive);
excessive.setPowerQualityProblemNo(powerQualityProblemNo);
excessive.setDataDate(localDateTime); excessive.setDataDate(localDateTime);
excessiveMapper.insert(excessive); excessiveMapper.insert(excessive);
} }
@@ -102,9 +136,12 @@ public class IssuesServiceImpl implements IssuesService {
public void addGeneralSurveyIssues(GeneralSurveyParam generalSurveyParam) { public void addGeneralSurveyIssues(GeneralSurveyParam generalSurveyParam) {
IssuesParam issuesParam = new IssuesParam(); IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(generalSurveyParam,issuesParam); BeanUtil.copyProperties(generalSurveyParam,issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam); String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpGeneralSurveyOverproofProblem generalSurvey = new RMpGeneralSurveyOverproofProblem(); RMpGeneralSurveyOverproofProblem generalSurvey = new RMpGeneralSurveyOverproofProblem();
BeanUtil.copyProperties(generalSurveyParam,generalSurvey); BeanUtil.copyProperties(generalSurveyParam,generalSurvey);
generalSurvey.setOverLimitTarget(ArrayUtil.toString(generalSurveyParam.getSteadyState())+ArrayUtil.toString(generalSurveyParam.getTransientIndicators()));
generalSurvey.setPowerQualityProblemNo(powerQualityProblemNo);
generalSurvey.setDataDate(localDateTime); generalSurvey.setDataDate(localDateTime);
generalSurveyMapper.insert(generalSurvey); generalSurveyMapper.insert(generalSurvey);
} }
@@ -116,9 +153,12 @@ public class IssuesServiceImpl implements IssuesService {
public void addComplaintIssues(ComplaintParam complaintParam) { public void addComplaintIssues(ComplaintParam complaintParam) {
IssuesParam issuesParam = new IssuesParam(); IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(complaintParam,issuesParam); BeanUtil.copyProperties(complaintParam,issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam); String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpUserComplaint complaint = new RMpUserComplaint(); RMpUserComplaint complaint = new RMpUserComplaint();
BeanUtil.copyProperties(complaintParam,complaint); BeanUtil.copyProperties(complaintParam,complaint);
complaint.setAbnormalTarget(ArrayUtil.toString(complaintParam.getSteadyState())+ArrayUtil.toString(complaintParam.getTransientIndicators()));
complaint.setPowerQualityProblemNo(powerQualityProblemNo);
complaint.setDataDate(localDateTime); complaint.setDataDate(localDateTime);
complaintMapper.insert(complaint); complaintMapper.insert(complaint);
} }
@@ -130,9 +170,12 @@ public class IssuesServiceImpl implements IssuesService {
public void addAbnormalIssues(AbnormalParam abnormalParam) { public void addAbnormalIssues(AbnormalParam abnormalParam) {
IssuesParam issuesParam = new IssuesParam(); IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(abnormalParam,issuesParam); BeanUtil.copyProperties(abnormalParam,issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam); String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpOperationMonitorAbnormal abnormal = new RMpOperationMonitorAbnormal(); RMpOperationMonitorAbnormal abnormal = new RMpOperationMonitorAbnormal();
BeanUtil.copyProperties(abnormalParam,abnormal); BeanUtil.copyProperties(abnormalParam,abnormal);
abnormal.setAbnormalTarget(ArrayUtil.toString(abnormalParam.getSteadyState())+ArrayUtil.toString(abnormalParam.getTransientIndicators()));
abnormal.setPowerQualityProblemNo(powerQualityProblemNo);
abnormal.setDataDate(localDateTime); abnormal.setDataDate(localDateTime);
abnormalMapper.insert(abnormal); abnormalMapper.insert(abnormal);
} }
@@ -142,7 +185,7 @@ public class IssuesServiceImpl implements IssuesService {
*/ */
@Override @Override
public Page<IssuesVO> getIssues(QueryIssuesParam param) { public Page<IssuesVO> getIssues(QueryIssuesParam param) {
IPage<IssuesVO> page = new Page<>(param.getPageNum(), param.getPageSize()); Page<IssuesVO> page = new Page<>(param.getPageNum(), param.getPageSize());
Date dateOut = DateUtil.parse(param.getDataDate()); Date dateOut = DateUtil.parse(param.getDataDate());
Date dateBegin = new Date(); Date dateBegin = new Date();
Date dateEnd = new Date(); Date dateEnd = new Date();
@@ -156,18 +199,20 @@ public class IssuesServiceImpl implements IssuesService {
dateBegin = DateUtil.beginOfMonth(dateOut); dateBegin = DateUtil.beginOfMonth(dateOut);
dateEnd = DateUtil.endOfMonth(dateOut); dateEnd = DateUtil.endOfMonth(dateOut);
} }
Page<IssuesVO> out = issuesMapper.getIssues(page,param,DateUtil.formatDateTime(dateBegin), DateUtil.formatDateTime(dateEnd)); List<IssuesVO> out = issuesMapper.getIssues(param,DateUtil.formatDateTime(dateBegin), DateUtil.formatDateTime(dateEnd));
out.getRecords().forEach(data -> data.setOrgName((deptFeignClient.getDeptById(data.getOrgNo()).getData().getName()))); if (!CollectionUtils.isEmpty(out)) {
/*问题来源*/ out.forEach(data -> data.setOrgName((deptFeignClient.getDeptById(data.getOrgNo()).getData().getName())));
List<DictData> problemSourcesDictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.PROBLEM_SOURCES.getCode()).getData(); /*问题来源*/
problemSourcesDictData.forEach(dict -> out.getRecords().stream().filter(data -> dict.getCode().equals(data.getProblemSources())).forEach(data -> data.setProblemSources(dict.getName()))); List<DictData> problemSourcesDictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.PROBLEM_SOURCES.getCode()).getData();
/*填报进度*/ problemSourcesDictData.forEach(dict -> out.stream().filter(data -> dict.getCode().equals(data.getProblemSources())).forEach(data -> data.setProblemSources(dict.getName())));
List<DictData> fillProgressDictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.FILL_PROGRESS.getCode()).getData(); page.setTotal(out.size());
fillProgressDictData.forEach(dict -> out.getRecords().stream().filter(data -> dict.getCode().equals(data.getReportProcess())).forEach(data -> data.setReportProcess(dict.getName()))); int pages = (int)Math.ceil(out.size()*1.0/param.getPageSize());
/*审核状态*/ page.setPages(pages);
List<DictData> auditStatusDictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.AUDIT_STATUS.getCode()).getData(); List<List<IssuesVO>> partition = Lists.partition(out, param.getPageSize());
auditStatusDictData.forEach(dict -> out.getRecords().stream().filter(data -> dict.getCode().equals(data.getReportProcessStatus())).forEach(data -> data.setReportProcessStatus(dict.getName()))); List<IssuesVO> issuesVOS = partition.get(param.getPageNum() - 1);
return out; page.setRecords(issuesVOS);
}
return page;
} }
/** /**
@@ -187,6 +232,34 @@ public class IssuesServiceImpl implements IssuesService {
flowQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo); flowQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo);
return flowDetailsMapper.selectOne(flowQuery); return flowDetailsMapper.selectOne(flowQuery);
} }
/**
* 处理填报信息
*/
private ProcessVO processFlowDetail(RMpElectricQualityProblemFlowDetails details){
ProcessVO process = new ProcessVO();
BeanUtil.copyProperties(details,process);
if (!StrUtil.isEmpty(details.getReportProcessContentYyfx())){
process.setReportProcessContentYyfx(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentYyfx(),"["),"\\]").split(","));
}
if (!StrUtil.isEmpty(details.getUserReportProcessContentYyfx())){
process.setUserReportProcessContentYyfx(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentYyfx(),"["),"\\]").split(","));
}
if (!StrUtil.isEmpty(details.getReportProcessContentJhzg())){
process.setReportProcessContentJhzg(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentJhzg(),"["),"\\]").split(","));
}
if (!StrUtil.isEmpty(details.getUserReportProcessContentJhzg())){
process.setUserReportProcessContentJhzg(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentJhzg(),"["),"\\]").split(","));
}
if (!StrUtil.isEmpty(details.getReportProcessContentSjcq())){
process.setReportProcessContentSjcq(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentSjcq(),"["),"\\]").split(","));
}
if (!StrUtil.isEmpty(details.getUserReportProcessContentSjcq())){
process.setUserReportProcessContentSjcq(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentSjcq(),"["),"\\]").split(","));
}
return process;
}
/** /**
* 查询在线监测超标问题详情 * 查询在线监测超标问题详情
*/ */
@@ -199,7 +272,8 @@ public class IssuesServiceImpl implements IssuesService {
excessiveQuery.eq(RMpOnlineMonitorOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo); excessiveQuery.eq(RMpOnlineMonitorOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
RMpOnlineMonitorOverproofProblem excessiveOut = excessiveMapper.selectOne(excessiveQuery); RMpOnlineMonitorOverproofProblem excessiveOut = excessiveMapper.selectOne(excessiveQuery);
BeanUtil.copyProperties(excessiveOut,detail); BeanUtil.copyProperties(excessiveOut,detail);
BeanUtil.copyProperties(flowDetailSelectOne(powerQualityProblemNo),detail); RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
return detail; return detail;
} }
@@ -215,7 +289,10 @@ public class IssuesServiceImpl implements IssuesService {
generalSurveyQuery.eq(RMpGeneralSurveyOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo); generalSurveyQuery.eq(RMpGeneralSurveyOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
RMpGeneralSurveyOverproofProblem generalSurveyOut = generalSurveyMapper.selectOne(generalSurveyQuery); RMpGeneralSurveyOverproofProblem generalSurveyOut = generalSurveyMapper.selectOne(generalSurveyQuery);
BeanUtil.copyProperties(generalSurveyOut,detail); BeanUtil.copyProperties(generalSurveyOut,detail);
BeanUtil.copyProperties(flowDetailSelectOne(powerQualityProblemNo),detail); detail.setSteadyIndicator(steadyIndicator(generalSurveyOut.getOverLimitTarget()));
detail.setTransientIndicators(transientIndicators(generalSurveyOut.getOverLimitTarget()));
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
return detail; return detail;
} }
@@ -231,7 +308,16 @@ public class IssuesServiceImpl implements IssuesService {
complaintQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,powerQualityProblemNo); complaintQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,powerQualityProblemNo);
RMpUserComplaint complaintOut = complaintMapper.selectOne(complaintQuery); RMpUserComplaint complaintOut = complaintMapper.selectOne(complaintQuery);
BeanUtil.copyProperties(complaintOut,detail); BeanUtil.copyProperties(complaintOut,detail);
BeanUtil.copyProperties(flowDetailSelectOne(powerQualityProblemNo),detail); detail.setSteadyIndicator(steadyIndicator(complaintOut.getAbnormalTarget()));
detail.setTransientIndicators(transientIndicators(complaintOut.getAbnormalTarget()));
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
if (!StrUtil.isEmpty(complaintOut.getPowerGridAffectDev())){
detail.setPowerGridAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(complaintOut.getPowerGridAffectDev(),"["),"\\]").split(","));
}
if (!StrUtil.isEmpty(complaintOut.getUserAffectDev())){
detail.setUserAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(complaintOut.getUserAffectDev(),"["),"\\]").split(","));
}
return detail; return detail;
} }
@@ -247,10 +333,33 @@ public class IssuesServiceImpl implements IssuesService {
abnormalQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,powerQualityProblemNo); abnormalQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,powerQualityProblemNo);
RMpOperationMonitorAbnormal abnormalOut = abnormalMapper.selectOne(abnormalQuery); RMpOperationMonitorAbnormal abnormalOut = abnormalMapper.selectOne(abnormalQuery);
BeanUtil.copyProperties(abnormalOut,detail); BeanUtil.copyProperties(abnormalOut,detail);
BeanUtil.copyProperties(flowDetailSelectOne(powerQualityProblemNo),detail); detail.setSteadyIndicator(steadyIndicator(abnormalOut.getAbnormalTarget()));
detail.setTransientIndicators(transientIndicators(abnormalOut.getAbnormalTarget()));
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
if (!StrUtil.isEmpty(abnormalOut.getPowerGridAffectDev())){
detail.setPowerGridAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(abnormalOut.getPowerGridAffectDev(),"["),"\\]").split(","));
}
if (!StrUtil.isEmpty(abnormalOut.getUserAffectDev())){
detail.setUserAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(abnormalOut.getUserAffectDev(),"["),"\\]").split(","));
}
return detail; return detail;
} }
/**
* 稳态指标处理
*/
private String[] steadyIndicator(String target){
return StrUtil.removePrefix(target.split("]\\[")[0],"\\[").split(",");
}
/**
* 暂态指标处理
*/
private String[] transientIndicators(String target){
return StrUtil.removeSuffix(target.split("]\\[")[1],"]").split(",");
}
/** /**
* 原因分析 * 原因分析
*/ */
@@ -260,12 +369,29 @@ public class IssuesServiceImpl implements IssuesService {
RMpElectricQualityProblemFlowDetails details = new RMpElectricQualityProblemFlowDetails(); RMpElectricQualityProblemFlowDetails details = new RMpElectricQualityProblemFlowDetails();
BeanUtil.copyProperties(processParam,details); BeanUtil.copyProperties(processParam,details);
details.setDataDateYyfx(local); details.setDataDateYyfx(local);
details.setReportProcessContentYyfx(ArrayUtil.toString(processParam.getReportProcessContentYyfx()));
details.setUserReportProcessContentYyfx(ArrayUtil.toString(processParam.getUserReportProcessContentYyfx()));
flowDetailsMapper.insert(details); flowDetailsMapper.insert(details);
LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo()); issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(issuesQuery); RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(issuesQuery);
issuesOut.setReportProcess(DicDataEnum.CAUSE_ANALYSIS.getCode()); issuesOut.setReportProcess(DicDataEnum.CAUSE_ANALYSIS.getCode());
issuesMapper.update(issuesOut,issuesQuery); issuesMapper.update(issuesOut,issuesQuery);
if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpUserComplaint> complaintQuery = new LambdaQueryWrapper<>();
complaintQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RMpUserComplaint complaintOut = complaintMapper.selectOne(complaintQuery);
complaintOut.setPowerGridAffectDev(ArrayUtil.toString(processParam.getPowerGridAffectDev()));
complaintOut.setUserAffectDev(ArrayUtil.toString(processParam.getUserAffectDev()));
complaintMapper.update(complaintOut,complaintQuery);
}else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpOperationMonitorAbnormal> abnormalQuery = new LambdaQueryWrapper<>();
abnormalQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RMpOperationMonitorAbnormal abnormalOut = abnormalMapper.selectOne(abnormalQuery);
abnormalOut.setPowerGridAffectDev(ArrayUtil.toString(processParam.getPowerGridAffectDev()));
abnormalOut.setUserAffectDev(ArrayUtil.toString(processParam.getUserAffectDev()));
abnormalMapper.update(abnormalOut,abnormalQuery);
}
} }
/** /**
@@ -283,14 +409,14 @@ public class IssuesServiceImpl implements IssuesService {
LocalDateTime local = LocalDateTimeUtil.now(); LocalDateTime local = LocalDateTimeUtil.now();
if (DicDataEnum.PLAN_MEASURES.getCode().equals(code)){ if (DicDataEnum.PLAN_MEASURES.getCode().equals(code)){
details.setDataDateJhzg(local); details.setDataDateJhzg(local);
details.setReportProcessContentJhzg(processParam.getReportProcessContentJhzg()); details.setReportProcessContentJhzg(ArrayUtil.toString(processParam.getReportProcessContentJhzg()));
details.setUserReportProcessContentJhzg(processParam.getUserReportProcessContentJhzg()); details.setUserReportProcessContentJhzg(ArrayUtil.toString(processParam.getUserReportProcessContentJhzg()));
details.setFileNameJhzg(processParam.getFileNameJhzg()); details.setFileNameJhzg(processParam.getFileNameJhzg());
details.setFilePathJhzg(processParam.getFilePathJhzg()); details.setFilePathJhzg(processParam.getFilePathJhzg());
}else if (DicDataEnum.ACTUAL_MEASURES.getCode().equals(code)){ }else if (DicDataEnum.ACTUAL_MEASURES.getCode().equals(code)){
details.setDataDateSjcq(local); details.setDataDateSjcq(local);
details.setReportProcessContentSjcq(processParam.getReportProcessContentSjcq()); details.setReportProcessContentSjcq(ArrayUtil.toString(processParam.getReportProcessContentSjcq()));
details.setUserReportProcessContentSjcq(processParam.getUserReportProcessContentSjcq()); details.setUserReportProcessContentSjcq(ArrayUtil.toString(processParam.getUserReportProcessContentSjcq()));
details.setFileNameSjcq(processParam.getFileNameSjcq()); details.setFileNameSjcq(processParam.getFileNameSjcq());
details.setFilePathSjcq(processParam.getFilePathSjcq()); details.setFilePathSjcq(processParam.getFilePathSjcq());
}else if (DicDataEnum.INSIGHTS.getCode().equals(code)){ }else if (DicDataEnum.INSIGHTS.getCode().equals(code)){