电能质量问题

This commit is contained in:
1771838663@qq.com
2022-11-18 11:01:34 +08:00
parent 0f428ccc87
commit 1124d4ffac
35 changed files with 1977 additions and 0 deletions

View File

@@ -0,0 +1,190 @@
package com.njcn.process.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.minio.bo.MinIoUploadResDTO;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.vo.*;
import com.njcn.process.service.IssuesService;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
/**
* 电能质量问题
* @author xiaoyao
* @version 1.0.0
* @createTime 2022/11/14 9:18
*/
@Slf4j
@Api(tags = "电能质量问题")
@RestController
@RequestMapping("/electricityQuality")
@RequiredArgsConstructor
public class ElectricityQualityIssuesController extends BaseController {
private final IssuesService issuesService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/addExcessiveIssues")
@ApiOperation("填报在线监测超标问题")
@ApiImplicitParam(name = "excessiveParam", value = "参数", required = true)
public HttpResult<String> addExcessiveIssues(@RequestBody @Validated ExcessiveParam excessiveParam){
String methodDescribe = getMethodDescribe("addExcessiveIssues");
issuesService.addExcessiveIssues(excessiveParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/addGeneralSurveyIssues")
@ApiOperation("填报普测超标问题")
@ApiImplicitParam(name = "generalSurveyParam", value = "参数", required = true)
public HttpResult<String> addGeneralSurveyIssues(@RequestBody @Validated GeneralSurveyParam generalSurveyParam){
String methodDescribe = getMethodDescribe("addGeneralSurveyIssues");
issuesService.addGeneralSurveyIssues(generalSurveyParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/addComplaintIssues")
@ApiOperation("填报用户投诉问题")
@ApiImplicitParam(name = "complaintParam", value = "参数", required = true)
public HttpResult<String> addComplaintIssues(@RequestBody @Validated ComplaintParam complaintParam){
String methodDescribe = getMethodDescribe("addComplaintIssues");
issuesService.addComplaintIssues(complaintParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/addAbnormalIssues")
@ApiOperation("填报运维监控异常问题")
@ApiImplicitParam(name = "abnormalParam", value = "参数", required = true)
public HttpResult<String> addAbnormalIssues(@RequestBody @Validated AbnormalParam abnormalParam){
String methodDescribe = getMethodDescribe("addAbnormalIssues");
issuesService.addAbnormalIssues(abnormalParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getIssues")
@ApiOperation("查询问题列表")
@ApiImplicitParam(name = "queryIssuesParam", value = "参数", required = true)
public HttpResult<IPage<IssuesVO>> getIssues(@RequestBody @Validated QueryIssuesParam queryIssuesParam){
String methodDescribe = getMethodDescribe("getIssues");
Page<IssuesVO> out = issuesService.getIssues(queryIssuesParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getExcessiveDetail")
@ApiOperation("查询在线监测超标问题详情")
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true)
public HttpResult<ExcessiveDetailVO> getExcessiveDetail(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo){
String methodDescribe = getMethodDescribe("getExcessiveDetail");
ExcessiveDetailVO out = issuesService.getExcessiveDetail(powerQualityProblemNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getGeneralSurveyDetail")
@ApiOperation("查询普测超标问题详情")
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true)
public HttpResult<GeneralSurveyVO> getGeneralSurveyDetail(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo){
String methodDescribe = getMethodDescribe("getGeneralSurveyDetail");
GeneralSurveyVO out = issuesService.getGeneralSurveyDetail(powerQualityProblemNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getComplaintDetail")
@ApiOperation("查询用户投诉问题详情")
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true)
public HttpResult<ComplaintVO> getComplaintDetail(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo){
String methodDescribe = getMethodDescribe("getComplaintDetail");
ComplaintVO out = issuesService.getComplaintDetail(powerQualityProblemNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getAbnormalDetail")
@ApiOperation("查询运维异常问题详情")
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true)
public HttpResult<AbnormalVO> getAbnormalDetail(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo){
String methodDescribe = getMethodDescribe("getAbnormalDetail");
AbnormalVO out = issuesService.getAbnormalDetail(powerQualityProblemNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/reasonAnalysis")
@ApiOperation("原因分析")
@ApiImplicitParam(name = "reasonAnalysisParam", value = "参数", required = true)
public HttpResult<String> reasonAnalysis(@RequestBody @Validated ProcessParam processParam){
String methodDescribe = getMethodDescribe("reasonAnalysis");
issuesService.reasonAnalysis(processParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE)
@PostMapping("/correctiveAction")
@ApiOperation("计划整改措施")
@ApiImplicitParam(name = "processParam", value = "参数", required = true)
public HttpResult<String> correctiveAction(@RequestBody @Validated ProcessParam processParam){
String methodDescribe = getMethodDescribe("correctiveAction");
issuesService.process(processParam, DicDataEnum.PLAN_MEASURES.getCode());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE)
@PostMapping("/takeAction")
@ApiOperation("实际采取措施")
@ApiImplicitParam(name = "processParam", value = "参数", required = true)
public HttpResult<String> takeAction(@RequestBody @Validated ProcessParam processParam){
String methodDescribe = getMethodDescribe("takeAction");
issuesService.process(processParam, DicDataEnum.ACTUAL_MEASURES.getCode());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE)
@PostMapping("/effectAnalysis")
@ApiOperation("成效分析")
@ApiImplicitParam(name = "processParam", value = "参数", required = true)
public HttpResult<String> effectAnalysis(@RequestBody @Validated ProcessParam processParam){
String methodDescribe = getMethodDescribe("effectAnalysis");
issuesService.process(processParam, DicDataEnum.INSIGHTS.getCode());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE)
@PostMapping("/archive")
@ApiOperation("问题归档")
@ApiImplicitParam(name = "powerQualityProblemNo", value = "电能质量问题编号", required = true)
public HttpResult<String> archive(@RequestParam("powerQualityProblemNo") String powerQualityProblemNo){
String methodDescribe = getMethodDescribe("archive");
issuesService.archive(powerQualityProblemNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPLOAD)
@PostMapping("/uploadFile")
@ApiOperation("上传文件")
@ApiImplicitParam(name = "issuesFile", value = "填报进度文件", required = true)
public HttpResult<MinIoUploadResDTO> uploadFile(@RequestPart("issuesFile") MultipartFile issuesFile){
String methodDescribe = getMethodDescribe("uploadFile");
MinIoUploadResDTO out = issuesService.uploadFile(issuesFile);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
}

View File

@@ -0,0 +1,16 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.RMpElectricQualityProblemFlowDetails;
/**
* <p>
* 电能质量问题流程详情表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RMpElectricQualityProblemFlowDetailsMapper extends BaseMapper<RMpElectricQualityProblemFlowDetails> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.RMpGeneralSurveyOverproofProblem;
/**
* <p>
* 普测超标问题详情表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RMpGeneralSurveyOverproofProblemMapper extends BaseMapper<RMpGeneralSurveyOverproofProblem> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.RMpOnlineMonitorOverproofProblem;
/**
* <p>
* 在线监测超标问题详情表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RMpOnlineMonitorOverproofProblemMapper extends BaseMapper<RMpOnlineMonitorOverproofProblem> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.RMpOperationMonitorAbnormal;
/**
* <p>
* 运维监控异常详情表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RMpOperationMonitorAbnormalMapper extends BaseMapper<RMpOperationMonitorAbnormal> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.RMpUserComplaint;
/**
* <p>
* 用户投诉详情表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RMpUserComplaintMapper extends BaseMapper<RMpUserComplaint> {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.process.pojo.param.QueryIssuesParam;
import com.njcn.process.pojo.po.RStatElectricQualityProblemFlow;
import com.njcn.process.pojo.vo.IssuesVO;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 电能质量问题流程表 Mapper 接口
* </p>
*
* @author xiaoyao
* @since 2022-11-14
*/
public interface RStatElectricQualityProblemFlowMapper extends BaseMapper<RStatElectricQualityProblemFlow> {
Page<IssuesVO> getIssues(IPage<IssuesVO> page, @Param("param") QueryIssuesParam param, @Param("dateBegin") String dateBegin, @Param("dateEnd") String dateEnd);
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RMpElectricQualityProblemFlowDetailsMapper">
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RMpGeneralSurveyOverproofProblemMapper">
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RMpOnlineMonitorOverproofProblemMapper">
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RMpOperationMonitorAbnormalMapper">
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RMpUserComplaintMapper">
</mapper>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RStatElectricQualityProblemFlowMapper">
<select id="getIssues" resultType="com.njcn.process.pojo.vo.IssuesVO">
SELECT
*
FROM
r_stat_electric_quality_problem_flow
WHERE
data_date between #{date.dateBegin} AND #{date.dateEnd}
<if test="param.orgNo !=null and param.orgNo !=''">
AND org_no = #{param.orgNo}
</if>
<if test="param.problemSources !=null and param.problemSources !=''">
AND problem_sources = #{param.problemSources}
</if>
<if test="param.reportProcess !=null and param.reportProcess !=''">
AND report_process = #{param.reportProcess}
</if>
<if test="param.reportProcessStatus !=null and param.reportProcessStatus !=''">
AND report_process_status = #{param.reportProcessStatus}
</if>
<if test="param.problemName !=null and param.problemName !=''">
AND problem_name like CONCAT(CONCAT('%', #{param.problemName}), '%')
</if>
</select>
</mapper>

View File

@@ -0,0 +1,81 @@
package com.njcn.process.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.vo.*;
import org.springframework.web.multipart.MultipartFile;
/**
* 电能质量问题接口类
* @author xiaoyao
* @version 1.0.0
* @createTime 2022/11/14 10:59
*/
public interface IssuesService {
/**
* 填报在线监测超标问题
*/
void addExcessiveIssues(ExcessiveParam excessiveParam);
/**
* 填报普测超标问题
*/
void addGeneralSurveyIssues(GeneralSurveyParam generalSurveyParam);
/**
* 填报用户投诉问题
*/
void addComplaintIssues(ComplaintParam complaintParam);
/**
* 填报运维监控异常问题
*/
void addAbnormalIssues(AbnormalParam abnormalParam);
/**
* 查询问题列表
*/
Page<IssuesVO> getIssues(QueryIssuesParam queryIssuesParam);
/**
* 查询在线监测超标问题详情
*/
ExcessiveDetailVO getExcessiveDetail(String powerQualityProblemNo);
/**
* 查询普测超标问题详情
*/
GeneralSurveyVO getGeneralSurveyDetail(String powerQualityProblemNo);
/**
* 查询用户投诉问题详情
*/
ComplaintVO getComplaintDetail(String powerQualityProblemNo);
/**
* 查询运维异常问题详情
*/
AbnormalVO getAbnormalDetail(String powerQualityProblemNo);
/**
* 原因分析
*/
void reasonAnalysis(ProcessParam processParam);
/**
* 计划整改措施、实际采取措施、成效分析
*/
void process(ProcessParam processParam, String code);
/**
* 问题归档
*/
void archive(String powerQualityProblemNo);
/**
* 上传文件
*/
MinIoUploadResDTO uploadFile(MultipartFile issuesFile);
}

View File

@@ -0,0 +1,312 @@
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 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;
import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.minio.config.MinIoProperties;
import com.njcn.minio.utils.MinIoUtils;
import com.njcn.process.enums.ProcessResponseEnum;
import com.njcn.process.mapper.*;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.po.*;
import com.njcn.process.pojo.vo.*;
import com.njcn.process.service.IssuesService;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.user.api.DeptFeignClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Date;
/**
* 电能质量问题实现类
* @author xiaoyao
* @version 1.0.0
* @createTime 2022/11/14 11:03
*/
@Slf4j
@Service
@AllArgsConstructor
public class IssuesServiceImpl implements IssuesService {
private final DeptFeignClient deptFeignClient;
private final RStatElectricQualityProblemFlowMapper issuesMapper;
private final RMpOnlineMonitorOverproofProblemMapper excessiveMapper;
private final RMpGeneralSurveyOverproofProblemMapper generalSurveyMapper;
private final RMpUserComplaintMapper complaintMapper;
private final RMpOperationMonitorAbnormalMapper abnormalMapper;
private final RMpElectricQualityProblemFlowDetailsMapper flowDetailsMapper;
@Resource
private MinIoUtils minIoUtils;
@Resource
private MinIoProperties minIoProperties;
/**
* 新增电能质量问题流程表信息
*/
private LocalDateTime addIssues(IssuesParam issuesParam){
RStatElectricQualityProblemFlow issues = new RStatElectricQualityProblemFlow();
LocalDateTime local = LocalDateTimeUtil.now();
BeanUtil.copyProperties(issuesParam,issues);
issues.setDataDate(local);
issues.setReportProcess(DicDataEnum.NOT_REPORTED.getCode());
issues.setReportProcessStatus(DicDataEnum.AUDITT.getCode());
issuesMapper.insert(issues);
return local;
}
/**
* 填报在线监测超标问题
*/
@Override
public void addExcessiveIssues(ExcessiveParam excessiveParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(excessiveParam,issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam);
RMpOnlineMonitorOverproofProblem excessive = new RMpOnlineMonitorOverproofProblem();
BeanUtil.copyProperties(excessiveParam,excessive);
excessive.setDataDate(localDateTime);
excessiveMapper.insert(excessive);
}
/**
* 填报普测超标问题
*/
@Override
public void addGeneralSurveyIssues(GeneralSurveyParam generalSurveyParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(generalSurveyParam,issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam);
RMpGeneralSurveyOverproofProblem generalSurvey = new RMpGeneralSurveyOverproofProblem();
BeanUtil.copyProperties(generalSurveyParam,generalSurvey);
generalSurvey.setDataDate(localDateTime);
generalSurveyMapper.insert(generalSurvey);
}
/**
* 填报用户投诉问题
*/
@Override
public void addComplaintIssues(ComplaintParam complaintParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(complaintParam,issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam);
RMpUserComplaint complaint = new RMpUserComplaint();
BeanUtil.copyProperties(complaintParam,complaint);
complaint.setDataDate(localDateTime);
complaintMapper.insert(complaint);
}
/**
* 填报运维监控异常问题
*/
@Override
public void addAbnormalIssues(AbnormalParam abnormalParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(abnormalParam,issuesParam);
LocalDateTime localDateTime = addIssues(issuesParam);
RMpOperationMonitorAbnormal abnormal = new RMpOperationMonitorAbnormal();
BeanUtil.copyProperties(abnormalParam,abnormal);
abnormal.setDataDate(localDateTime);
abnormalMapper.insert(abnormal);
}
/**
* 查询问题列表
*/
@Override
public Page<IssuesVO> getIssues(QueryIssuesParam param) {
IPage<IssuesVO> page = new Page<>(param.getPageNum(), param.getPageSize());
Date dateOut = DateUtil.parse(param.getDataDate());
Date dateBegin = new Date();
Date dateEnd = new Date();
if (Integer.valueOf(BizParamConstant.STAT_BIZ_YEAR).equals(param.getDataType())){
dateBegin = DateUtil.beginOfYear(dateOut);
dateEnd = DateUtil.endOfYear(dateOut);
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_QUARTER).equals(param.getDataType())){
dateBegin = DateUtil.beginOfQuarter(dateOut);
dateEnd = DateUtil.endOfQuarter(dateOut);
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH).equals(param.getDataType())){
dateBegin = DateUtil.beginOfMonth(dateOut);
dateEnd = DateUtil.endOfMonth(dateOut);
}
Page<IssuesVO> out = issuesMapper.getIssues(page,param,DateUtil.formatDateTime(dateBegin), DateUtil.formatDateTime(dateEnd));
out.getRecords().forEach(data -> data.setOrgName((deptFeignClient.getDeptById(data.getOrgNo()).getData().getName())));
return out;
}
/**
* 问题基本信息查询
*/
private RStatElectricQualityProblemFlow issuesSelectOne(String powerQualityProblemNo){
LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,powerQualityProblemNo);
return issuesMapper.selectOne(issuesQuery);
}
/**
* 填报流程详情查询
*/
private RMpElectricQualityProblemFlowDetails flowDetailSelectOne(String powerQualityProblemNo){
LambdaQueryWrapper<RMpElectricQualityProblemFlowDetails> flowQuery = new LambdaQueryWrapper<>();
flowQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo);
return flowDetailsMapper.selectOne(flowQuery);
}
/**
* 查询在线监测超标问题详情
*/
@Override
public ExcessiveDetailVO getExcessiveDetail(String powerQualityProblemNo) {
ExcessiveDetailVO detail = new ExcessiveDetailVO();
BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper<RMpOnlineMonitorOverproofProblem> excessiveQuery = new LambdaQueryWrapper<>();
excessiveQuery.eq(RMpOnlineMonitorOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
RMpOnlineMonitorOverproofProblem excessiveOut = excessiveMapper.selectOne(excessiveQuery);
BeanUtil.copyProperties(excessiveOut,detail);
BeanUtil.copyProperties(flowDetailSelectOne(powerQualityProblemNo),detail);
return detail;
}
/**
* 查询用户投诉问题详情
*/
@Override
public GeneralSurveyVO getGeneralSurveyDetail(String powerQualityProblemNo) {
GeneralSurveyVO detail = new GeneralSurveyVO();
BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper<RMpGeneralSurveyOverproofProblem> generalSurveyQuery = new LambdaQueryWrapper<>();
generalSurveyQuery.eq(RMpGeneralSurveyOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
RMpGeneralSurveyOverproofProblem generalSurveyOut = generalSurveyMapper.selectOne(generalSurveyQuery);
BeanUtil.copyProperties(generalSurveyOut,detail);
BeanUtil.copyProperties(flowDetailSelectOne(powerQualityProblemNo),detail);
return detail;
}
/**
* 查询用户投诉问题详情
*/
@Override
public ComplaintVO getComplaintDetail(String powerQualityProblemNo) {
ComplaintVO detail = new ComplaintVO();
BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper<RMpUserComplaint> complaintQuery = new LambdaQueryWrapper<>();
complaintQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,powerQualityProblemNo);
RMpUserComplaint complaintOut = complaintMapper.selectOne(complaintQuery);
BeanUtil.copyProperties(complaintOut,detail);
BeanUtil.copyProperties(flowDetailSelectOne(powerQualityProblemNo),detail);
return detail;
}
/**
* 查询运维异常问题详情
*/
@Override
public AbnormalVO getAbnormalDetail(String powerQualityProblemNo) {
AbnormalVO detail = new AbnormalVO();
BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper<RMpOperationMonitorAbnormal> abnormalQuery = new LambdaQueryWrapper<>();
abnormalQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,powerQualityProblemNo);
RMpOperationMonitorAbnormal abnormalOut = abnormalMapper.selectOne(abnormalQuery);
BeanUtil.copyProperties(abnormalOut,detail);
BeanUtil.copyProperties(flowDetailSelectOne(powerQualityProblemNo),detail);
return detail;
}
/**
* 原因分析
*/
@Override
public void reasonAnalysis(ProcessParam processParam) {
LocalDateTime local = LocalDateTimeUtil.now();
RMpElectricQualityProblemFlowDetails details = new RMpElectricQualityProblemFlowDetails();
BeanUtil.copyProperties(processParam,details);
details.setDataDateYyfx(local);
flowDetailsMapper.insert(details);
LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(issuesQuery);
issuesOut.setReportProcess(DicDataEnum.CAUSE_ANALYSIS.getCode());
issuesMapper.update(issuesOut,issuesQuery);
}
/**
* 计划整改措施、实际采取措施、成效分析
*/
@Override
public void process(ProcessParam processParam, String code) {
LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(issuesQuery);
if (DicDataEnum.SUCCESS.getCode().equals(issuesOut.getReportProcessStatus())){
LambdaQueryWrapper<RMpElectricQualityProblemFlowDetails> query = new LambdaQueryWrapper<>();
query.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
RMpElectricQualityProblemFlowDetails details = flowDetailsMapper.selectOne(query);
BeanUtil.copyProperties(processParam,details);
LocalDateTime local = LocalDateTimeUtil.now();
if (DicDataEnum.PLAN_MEASURES.getCode().equals(code)){
details.setDataDateJhzg(local);
}else if (DicDataEnum.ACTUAL_MEASURES.getCode().equals(code)){
details.setDataDateSjcq(local);
}else if (DicDataEnum.INSIGHTS.getCode().equals(code)){
details.setDataDateZlxg(local);
}
flowDetailsMapper.update(details, query);
issuesOut.setReportProcess(DicDataEnum.CAUSE_ANALYSIS.getCode());
issuesMapper.update(issuesOut,issuesQuery);
}else {
throw new BusinessException(ProcessResponseEnum.PROCESS_ERROR);
}
}
/**
* 问题归档
*/
@Override
public void archive(String powerQualityProblemNo) {
LambdaQueryWrapper<RStatElectricQualityProblemFlow> query = new LambdaQueryWrapper<>();
query.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,powerQualityProblemNo);
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(query);
if (DicDataEnum.INSIGHTS.getCode().equals(issuesOut.getReportProcess())
&& DicDataEnum.SUCCESS.getCode().equals(issuesOut.getReportProcessStatus())){
issuesOut.setReportProcess(DicDataEnum.ARCHIVED.getCode());
issuesMapper.update(issuesOut,query);
}else {
throw new BusinessException(ProcessResponseEnum.ARCHIVE_ERROR);
}
}
/**
* 上传文件
*/
@Override
public MinIoUploadResDTO uploadFile(MultipartFile issuesFile) {
try {
return minIoUtils.upload(issuesFile, minIoProperties.getBucket(), "electricityQuality/");
} catch (Exception e) {
throw new BusinessException(ProcessResponseEnum.UPLOAD_FILE_ERROR);
}
}
}