预处理模块:工单问题生成,主网有效监测时长计算,

过程监督模块:工单模块功能,其他模块的审核
This commit is contained in:
huangzj
2023-02-27 11:24:58 +08:00
parent 5915ed87ac
commit 338b659d94
58 changed files with 2932 additions and 57 deletions

View File

@@ -0,0 +1,25 @@
package com.njcn.process.api;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.prepare.harmonic.pojo.dto.OverLimitFlagDTO;
import com.njcn.process.api.fallback.RStatWorkOrderFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/15 14:13【需求编号】
*
* @author clam
* @version V1.0.0
*/
@FeignClient(value = ServerInfo.PROCESS,path = "/rStatWorkOrder",fallbackFactory = RStatWorkOrderFallbackFactory.class)
public interface RStatWorkOrderFeignClient {
@PostMapping("/createProblem")
HttpResult<Boolean> createProblem(@RequestBody List<OverLimitFlagDTO> overLimitFlagDTOList);
}

View File

@@ -0,0 +1,45 @@
package com.njcn.process.api.fallback;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.prepare.harmonic.pojo.dto.OverLimitFlagDTO;
import com.njcn.process.api.RStatWorkOrderFeignClient;
import com.njcn.process.utils.ProcessEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/15 14:15【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Slf4j
@Component
public class RStatWorkOrderFallbackFactory implements FallbackFactory<RStatWorkOrderFeignClient> {
@Override
public RStatWorkOrderFeignClient create(Throwable throwable) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (throwable.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) throwable.getCause();
exceptionEnum = ProcessEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new RStatWorkOrderFeignClient() {
@Override
public HttpResult<Boolean> createProblem(List<OverLimitFlagDTO> overLimitFlagDTOList) {
log.error("{}异常,降级处理,异常为:{}", "问题单插入异常", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,35 @@
package com.njcn.process.pojo.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
@ApiModel
public class ElectricityQualityCheckParam {
@ApiModelProperty(name = "id",value = "电能质量问题编号",required = true)
@NotBlank(message = "电能质量问题编号不能为空")
private String powerQualityProblemNo;
@ApiModelProperty(value="审核是否通过(0:否 1:是)")
@NotBlank(message = "审核标志不能为空")
private String checkResult;
@ApiModelProperty(value="审核人")
@NotBlank(message = "审核人不能为空")
private String checkPerson;
@ApiModelProperty(value="填报进度")
@NotBlank(message = "填报进度不能为空")
private String reportProcess;
@ApiModelProperty(value="审核意见")
@NotBlank(message = "审核意见不能为空")
private String checkComment;
}

View File

@@ -0,0 +1,32 @@
package com.njcn.process.pojo.param;
import com.njcn.web.constant.ValidMessage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
@ApiModel
public class LoadTypeUserCheckParam {
@ApiModelProperty(name = "id",required = true)
@NotBlank(message = ValidMessage.ID_NOT_BLANK)
private String id;
@ApiModelProperty(value="审核是否通过(0:否 1:是)")
@NotBlank(message = "审核标志不能为空")
private String checkResult;
@ApiModelProperty(value="审核人")
@NotBlank(message = "审核人不能为空")
private String checkPerson;
@ApiModelProperty(value="审核意见")
@NotBlank(message = "审核意见不能为空")
private String checkComment;
}

View File

@@ -0,0 +1,39 @@
package com.njcn.process.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 15:20【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
public class RGeneralSurveyPlanChcekParm {
@ApiModelProperty(value="普测计划编号")
@NotBlank(message = "普测计划编号不能为空")
private String planNo;
@ApiModelProperty(value="审核是否通过(0:否 1:是)")
@NotBlank(message = "审核标志不能为空")
private String checkResult;
@ApiModelProperty(value="审核人")
@NotBlank(message = "审核人不能为空")
private String checkPerson;
@ApiModelProperty(value="审核意见")
@NotBlank(message = "审核意见不能为空")
private String checkComment;
}

View File

@@ -0,0 +1,51 @@
package com.njcn.process.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 15:20【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
public class RStatProblemAndWorkOrderParam {
@NotNull(message="当前页不能为空!")
@Min(value = 1, message = "当前页不能为0")
@ApiModelProperty(value = "当前页",name = "currentPage",dataType ="Integer",required = true)
private Integer currentPage;
/**显示条数*/
@NotNull(message="显示条数不能为空!")
@ApiModelProperty(value = "显示条数",name = "pageSize",dataType ="Integer",required = true)
private Integer pageSize;
@ApiModelProperty(value="问题类型")
private String problemType;
@ApiModelProperty(value="审核状态")
private String checkStatus;
@ApiModelProperty(value="台区名称")
private String distributionName;
@ApiModelProperty(value="问题发生时间")
private String occurTime;
@ApiModelProperty(value="工单状态")
private String workOrderStatus;
@ApiModelProperty(value="问题编号")
private String problemNo;
}

View File

@@ -87,6 +87,16 @@ public class RGeneralSurveyPlanPO {
*/
@TableField(value = "description")
private String description;
/**
* 审核人
*/
@TableField(value="check_person")
private String checkPerson;
/**
* 审核意见
*/
@TableField(value = "check_comment")
private String checkComment;
/**
* 文件是否上传(0:否 1:是)

View File

@@ -64,6 +64,15 @@ public class RLoadTypeUserManage implements Serializable {
* 入网报告状态字典ID
*/
private String iStatus;
/**
*入网报告审核人
*/
private String iCheckPerson;
/**
*入网报告审核意见
*/
private String iCheckComment;
/**
* 入网报告路径
*/
@@ -96,6 +105,14 @@ public class RLoadTypeUserManage implements Serializable {
* 实测报告状态字典ID
*/
private String aStatus;
/**
*实测报告审核人
*/
private String aCheckPerson;
/**
*实测报告审核意见
*/
private String aCheckComment;
/**
* 实测报告路径
*/
@@ -120,5 +137,7 @@ public class RLoadTypeUserManage implements Serializable {
* 实测详情
*/
private String aDescription;
}

View File

@@ -31,7 +31,8 @@ public class RStatDistributionProblemPO {
@TableField(value = "org_no")
private String orgNo;
@TableField(value = "org_name")
private String orgName;
/**
* 问题类型(字典,两种类型:谐波电压越限、谐波电流越限)
*/
@@ -49,7 +50,8 @@ public class RStatDistributionProblemPO {
*/
@TableField(value = "distribution_id")
private String distributionId;
@TableField(value = "distribution_name")
private String distributionName;
/**
* 最新超标时间(超标连续大于4小时)
*/

View File

@@ -0,0 +1,190 @@
package com.njcn.process.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import java.util.Date;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/22 18:59【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 电能质量问题日志表
*/
@TableName(value = "r_stat_electric_quality_problem_log")
public class RStatElectricQualityProblemLogPO {
/**
* 电能质量问题编号
*/
@MppMultiId(value = "power_quality_problem_no")
private String powerQualityProblemNo;
/**
* 操作时间
*/
@MppMultiId(value = "data_date")
private Date dataDate;
/**
* 审核人
*/
@TableField(value = "checker")
private String checker;
/**
* 审核备注
*/
@TableField(value = "description")
private String description;
/**
* 填报进度,字典表(未填报、原因分析结果、计划整改措施、实际采取措施、治理效果评价、已归档)
*/
@TableField(value = "report_process")
private String reportProcess;
/**
* 填报内容
*/
@TableField(value = "report_process_content")
private String reportProcessContent;
/**
* 审核状态
*/
@TableField(value = "type")
private String type;
/**
* 获取电能质量问题编号
*
* @return power_quality_problem_no - 电能质量问题编号
*/
public String getPowerQualityProblemNo() {
return powerQualityProblemNo;
}
/**
* 设置电能质量问题编号
*
* @param powerQualityProblemNo 电能质量问题编号
*/
public void setPowerQualityProblemNo(String powerQualityProblemNo) {
this.powerQualityProblemNo = powerQualityProblemNo;
}
/**
* 获取操作时间
*
* @return data_date - 操作时间
*/
public Date getDataDate() {
return dataDate;
}
/**
* 设置操作时间
*
* @param dataDate 操作时间
*/
public void setDataDate(Date dataDate) {
this.dataDate = dataDate;
}
/**
* 获取审核人
*
* @return checker - 审核人
*/
public String getChecker() {
return checker;
}
/**
* 设置审核人
*
* @param checker 审核人
*/
public void setChecker(String checker) {
this.checker = checker;
}
/**
* 获取审核备注
*
* @return description - 审核备注
*/
public String getDescription() {
return description;
}
/**
* 设置审核备注
*
* @param description 审核备注
*/
public void setDescription(String description) {
this.description = description;
}
/**
* 获取填报进度,字典表(未填报、原因分析结果、计划整改措施、实际采取措施、治理效果评价、已归档)
*
* @return report_process - 填报进度,字典表(未填报、原因分析结果、计划整改措施、实际采取措施、治理效果评价、已归档)
*/
public String getReportProcess() {
return reportProcess;
}
/**
* 设置填报进度,字典表(未填报、原因分析结果、计划整改措施、实际采取措施、治理效果评价、已归档)
*
* @param reportProcess 填报进度,字典表(未填报、原因分析结果、计划整改措施、实际采取措施、治理效果评价、已归档)
*/
public void setReportProcess(String reportProcess) {
this.reportProcess = reportProcess;
}
/**
* 获取填报内容
*
* @return report_process_content - 填报内容
*/
public String getReportProcessContent() {
return reportProcessContent;
}
/**
* 设置填报内容
*
* @param reportProcessContent 填报内容
*/
public void setReportProcessContent(String reportProcessContent) {
this.reportProcessContent = reportProcessContent;
}
/**
* 获取状态
*
* @return type - 状态
*/
public String getType() {
return type;
}
/**
* 设置状态
*
* @param type 状态
*/
public void setType(String type) {
this.type = type;
}
}

View File

@@ -30,6 +30,13 @@ public class RStatWorkOrderDetailPO {
private String problemNo;
@TableField(value = "org_no")
private String orgNo;
@TableField(value = "org_name")
private String orgName;
@TableField(value = "distribution_id")
private String distributionId;
@TableField(value = "distribution_name")
private String distributionName;
/**
* 工单状态(字典,待派单、已派单、已关闭)
*/
@@ -144,6 +151,12 @@ public class RStatWorkOrderDetailPO {
@TableField(value = "cause_feedback")
private String causeFeedback;
/**
* 审核人ID
*/
@TableField(value = "check_person")
private String checkPerson;
/**
* 审核状态(字典,两种类型:审核通过/审核不通过)
*/
@@ -157,7 +170,7 @@ public class RStatWorkOrderDetailPO {
private String checkComments;
/**
* 计划完成时间
* 整改完成时间
*/
@TableField(value = "rectify_complete_time")
private Date rectifyCompleteTime;
@@ -174,6 +187,12 @@ public class RStatWorkOrderDetailPO {
@TableField(value = "rectify_describe")
private String rectifyDescribe;
/**
* 整改人ID
*/
@TableField(value = "assess_person")
private String assessPerson;
/**
* 评估完成时间
*/

View File

@@ -49,28 +49,32 @@ public class RGeneralSurveyPlanVO {
@ApiModelProperty(value="计划状态(0:新建 1:待审核 2:审核未通过 3:已发布 4:已完成)")
private Integer status;
@TableField(value = "is_file_upload")
@ApiModelProperty(value="文件是否上传(0:否 1:是)")
private Integer isFileUpload;
/**
* 上传文件数量
*/
@TableField(value = "file_count")
@ApiModelProperty(value="上传文件数量")
private Integer fileCount;
/**
* 文件路径
*/
@TableField(value = "file_path")
@ApiModelProperty(value="文件路径")
private String filePath;
@ApiModelProperty(value="审核人")
private String checkPerson;
/**
* 审核意见
*/
@ApiModelProperty(value="审核意见")
private String checkComment;
/**
* 上传时间
*/
@TableField(value = "upload_time")
@ApiModelProperty(value="上传时间")
private Date uploadTime;

View File

@@ -0,0 +1,83 @@
package com.njcn.process.pojo.vo;
import lombok.Data;
import java.util.Date;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/1 14:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 台区测点问题表
*/
@Data
public class RStatDistributionProblemVO {
/**
* 问题编号(有生成规则,看文档)
*/
private String problemNo;
private String orgNo;
private String orgName;
/**
* 问题类型(字典,两种类型:谐波电压越限、谐波电流越限)
*/
private String problemType;
/**
* 问题发生时间
*/
private Date occurTime;
/**
* 台区ID
*/
private String distributionId;
/**
* 台区名称
*/
private String distributionName;
/**
* 最新超标时间(超标连续大于4小时)
*/
private Date lastTime;
/**
* 审核状态(字典,两种类型:待审核/已审核)
*/
private String checkStatus;
/**
* 审核处理(字典,三种情况:“-”“生成工单”“无需处理”,待审核状态的审核结果为“-”,另外两种根据审核弹窗选择结果显示.这边字典存两个生成工单、无需处理,为空是替换成“-”)
*/
private String checkResult;
/**
* 问题处理时间
*/
private Date handleTime;
/**
* 监测点ID
*/
private String measurementPointId;
/**
* 问题描述
*/
private String problemDescribe;
/**
* 补充描述
*/
private String supplyDescribe;
}

View File

@@ -0,0 +1,180 @@
package com.njcn.process.pojo.vo;
import java.util.Date;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/22 18:59【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 电能质量问题日志表
*/
public class RStatElectricQualityProblemLogVO {
/**
* 电能质量问题编号
*/
private String powerQualityProblemNo;
private String orgName;
/**
* 操作时间
*/
private Date dataDate;
/**
* 审核人
*/
private String checker;
/**
* 审核备注
*/
private String description;
/**
* 填报进度,字典表(未填报、原因分析结果、计划整改措施、实际采取措施、治理效果评价、已归档)
*/
private String reportProcess;
/**
* 填报内容
*/
private String reportProcessContent;
/**
* 审核状态
*/
private String type;
/**
* 获取电能质量问题编号
*
* @return power_quality_problem_no - 电能质量问题编号
*/
public String getPowerQualityProblemNo() {
return powerQualityProblemNo;
}
/**
* 设置电能质量问题编号
*
* @param powerQualityProblemNo 电能质量问题编号
*/
public void setPowerQualityProblemNo(String powerQualityProblemNo) {
this.powerQualityProblemNo = powerQualityProblemNo;
}
/**
* 获取操作时间
*
* @return data_date - 操作时间
*/
public Date getDataDate() {
return dataDate;
}
/**
* 设置操作时间
*
* @param dataDate 操作时间
*/
public void setDataDate(Date dataDate) {
this.dataDate = dataDate;
}
/**
* 获取审核人
*
* @return checker - 审核人
*/
public String getChecker() {
return checker;
}
/**
* 设置审核人
*
* @param checker 审核人
*/
public void setChecker(String checker) {
this.checker = checker;
}
/**
* 获取审核备注
*
* @return description - 审核备注
*/
public String getDescription() {
return description;
}
/**
* 设置审核备注
*
* @param description 审核备注
*/
public void setDescription(String description) {
this.description = description;
}
/**
* 获取填报进度,字典表(未填报、原因分析结果、计划整改措施、实际采取措施、治理效果评价、已归档)
*
* @return report_process - 填报进度,字典表(未填报、原因分析结果、计划整改措施、实际采取措施、治理效果评价、已归档)
*/
public String getReportProcess() {
return reportProcess;
}
/**
* 设置填报进度,字典表(未填报、原因分析结果、计划整改措施、实际采取措施、治理效果评价、已归档)
*
* @param reportProcess 填报进度,字典表(未填报、原因分析结果、计划整改措施、实际采取措施、治理效果评价、已归档)
*/
public void setReportProcess(String reportProcess) {
this.reportProcess = reportProcess;
}
/**
* 获取填报内容
*
* @return report_process_content - 填报内容
*/
public String getReportProcessContent() {
return reportProcessContent;
}
/**
* 设置填报内容
*
* @param reportProcessContent 填报内容
*/
public void setReportProcessContent(String reportProcessContent) {
this.reportProcessContent = reportProcessContent;
}
/**
* 获取状态
*
* @return type - 状态
*/
public String getType() {
return type;
}
/**
* 设置状态
*
* @param type 状态
*/
public void setType(String type) {
this.type = type;
}
}

View File

@@ -0,0 +1,189 @@
package com.njcn.process.pojo.vo;
import lombok.Data;
import java.util.Date;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/1 14:13【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 工单详情表
*/
@Data
public class RStatWorkOrderDetailVO {
/**
* 问题编号(台区测点问题表的problem_no)
*/
private String problemNo;
private String orgNo;
private String orgName;
/**
* 台区ID
*/
private String distributionId;
/**
* 台区名称
*/
private String distributionName;
/**
* 工单状态(字典,待派单、已派单、已关闭)
*/
private String workOrderStatus;
/**
* 工单类型(字典,目前一个,整改单)
*/
private String workOrderType;
/**
* 一级业务类型(字典,目前一个,运检业务)
*/
private String primaryBusinessType;
/**
* 二级业务类型(字典,两种类型:谐波电压越限、谐波电流越限)
*/
private String twoBusinessType;
/**
* 供电所
*/
private String powerSupplyStation;
private String powerSupplyStationName;
/**
* 工单流程(字典,生成工单、派单、反馈、审核、整改、评估、归档,默认生成工单)
*/
private String workOrderProcess;
/**
* 维护班组
*/
private String whbz;
/**
* 工单负责人
*/
private String workOrderLeader;
/**
* 工单完成时间
*/
private Date workOrderOverTime;
/**
* 要求反馈时间
*/
private Date expectAskFeedbackTime;
/**
* 接单人ID
*/
private String pickUpPerson;
/**
* 下发时间
*/
private Date distributionTime;
/**
* 预期到期时间
*/
private Date expirationTime;
/**
* 关联设备主人
*/
private String relationDevice;
/**
* 附件
*/
private String enclosure;
/**
* 抄送
*/
private String copyFor;
/**
* 反馈时间
*/
private Date askFeedbackTime;
/**
* 计划完成时间
*/
private Date plannedCompletionTime;
/**
* 原因反馈
*/
private String causeFeedback;
/**
* 审核人ID
*/
private String checkPerson;
/**
* 审核状态(字典,两种类型:审核通过/审核不通过)
*/
private String checkStatus;
/**
* 审核意见(审核通过可为空,审核不通过时必填)
*/
private String checkComments;
/**
* 整改完成时间
*/
private Date rectifyCompleteTime;
/**
* 整改人ID
*/
private String rectifyPerson;
/**
* 整改描述
*/
private String rectifyDescribe;
/**
* 整改人ID
*/
private String assessPerson;
/**
* 评估完成时间
*/
private Date assessCompleteTime;
/**
* 评估结果(字典,评估合格、评估不合格)
*/
private String assessResult;
/**
* 评估描述
*/
private String assessDescribe;
/**
* 问题描述
*/
private String problemDescribe;
}

View File

@@ -0,0 +1,46 @@
package com.njcn.process.utils;
import cn.hutool.core.util.StrUtil;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.EnumUtils;
import com.njcn.process.enums.ProcessResponseEnum;
import javax.validation.constraints.NotNull;
import java.util.Objects;
/**
* @author hongawen
* @version 1.0.0
* @date 2021年12月20日 10:03
*/
public class ProcessEnumUtil {
/**
* 获取HarmonicResponseEnum实例
*/
public static ProcessResponseEnum getHarmonicEnumResponseEnumByMessage(@NotNull Object value) {
ProcessResponseEnum harmonicResponseEnum;
try {
String message = value.toString();
if(message.indexOf(StrUtil.C_COMMA)>0){
value = message.substring(message.indexOf(StrUtil.C_COMMA)+1);
}
harmonicResponseEnum = EnumUtils.valueOf(ProcessResponseEnum.class, value, ProcessResponseEnum.class.getMethod(BusinessException.GET_MESSAGE_METHOD));
return Objects.isNull(harmonicResponseEnum) ? ProcessResponseEnum.PROCESS_COMMON_ERROR : harmonicResponseEnum;
} catch (NoSuchMethodException e) {
throw new BusinessException(CommonResponseEnum.INTERNAL_ERROR);
}
}
public static Enum<?> getExceptionEnum(HttpResult<Object> result){
//如果返回错误,且为内部错误,则直接抛出异常
CommonResponseEnum commonResponseEnum = EnumUtils.getCommonResponseEnumByCode(result.getCode());
if (commonResponseEnum == CommonResponseEnum.DEVICE_RESPONSE_ENUM) {
return getHarmonicEnumResponseEnumByMessage(result.getMessage());
}
return commonResponseEnum;
}
}