diff --git a/process-boot/src/main/java/com/njcn/process/mapper/RStatElectricQualityProblemFlowMapper.java b/process-boot/src/main/java/com/njcn/process/mapper/RStatElectricQualityProblemFlowMapper.java
index 7f94c7891..413daba31 100644
--- a/process-boot/src/main/java/com/njcn/process/mapper/RStatElectricQualityProblemFlowMapper.java
+++ b/process-boot/src/main/java/com/njcn/process/mapper/RStatElectricQualityProblemFlowMapper.java
@@ -8,6 +8,8 @@ import com.njcn.process.pojo.po.RStatElectricQualityProblemFlow;
import com.njcn.process.pojo.vo.IssuesVO;
import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
/**
*
* 电能质量问题流程表 Mapper 接口
@@ -18,5 +20,5 @@ import org.apache.ibatis.annotations.Param;
*/
public interface RStatElectricQualityProblemFlowMapper extends BaseMapper {
- Page getIssues(IPage page, @Param("param") QueryIssuesParam param, @Param("dateBegin") String dateBegin, @Param("dateEnd") String dateEnd);
+ List getIssues(@Param("param") QueryIssuesParam param, @Param("dateBegin") String dateBegin, @Param("dateEnd") String dateEnd);
}
diff --git a/process-boot/src/main/java/com/njcn/process/service/impl/IssuesServiceImpl.java b/process-boot/src/main/java/com/njcn/process/service/impl/IssuesServiceImpl.java
index 572079412..341da8564 100644
--- a/process-boot/src/main/java/com/njcn/process/service/impl/IssuesServiceImpl.java
+++ b/process-boot/src/main/java/com/njcn/process/service/impl/IssuesServiceImpl.java
@@ -3,8 +3,11 @@ package com.njcn.process.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
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.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.exception.BusinessException;
@@ -25,6 +28,7 @@ import com.njcn.user.api.DeptFeignClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
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();
LocalDateTime local = LocalDateTimeUtil.now();
BeanUtil.copyProperties(issuesParam,issues);
+ issues.setPowerQualityProblemNo(powerQualityProblemNo);
issues.setDataDate(local);
issues.setStartTime(null);
issues.setUpdateTime(null);
@@ -81,6 +86,33 @@ public class IssuesServiceImpl implements IssuesService {
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 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) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(excessiveParam,issuesParam);
- LocalDateTime localDateTime = addIssues(issuesParam);
+ String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
+ LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpOnlineMonitorOverproofProblem excessive = new RMpOnlineMonitorOverproofProblem();
BeanUtil.copyProperties(excessiveParam,excessive);
+ excessive.setPowerQualityProblemNo(powerQualityProblemNo);
excessive.setDataDate(localDateTime);
excessiveMapper.insert(excessive);
}
@@ -102,9 +136,12 @@ public class IssuesServiceImpl implements IssuesService {
public void addGeneralSurveyIssues(GeneralSurveyParam generalSurveyParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(generalSurveyParam,issuesParam);
- LocalDateTime localDateTime = addIssues(issuesParam);
+ String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
+ LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpGeneralSurveyOverproofProblem generalSurvey = new RMpGeneralSurveyOverproofProblem();
BeanUtil.copyProperties(generalSurveyParam,generalSurvey);
+ generalSurvey.setOverLimitTarget(ArrayUtil.toString(generalSurveyParam.getSteadyState())+ArrayUtil.toString(generalSurveyParam.getTransientIndicators()));
+ generalSurvey.setPowerQualityProblemNo(powerQualityProblemNo);
generalSurvey.setDataDate(localDateTime);
generalSurveyMapper.insert(generalSurvey);
}
@@ -116,9 +153,12 @@ public class IssuesServiceImpl implements IssuesService {
public void addComplaintIssues(ComplaintParam complaintParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(complaintParam,issuesParam);
- LocalDateTime localDateTime = addIssues(issuesParam);
+ String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
+ LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpUserComplaint complaint = new RMpUserComplaint();
BeanUtil.copyProperties(complaintParam,complaint);
+ complaint.setAbnormalTarget(ArrayUtil.toString(complaintParam.getSteadyState())+ArrayUtil.toString(complaintParam.getTransientIndicators()));
+ complaint.setPowerQualityProblemNo(powerQualityProblemNo);
complaint.setDataDate(localDateTime);
complaintMapper.insert(complaint);
}
@@ -130,9 +170,12 @@ public class IssuesServiceImpl implements IssuesService {
public void addAbnormalIssues(AbnormalParam abnormalParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(abnormalParam,issuesParam);
- LocalDateTime localDateTime = addIssues(issuesParam);
+ String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
+ LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
RMpOperationMonitorAbnormal abnormal = new RMpOperationMonitorAbnormal();
BeanUtil.copyProperties(abnormalParam,abnormal);
+ abnormal.setAbnormalTarget(ArrayUtil.toString(abnormalParam.getSteadyState())+ArrayUtil.toString(abnormalParam.getTransientIndicators()));
+ abnormal.setPowerQualityProblemNo(powerQualityProblemNo);
abnormal.setDataDate(localDateTime);
abnormalMapper.insert(abnormal);
}
@@ -142,7 +185,7 @@ public class IssuesServiceImpl implements IssuesService {
*/
@Override
public Page getIssues(QueryIssuesParam param) {
- IPage page = new Page<>(param.getPageNum(), param.getPageSize());
+ Page page = new Page<>(param.getPageNum(), param.getPageSize());
Date dateOut = DateUtil.parse(param.getDataDate());
Date dateBegin = new Date();
Date dateEnd = new Date();
@@ -156,18 +199,20 @@ public class IssuesServiceImpl implements IssuesService {
dateBegin = DateUtil.beginOfMonth(dateOut);
dateEnd = DateUtil.endOfMonth(dateOut);
}
- Page out = issuesMapper.getIssues(page,param,DateUtil.formatDateTime(dateBegin), DateUtil.formatDateTime(dateEnd));
- out.getRecords().forEach(data -> data.setOrgName((deptFeignClient.getDeptById(data.getOrgNo()).getData().getName())));
- /*问题来源*/
- List 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 fillProgressDictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.FILL_PROGRESS.getCode()).getData();
- fillProgressDictData.forEach(dict -> out.getRecords().stream().filter(data -> dict.getCode().equals(data.getReportProcess())).forEach(data -> data.setReportProcess(dict.getName())));
- /*审核状态*/
- List auditStatusDictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.AUDIT_STATUS.getCode()).getData();
- auditStatusDictData.forEach(dict -> out.getRecords().stream().filter(data -> dict.getCode().equals(data.getReportProcessStatus())).forEach(data -> data.setReportProcessStatus(dict.getName())));
- return out;
+ List out = issuesMapper.getIssues(param,DateUtil.formatDateTime(dateBegin), DateUtil.formatDateTime(dateEnd));
+ if (!CollectionUtils.isEmpty(out)) {
+ out.forEach(data -> data.setOrgName((deptFeignClient.getDeptById(data.getOrgNo()).getData().getName())));
+ /*问题来源*/
+ List 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())));
+ page.setTotal(out.size());
+ int pages = (int)Math.ceil(out.size()*1.0/param.getPageSize());
+ page.setPages(pages);
+ List> partition = Lists.partition(out, param.getPageSize());
+ List issuesVOS = partition.get(param.getPageNum() - 1);
+ page.setRecords(issuesVOS);
+ }
+ return page;
}
/**
@@ -187,6 +232,34 @@ public class IssuesServiceImpl implements IssuesService {
flowQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo);
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);
RMpOnlineMonitorOverproofProblem excessiveOut = excessiveMapper.selectOne(excessiveQuery);
BeanUtil.copyProperties(excessiveOut,detail);
- BeanUtil.copyProperties(flowDetailSelectOne(powerQualityProblemNo),detail);
+ RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
+ BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
return detail;
}
@@ -215,7 +289,10 @@ public class IssuesServiceImpl implements IssuesService {
generalSurveyQuery.eq(RMpGeneralSurveyOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
RMpGeneralSurveyOverproofProblem generalSurveyOut = generalSurveyMapper.selectOne(generalSurveyQuery);
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;
}
@@ -231,7 +308,16 @@ public class IssuesServiceImpl implements IssuesService {
complaintQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,powerQualityProblemNo);
RMpUserComplaint complaintOut = complaintMapper.selectOne(complaintQuery);
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;
}
@@ -247,10 +333,33 @@ public class IssuesServiceImpl implements IssuesService {
abnormalQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,powerQualityProblemNo);
RMpOperationMonitorAbnormal abnormalOut = abnormalMapper.selectOne(abnormalQuery);
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;
}
+ /**
+ * 稳态指标处理
+ */
+ 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();
BeanUtil.copyProperties(processParam,details);
details.setDataDateYyfx(local);
+ details.setReportProcessContentYyfx(ArrayUtil.toString(processParam.getReportProcessContentYyfx()));
+ details.setUserReportProcessContentYyfx(ArrayUtil.toString(processParam.getUserReportProcessContentYyfx()));
flowDetailsMapper.insert(details);
LambdaQueryWrapper issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(issuesQuery);
issuesOut.setReportProcess(DicDataEnum.CAUSE_ANALYSIS.getCode());
issuesMapper.update(issuesOut,issuesQuery);
+ if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesOut.getProblemSources())){
+ LambdaQueryWrapper 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 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();
if (DicDataEnum.PLAN_MEASURES.getCode().equals(code)){
details.setDataDateJhzg(local);
- details.setReportProcessContentJhzg(processParam.getReportProcessContentJhzg());
- details.setUserReportProcessContentJhzg(processParam.getUserReportProcessContentJhzg());
+ details.setReportProcessContentJhzg(ArrayUtil.toString(processParam.getReportProcessContentJhzg()));
+ details.setUserReportProcessContentJhzg(ArrayUtil.toString(processParam.getUserReportProcessContentJhzg()));
details.setFileNameJhzg(processParam.getFileNameJhzg());
details.setFilePathJhzg(processParam.getFilePathJhzg());
}else if (DicDataEnum.ACTUAL_MEASURES.getCode().equals(code)){
details.setDataDateSjcq(local);
- details.setReportProcessContentSjcq(processParam.getReportProcessContentSjcq());
- details.setUserReportProcessContentSjcq(processParam.getUserReportProcessContentSjcq());
+ details.setReportProcessContentSjcq(ArrayUtil.toString(processParam.getReportProcessContentSjcq()));
+ details.setUserReportProcessContentSjcq(ArrayUtil.toString(processParam.getUserReportProcessContentSjcq()));
details.setFileNameSjcq(processParam.getFileNameSjcq());
details.setFilePathSjcq(processParam.getFilePathSjcq());
}else if (DicDataEnum.INSIGHTS.getCode().equals(code)){