代码合并

This commit is contained in:
2023-01-03 09:00:20 +08:00
parent 7c4cef74e7
commit cdc6255d22
81 changed files with 5415 additions and 63 deletions

View File

@@ -0,0 +1,91 @@
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);
/**
* 下载文件
*/
String downloadFile(String powerQualityProblemNo, String reportProcess);
/**
* 删除问题
*/
void deleteIssues(String powerQualityProblemNo);
}

View File

@@ -0,0 +1,82 @@
package com.njcn.process.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.vo.LoadTypeRelationExcel;
import com.njcn.process.pojo.vo.LoadTypeUserExcel;
import com.njcn.process.pojo.vo.RLoadTypeUserManageVO;
import java.util.List;
/**
* 干扰源用户管理
*
* @author qijian
* @version 1.0.0
* @createTime 2022/11/11 - 9:20
*/
public interface LoadTypeUserManageService {
/**
* 干扰源用户分页查询
* @param loadTypeUserSearchParam
* @return
*/
Page<RLoadTypeUserManageVO> getLoadTypeUserList(LoadTypeUserSearchParam loadTypeUserSearchParam);
/**
* 根据id查询干扰源用户
* @param id
* @return
*/
RLoadTypeUserManageVO getLoadTypeUserById(String id);
/**
* 新增干扰源用户
* @param loadTypeUserParam
* @return
*/
boolean addLoadTypeUser(LoadTypeUserParam loadTypeUserParam);
/**
* 上传干扰源用户入网报告
* @param loadTypeUserIUploadParam
* @return
*/
boolean uploadLoadTypeUserI(LoadTypeUserIUploadParam loadTypeUserIUploadParam);
/**
* 关联营销用户
* @param loadTypeUserAssociateParam
* @return
*/
boolean linkUser(LoadTypeUserAssociateParam loadTypeUserAssociateParam);
/**
* 查询所有干扰源用户(与营销系统关联)
* @param loadTypeUserSearchParam
* @return
*/
Page<RLoadTypeUserManageVO> getLoadTypeRelationList(LoadTypeUserSearchParam loadTypeUserSearchParam);
/**
* 上传干扰源用户实测报告
* @param loadTypeUserAUploadParam
* @return
*/
boolean uploadLoadTypeUserA(LoadTypeUserAUploadParam loadTypeUserAUploadParam);
/**
* 导出未建档干扰源用户管理信息
* @param list
* @return
*/
List<LoadTypeUserExcel> exportLoadTypeUserList(List<String> list);
/**
* 导出干扰源用户常态化管理信息
* @param list
* @return
*/
List<LoadTypeRelationExcel> exportLoadTypeRelationList(List<String> list);
}

View File

@@ -0,0 +1,29 @@
package com.njcn.process.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.process.pojo.param.RGeneralSurveyPlandetailQueryParm;
import com.njcn.process.pojo.po.RGeneralSurveyPlanDetail;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanVO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RGeneralSurveyPlanDetailService extends IMppService<RGeneralSurveyPlanDetail> {
/**
* @Description: 根据planNO查询普测计划详情
* @Param: [rGeneralSurveyPlandetailQueryParm]
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.njcn.process.pojo.vo.RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO>
* @Author: clam
* @Date: 2022/11/15
*/
IPage<RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO> queryPlandetail(RGeneralSurveyPlandetailQueryParm rGeneralSurveyPlandetailQueryParm);
}

View File

@@ -0,0 +1,84 @@
package com.njcn.process.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.process.pojo.param.RGeneralSurveyPlanAddParm;
import com.njcn.process.pojo.param.RGeneralSurveyPlanQueryParm;
import com.njcn.process.pojo.param.SurveyPlanQuestionQueryParm;
import com.njcn.process.pojo.param.SurveyResultUploadParam;
import com.njcn.process.pojo.po.RGeneralSurveyPlanPO;
import com.njcn.process.pojo.vo.SurveyPlanExcel;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanDetailOnQuestionVO;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanVO;
import java.util.List;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 11:24【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RGeneralSurveyPlanPOService extends IMppService<RGeneralSurveyPlanPO>{
/**
* @Description: addPlan
* @Param: [rGeneralSurveyPlanAddParm]
* @return: java.lang.Boolean
* @Author: clam
* @Date: 2022/11/14
*/
Boolean addPlan(RGeneralSurveyPlanAddParm rGeneralSurveyPlanAddParm);
/**
* @Description: query
* @Param: [rGeneralSurveyPlanQueryParm]
* @return: java.util.List<com.njcn.process.pojo.vo.RGeneralSurveyPlanVO>
* @Author: clam
* @Date: 2022/11/15
*/
IPage<RGeneralSurveyPlanVO> query(RGeneralSurveyPlanQueryParm rGeneralSurveyPlanQueryParm,List<String> statusList);
/**
* @Description: surveyResultUpload
* @Param: [surveyResultUploadParam]
* @return: boolean
* @Author: clam
* @Date: 2022/11/18
*/
boolean surveyResultUpload(SurveyResultUploadParam surveyResultUploadParam);
/**
* @Description: surveyResultDownload
* @Param: [planNo]
* @return: java.util.List<java.lang.String>
* @Author: clam
* @Date: 2022/11/18
*/
List<MinIoUploadResDTO> surveyResultDownload(String planNo);
/**
* @Description: exportSurveyPlan
* @Param: []
* @return: java.util.List<com.njcn.process.pojo.vo.SurveyPlanExcel>
* @Author: clam
* @Date: 2022/11/21
*/
List<SurveyPlanExcel> exportSurveyPlan(List<String> planIdList);
/**
* @Description: querySurveyPlanOnQuestion
* @Param: [questionQueryParm]
* @return: java.util.List<com.njcn.process.pojo.vo.RGeneralSurveyPlanDetailOnQuestionVO>
* @Author: clam
* @Date: 2022/11/30
*/
List<RGeneralSurveyPlanDetailOnQuestionVO> querySurveyPlanOnQuestion(SurveyPlanQuestionQueryParm questionQueryParm);
/**
* @Description: 更具questionQueryParm查计划名称
* @Param: [questionQueryParm]
* @return: java.util.List<com.njcn.process.pojo.param.SurveyPlanQuestionQueryParm>
* @Author: clam
* @Date: 2022/12/1
*/
List<RGeneralSurveyPlanPO> querySurveyPlanName(SurveyPlanQuestionQueryParm questionQueryParm);
}

View File

@@ -0,0 +1,532 @@
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.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.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
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;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
* 电能质量问题实现类
* @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 DicDataFeignClient dicDataFeignClient;
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,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);
issues.setReportProcess(DicDataEnum.NOT_REPORTED.getCode());
issues.setReportProcessStatus(DicDataEnum.AUDITT.getCode());
issuesMapper.insert(issues);
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();
}
/**
* 填报在线监测超标问题
*/
@Override
public void addExcessiveIssues(ExcessiveParam excessiveParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(excessiveParam,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);
}
/**
* 填报普测超标问题
*/
@Override
public void addGeneralSurveyIssues(GeneralSurveyParam generalSurveyParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(generalSurveyParam,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);
}
/**
* 填报用户投诉问题
*/
@Override
public void addComplaintIssues(ComplaintParam complaintParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(complaintParam,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);
}
/**
* 填报运维监控异常问题
*/
@Override
public void addAbnormalIssues(AbnormalParam abnormalParam) {
IssuesParam issuesParam = new IssuesParam();
BeanUtil.copyProperties(abnormalParam,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);
}
/**
* 查询问题列表
*/
@Override
public Page<IssuesVO> getIssues(QueryIssuesParam param) {
Page<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);
}
List<IssuesVO> 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<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())));
page.setTotal(out.size());
int pages = (int)Math.ceil(out.size()*1.0/param.getPageSize());
page.setPages(pages);
List<List<IssuesVO>> partition = Lists.partition(out, param.getPageSize());
List<IssuesVO> issuesVOS = partition.get(param.getPageNum() - 1);
page.setRecords(issuesVOS);
}
return page;
}
/**
* 问题基本信息查询
*/
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);
}
/**
* 处理填报信息
*/
private FlowDetailVO processFlowDetail(RMpElectricQualityProblemFlowDetails details){
FlowDetailVO process = new FlowDetailVO();
BeanUtil.copyProperties(details,process);
if (!StrUtil.isEmpty(details.getReportProcessContentYyfx())){
process.setReportProcessContentYyfx(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentYyfx(),"["),"]").split(","));
StrUtil.trim(process.getReportProcessContentYyfx());
}
if (!StrUtil.isEmpty(details.getUserReportProcessContentYyfx())){
process.setUserReportProcessContentYyfx(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentYyfx(),"["),"]").split(","));
StrUtil.trim(process.getUserReportProcessContentYyfx());
}
if (!StrUtil.isEmpty(details.getReportProcessContentJhzg())){
process.setReportProcessContentJhzg(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentJhzg(),"["),"]").split(","));
StrUtil.trim(process.getReportProcessContentJhzg());
}
if (!StrUtil.isEmpty(details.getUserReportProcessContentJhzg())){
process.setUserReportProcessContentJhzg(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentJhzg(),"["),"]").split(","));
StrUtil.trim(process.getUserReportProcessContentJhzg());
}
if (!StrUtil.isEmpty(details.getReportProcessContentSjcq())){
process.setReportProcessContentSjcq(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentSjcq(),"["),"]").split(","));
StrUtil.trim(process.getReportProcessContentSjcq());
}
if (!StrUtil.isEmpty(details.getUserReportProcessContentSjcq())){
process.setUserReportProcessContentSjcq(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentSjcq(),"["),"]").split(","));
StrUtil.trim(process.getUserReportProcessContentSjcq());
}
return process;
}
/**
* 查询在线监测超标问题详情
*/
@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);
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
BeanUtil.copyProperties(processFlowDetail(flowDetails),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);
detail.setSteadyIndicator(steadyIndicator(generalSurveyOut.getOverLimitTarget()));
detail.setTransientIndicators(transientIndicators(generalSurveyOut.getOverLimitTarget()));
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
BeanUtil.copyProperties(processFlowDetail(flowDetails),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);
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(","));
StrUtil.trim(detail.getPowerGridAffectDev());
}
if (!StrUtil.isEmpty(complaintOut.getUserAffectDev())){
detail.setUserAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(complaintOut.getUserAffectDev(),"["),"]").split(","));
StrUtil.trim(detail.getUserAffectDev());
}
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);
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(","));
StrUtil.trim(detail.getPowerGridAffectDev());
}
if (!StrUtil.isEmpty(abnormalOut.getUserAffectDev())){
detail.setUserAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(abnormalOut.getUserAffectDev(),"["),"]").split(","));
StrUtil.trim(detail.getUserAffectDev());
}
return detail;
}
/**
* 稳态指标处理
*/
private String[] steadyIndicator(String target){
String[] process = StrUtil.removePrefix(target.split("]\\[")[0],"\\[").split(",");
StrUtil.trim(process);
return process;
}
/**
* 暂态指标处理
*/
private String[] transientIndicators(String target){
String[] process = StrUtil.removeSuffix(target.split("]\\[")[1],"]").split(",");
StrUtil.trim(process);
return process;
}
/**
* 原因分析
*/
@Override
public void reasonAnalysis(ProcessParam processParam) {
LocalDateTime local = LocalDateTimeUtil.now();
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<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);
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);
}
}
/**
* 计划整改措施、实际采取措施、成效分析
*/
@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);
LocalDateTime local = LocalDateTimeUtil.now();
if (DicDataEnum.PLAN_MEASURES.getCode().equals(code)){
details.setDataDateJhzg(local);
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(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)){
details.setDataDateZlxg(local);
details.setDescriptionZlxg(processParam.getDescriptionZlxg());
details.setFileNameZlxg(processParam.getFileNameZlxg());
details.setFilePathZlxg(processParam.getFilePathZlxg());
}
flowDetailsMapper.update(details, query);
issuesOut.setReportProcess(code);
issuesOut.setReportProcessStatus(DicDataEnum.AUDITT.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);
}
}
/**
* 下载文件
*/
@Override
public String downloadFile(String powerQualityProblemNo,String reportProcess) {
LambdaQueryWrapper<RMpElectricQualityProblemFlowDetails> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo);
RMpElectricQualityProblemFlowDetails details = flowDetailsMapper.selectOne(issuesQuery);
String filePath = null;
if (DicDataEnum.CAUSE_ANALYSIS.getName().equals(reportProcess)){
filePath = details.getFilePathYyfx();
}else if (DicDataEnum.PLAN_MEASURES.getName().equals(reportProcess)){
filePath = details.getFilePathJhzg();
}else if (DicDataEnum.ACTUAL_MEASURES.getName().equals(reportProcess)){
filePath = details.getFilePathSjcq();
}else if (DicDataEnum.INSIGHTS.getName().equals(reportProcess)){
filePath = details.getFilePathZlxg();
}
return filePath;
}
/**
* 删除问题
*/
@Override
public void deleteIssues(String powerQualityProblemNo) {
LambdaQueryWrapper<RStatElectricQualityProblemFlow> query = new LambdaQueryWrapper<>();
query.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,powerQualityProblemNo);
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(query);
if (DicDataEnum.ONLINE.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpOnlineMonitorOverproofProblem> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpOnlineMonitorOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
excessiveMapper.delete(issuesQuery);
}else if (DicDataEnum.GENERAL.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpGeneralSurveyOverproofProblem> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpGeneralSurveyOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
generalSurveyMapper.delete(issuesQuery);
}else if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpUserComplaint> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,powerQualityProblemNo);
complaintMapper.delete(issuesQuery);
}else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesOut.getProblemSources())){
LambdaQueryWrapper<RMpOperationMonitorAbnormal> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,powerQualityProblemNo);
abnormalMapper.delete(issuesQuery);
}
LambdaQueryWrapper<RMpElectricQualityProblemFlowDetails> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo);
flowDetailsMapper.delete(issuesQuery);
issuesMapper.delete(query);
}
}

View File

@@ -0,0 +1,345 @@
package com.njcn.process.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.api.DistributionMonitorClient;
import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.minio.config.MinIoProperties;
import com.njcn.minio.utils.MinIoUtils;
import com.njcn.process.constant.Param;
import com.njcn.process.enums.ProcessResponseEnum;
import com.njcn.process.mapper.LoadTypeUserManageMapper;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.po.RLoadTypeUserManage;
import com.njcn.process.pojo.vo.LoadTypeRelationExcel;
import com.njcn.process.pojo.vo.LoadTypeUserExcel;
import com.njcn.process.pojo.vo.RLoadTypeUserManageVO;
import com.njcn.process.service.LoadTypeUserManageService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.vo.PvTerminalTreeVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 干扰源用户管理
*
* @author qijian
* @version 1.0.0
* @createTime 2022/11/11 - 9:20
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService {
private final LoadTypeUserManageMapper loadTypeUserManageMapper;
private final DicDataFeignClient dicDataFeignClient;
private final DistributionMonitorClient distributionMonitorClient;
private final DeptFeignClient deptFeignClient;
@Resource
private MinIoUtils minIoUtils;
@Resource
private MinIoProperties minIoProperties;
/**
* 干扰源用户分页查询
* @param loadTypeUserSearchParam
* @return
*/
@Override
public Page<RLoadTypeUserManageVO> getLoadTypeUserList(LoadTypeUserSearchParam loadTypeUserSearchParam){
Page<RLoadTypeUserManageVO> page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize());
Page<RLoadTypeUserManageVO> loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeUserPage(page, loadTypeUserSearchParam);
//部门处理根据部门code取名称
List<RLoadTypeUserManageVO> list = loadTypeUserPage.getRecords();
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> pvTerminalTreeVOMap = dept.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, pvTerminalTreeVO -> pvTerminalTreeVO));
List<RLoadTypeUserManageVO> resultList = list.stream().map(item -> {
RLoadTypeUserManageVO rLoadTypeUserManageVO = new RLoadTypeUserManageVO();
BeanUtils.copyProperties(item, rLoadTypeUserManageVO);
rLoadTypeUserManageVO.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName()); //单位名称
return rLoadTypeUserManageVO;
}).collect(Collectors.toList());
//返回新的数据组
return loadTypeUserPage.setRecords(resultList);
}
/**
* 根据id查询干扰源用户
* @param id
* @return
*/
@Override
public RLoadTypeUserManageVO getLoadTypeUserById(String id) {
RLoadTypeUserManage rLoadTypeUserManage = loadTypeUserManageMapper.selectById(id);
RLoadTypeUserManageVO rLoadTypeUserManageVO = new RLoadTypeUserManageVO();
BeanUtils.copyProperties(rLoadTypeUserManage, rLoadTypeUserManageVO);
//文件
if (rLoadTypeUserManageVO.getIFilePath() != null){
String iFile = minIoUtils.getObjectUrl(minIoProperties.getBucket(), rLoadTypeUserManageVO.getIFilePath(), 7 * 24 * 60 * 60);
rLoadTypeUserManageVO.setIFile(iFile);
}
if (rLoadTypeUserManageVO.getAFilePath() != null){
String aFile = minIoUtils.getObjectUrl(minIoProperties.getBucket(), rLoadTypeUserManageVO.getAFilePath(), 7 * 24 * 60 * 60);
rLoadTypeUserManageVO.setIFile(aFile);
}
return rLoadTypeUserManageVO;
}
/**
* 新增干扰源用户
* @param loadTypeUserParam
* @return
*/
@Override
public boolean addLoadTypeUser(LoadTypeUserParam loadTypeUserParam) {
//参数转换
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
BeanUtils.copyProperties(loadTypeUserParam, rLoadTypeUserManage);
//塞入建档时间
Date date = DateUtil.parse(loadTypeUserParam.getRecordTime(), "yyyy-MM-dd HH:mm:ss");
rLoadTypeUserManage.setRecordTime(date);
loadTypeUserManageMapper.insert(rLoadTypeUserManage);
return true;
}
/**
* 上传干扰源用户入网报告
* @param loadTypeUserIUploadParam
* @return
*/
@Override
public boolean uploadLoadTypeUserI(LoadTypeUserIUploadParam loadTypeUserIUploadParam) {
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
BeanUtils.copyProperties(loadTypeUserIUploadParam, rLoadTypeUserManage);
//文件上传到Minio服务器存入文件名
if(loadTypeUserIUploadParam.getFile() != null){
MinIoUploadResDTO minIoUploadResDTO = fileToMinio(loadTypeUserIUploadParam.getFile());
rLoadTypeUserManage.setIFilePath(minIoUploadResDTO.getMinFileName());
rLoadTypeUserManage.setIUploadTime(new Date());
}
//提交:待审核/保存:新建
DictData dictData;
if(Objects.equals(Param.LOAD_TYPE_USER_SUBMIT,loadTypeUserIUploadParam.getStatus())){
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.AUDIT.getCode()).getData();
}else{
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.NEWLY.getCode()).getData();
}
rLoadTypeUserManage.setIStatus(dictData.getId());
rLoadTypeUserManage.setIIsFileUpload(1);
loadTypeUserManageMapper.updateById(rLoadTypeUserManage);
return true;
}
/**
* 关联营销用户
* @param
* @return
*/
@Override
public boolean linkUser(LoadTypeUserAssociateParam loadTypeUserAssociateParam) {
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
//填入数据修改
BeanUtils.copyProperties(loadTypeUserAssociateParam, rLoadTypeUserManage);
loadTypeUserManageMapper.updateById(rLoadTypeUserManage);
return true;
}
/**
* 查询所有干扰源用户(与营销系统关联)
* @param loadTypeUserSearchParam
* @return
*/
@Override
public Page<RLoadTypeUserManageVO> getLoadTypeRelationList(LoadTypeUserSearchParam loadTypeUserSearchParam) {
Page<RLoadTypeUserManageVO> page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize());
Page<RLoadTypeUserManageVO> loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeRelationPage(page,loadTypeUserSearchParam);
//部门处理根据部门code取名称
List<RLoadTypeUserManageVO> list = loadTypeUserPage.getRecords();
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> pvTerminalTreeVOMap = dept.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, pvTerminalTreeVO -> pvTerminalTreeVO));
List<RLoadTypeUserManageVO> resultList = list.stream().map(item -> {
RLoadTypeUserManageVO rLoadTypeUserManageVO = new RLoadTypeUserManageVO();
BeanUtils.copyProperties(item, rLoadTypeUserManageVO);
rLoadTypeUserManageVO.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName()); //单位名称
return rLoadTypeUserManageVO;
}).collect(Collectors.toList());
//返回新的数据组
return loadTypeUserPage.setRecords(resultList);
}
/**
* 上传文件到Minio
*
* @param file 文件
* @return 成功标记
*/
private MinIoUploadResDTO fileToMinio(MultipartFile file) {
try {
//把名称存入数据
MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "loadTypeUser/");
return upload;
} catch (Exception e) {
throw new BusinessException(ProcessResponseEnum.UPLOAD_FILE_ERROR);
}
}
/**
* 上传干扰源用户入网报告
* @param loadTypeUserAUploadParam
* @return
*/
@Override
public boolean uploadLoadTypeUserA(LoadTypeUserAUploadParam loadTypeUserAUploadParam) {
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
BeanUtils.copyProperties(loadTypeUserAUploadParam, rLoadTypeUserManage);
//文件上传到Minio服务器存入文件名
if(loadTypeUserAUploadParam.getFile() != null){
MinIoUploadResDTO minIoUploadResDTO = fileToMinio(loadTypeUserAUploadParam.getFile());
rLoadTypeUserManage.setAFilePath(minIoUploadResDTO.getMinFileName());
rLoadTypeUserManage.setAUploadTime(new Date());
}
//提交:待审核/保存:新建
DictData dictData;
if(Objects.equals(Param.LOAD_TYPE_USER_SUBMIT,loadTypeUserAUploadParam.getStatus())){
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.AUDIT.getCode()).getData();
}else{
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.NEWLY.getCode()).getData();
}
rLoadTypeUserManage.setAStatus(dictData.getId());
loadTypeUserManageMapper.updateById(rLoadTypeUserManage);
return true;
}
/**
* 导出未建档干扰源用户管理信息
* @param list
* @return
*/
@Override
public List<LoadTypeUserExcel> exportLoadTypeUserList(List<String> list) {
//数据处理
LambdaQueryWrapper<RLoadTypeUserManage> queryWrapper = new LambdaQueryWrapper<> ();
queryWrapper.in(RLoadTypeUserManage::getId, list);
List<RLoadTypeUserManage> rLoadTypeUserManages = loadTypeUserManageMapper.selectList(queryWrapper);
//1、部门数据
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> pvTerminalTreeVOMap = dept.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, pvTerminalTreeVO -> pvTerminalTreeVO));
//2、取干扰源类型
List<DictData> loadTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INTERFERENCE_SOURCE.getCode()).getData();
Map<String, DictData> loadTypeMap = loadTypeList.stream().collect(Collectors.toMap(DictData::getId, dictData -> dictData));
//3、取入网报告状态
List<DictData> iStatusList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.ON_NETWORK_STATUS.getCode()).getData();
Map<String, DictData> iStatusMap = iStatusList.stream().collect(Collectors.toMap(DictData::getId, dictData -> dictData));
List<LoadTypeUserExcel> resultList = rLoadTypeUserManages.stream().map(item -> {
LoadTypeUserExcel loadTypeUserExcel = new LoadTypeUserExcel();
if (item.getUserName() != null){
loadTypeUserExcel.setUserName(item.getUserName());
}
if (item.getRecordTime() != null){
loadTypeUserExcel.setRecordTime(item.getRecordTime());
}
if (item.getAIsFileUpload() != null){
loadTypeUserExcel.setIIsFileUpload(item.getIIsFileUpload() == 0 ? "" : ""); //实测报告是否上传
}
if (item.getOrgNo() != null){
loadTypeUserExcel.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName()); //单位
}
if (item.getLoadType() != null){
loadTypeUserExcel.setLoadTypeName(loadTypeMap.get(item.getLoadType()).getName()); //入网报告状态
}
if (item.getIStatus() != null){
loadTypeUserExcel.setIStatusName(iStatusMap.get(item.getIStatus()).getName()); //入网报告状态
}
if (item.getAIsFileUpload() != null){
loadTypeUserExcel.setIIsFileUpload(item.getIIsFileUpload() == 0 ? "" : ""); //实测报告是否上传
}
return loadTypeUserExcel;
}).collect(Collectors.toList());
return resultList;
}
/**
* 导出干扰源用户常态化管理信息
* @param list
* @return
*/
@Override
public List<LoadTypeRelationExcel> exportLoadTypeRelationList(List<String> list) {
//数据处理
LambdaQueryWrapper<RLoadTypeUserManage> queryWrapper = new LambdaQueryWrapper<> ();
queryWrapper.in(RLoadTypeUserManage::getId, list);
List<RLoadTypeUserManage> rLoadTypeUserManages = loadTypeUserManageMapper.selectList(queryWrapper);
//1、部门数据
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> pvTerminalTreeVOMap = dept.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, pvTerminalTreeVO -> pvTerminalTreeVO));
//2、取干扰源类型
List<DictData> loadTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INTERFERENCE_SOURCE.getCode()).getData();
Map<String, DictData> loadTypeMap = loadTypeList.stream().collect(Collectors.toMap(DictData::getId, dictData -> dictData));
//3、取实测报告状态
List<DictData> aStatusList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.ON_NETWORK_STATUS.getCode()).getData();
Map<String, DictData> aStatusMap = aStatusList.stream().collect(Collectors.toMap(DictData::getId, dictData -> dictData));
List<LoadTypeRelationExcel> resultList = rLoadTypeUserManages.stream().map(item -> {
LoadTypeRelationExcel loadTypeRelationExcel = new LoadTypeRelationExcel();
if (item.getOrgNo() != null){
loadTypeRelationExcel.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName());
}
if (item.getLoadType() != null){
loadTypeRelationExcel.setLoadTypeName(loadTypeMap.get(item.getLoadType()).getName());
}
if (item.getUserName() != null){
loadTypeRelationExcel.setUserName(item.getUserName());
}
if (item.getRelationUserName() != null){
loadTypeRelationExcel.setRelationUserName(item.getRelationUserName());
}
if (item.getAStatus() != null){
loadTypeRelationExcel.setAStatusName(aStatusMap.get(item.getIStatus()).getName());
}
return loadTypeRelationExcel;
}).collect(Collectors.toList());
return resultList;
}
}

View File

@@ -0,0 +1,51 @@
package com.njcn.process.service.impl;
import cn.hutool.core.bean.BeanUtil;
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.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.process.mapper.RGeneralSurveyPlanDetailMapper;
import com.njcn.process.pojo.param.RGeneralSurveyPlandetailQueryParm;
import com.njcn.process.pojo.po.RGeneralSurveyPlanDetail;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanVO;
import com.njcn.process.service.RGeneralSurveyPlanDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RGeneralSurveyPlanDetailServiceImpl extends MppServiceImpl<RGeneralSurveyPlanDetailMapper, RGeneralSurveyPlanDetail> implements RGeneralSurveyPlanDetailService{
private @Autowired
RGeneralSurveyPlanDetailMapper rGeneralSurveyPlanDetailMapper;
/**
* @param rGeneralSurveyPlandetailQueryParm
* @Description: 根据planNO查询普测计划详情
* @Param: [rGeneralSurveyPlandetailQueryParm]
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.njcn.process.pojo.vo.RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO>
* @Author: clam
* @Date: 2022/11/15
*/
@Override
public IPage<RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO> queryPlandetail(RGeneralSurveyPlandetailQueryParm rGeneralSurveyPlandetailQueryParm) {
IPage<RGeneralSurveyPlanDetail> page = new Page<> (rGeneralSurveyPlandetailQueryParm.getCurrentPage(), rGeneralSurveyPlandetailQueryParm.getPageSize());
LambdaQueryWrapper<RGeneralSurveyPlanDetail> lambdaQueryWrapper = new LambdaQueryWrapper<> ();
lambdaQueryWrapper.eq (RGeneralSurveyPlanDetail::getPlanNo, rGeneralSurveyPlandetailQueryParm.getPlanNo ());
IPage<RGeneralSurveyPlanDetail> rGeneralSurveyPlanDetailIPage = rGeneralSurveyPlanDetailMapper.selectPage (page, lambdaQueryWrapper);
return rGeneralSurveyPlanDetailIPage.convert (temp-> BeanUtil.copyProperties (temp, RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO.class));
}
}

View File

@@ -0,0 +1,345 @@
package com.njcn.process.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
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.RGeneralSurveyPlanDetailMapper;
import com.njcn.process.mapper.RGeneralSurveyPlanPOMapper;
import com.njcn.process.pojo.param.RGeneralSurveyPlanAddParm;
import com.njcn.process.pojo.param.RGeneralSurveyPlanQueryParm;
import com.njcn.process.pojo.param.SurveyPlanQuestionQueryParm;
import com.njcn.process.pojo.param.SurveyResultUploadParam;
import com.njcn.process.pojo.po.RGeneralSurveyPlanDetail;
import com.njcn.process.pojo.po.RGeneralSurveyPlanPO;
import com.njcn.process.pojo.vo.SurveyPlanExcel;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanDetailOnQuestionVO;
import com.njcn.process.pojo.vo.RGeneralSurveyPlanVO;
import com.njcn.process.service.RGeneralSurveyPlanDetailService;
import com.njcn.process.service.RGeneralSurveyPlanPOService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.vo.PvTerminalTreeVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 11:24【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl<RGeneralSurveyPlanPOMapper, RGeneralSurveyPlanPO> implements RGeneralSurveyPlanPOService{
private @Autowired
RGeneralSurveyPlanDetailService rGeneralSurveyPlanDetailService;
private @Autowired
RGeneralSurveyPlanPOMapper rGeneralSurveyPlanPOMapper;
private @Autowired
RGeneralSurveyPlanDetailMapper rGeneralSurveyPlanDetailMapper;
@Resource
private MinIoUtils minIoUtils;
private @Autowired
DeptFeignClient deptFeignClient;
@Resource
private MinIoProperties minIoProperties;
/**
* @param rGeneralSurveyPlanAddParm
* @Description: addPlan
* @Param: [rGeneralSurveyPlanAddParm]
* @return: java.lang.Boolean
* @Author: clam
* @Date: 2022/11/14
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean addPlan(RGeneralSurveyPlanAddParm rGeneralSurveyPlanAddParm) {
RGeneralSurveyPlanPO rGeneralSurveyPlanPO = new RGeneralSurveyPlanPO ();
BeanUtils.copyProperties (rGeneralSurveyPlanAddParm,rGeneralSurveyPlanPO);
/*todo 后期与工作流绑定*/
rGeneralSurveyPlanPO.setStatus (0);
boolean b = this.saveOrUpdateByMultiId (rGeneralSurveyPlanPO);
List<RGeneralSurveyPlanAddParm.RGeneralSurveyPlanDetailAddParm> rGeneralSurveyPlanDetailAddParm = rGeneralSurveyPlanAddParm.getRGeneralSurveyPlanDetailAddParm ( );
QueryWrapper<RGeneralSurveyPlanDetail> queryWrapper = new QueryWrapper ();
queryWrapper.lambda ().eq (RGeneralSurveyPlanDetail::getPlanNo, rGeneralSurveyPlanAddParm.getPlanNo ());
rGeneralSurveyPlanDetailService.remove (queryWrapper);
List<RGeneralSurveyPlanDetail> rGeneralSurveyPlanDetailList = new ArrayList<> ();
rGeneralSurveyPlanDetailAddParm.forEach (temp->{
RGeneralSurveyPlanDetail rGeneralSurveyPlanDetail = new RGeneralSurveyPlanDetail();
BeanUtils.copyProperties (temp, rGeneralSurveyPlanDetail);
/*目前时间与计划开始时间,结束时间一致*/
rGeneralSurveyPlanDetail.setGeneralSurveyStartTime (rGeneralSurveyPlanAddParm.getPlanStartTime ());
rGeneralSurveyPlanDetail.setGeneralSurveyTime (rGeneralSurveyPlanAddParm.getPlanStartTime ());
rGeneralSurveyPlanDetail.setGeneralSurveyEndTime (rGeneralSurveyPlanAddParm.getPlanEndTime ());
rGeneralSurveyPlanDetail.setPlanNo (rGeneralSurveyPlanAddParm.getPlanNo ());
rGeneralSurveyPlanDetail.setGeneralSurveyLeader(rGeneralSurveyPlanAddParm.getLeader ());
rGeneralSurveyPlanDetailList.add (rGeneralSurveyPlanDetail);
});
boolean b1 = rGeneralSurveyPlanDetailService.saveOrUpdateBatchByMultiId (rGeneralSurveyPlanDetailList, 5);
return b&&b1;
}
/**
* @param rGeneralSurveyPlanQueryParm
* @Description: query
* @Param: [rGeneralSurveyPlanQueryParm]
* @return: java.util.List<com.njcn.process.pojo.vo.RGeneralSurveyPlanVO>
* @Author: clam
* @Date: 2022/11/15
*/
@Override
public IPage<RGeneralSurveyPlanVO> query(RGeneralSurveyPlanQueryParm rGeneralSurveyPlanQueryParm,List<String> statusList ) {
IPage<RGeneralSurveyPlanPO> page = new Page<> (rGeneralSurveyPlanQueryParm.getCurrentPage(), rGeneralSurveyPlanQueryParm.getPageSize());
IPage<RGeneralSurveyPlanVO> returnpage = new Page<> (rGeneralSurveyPlanQueryParm.getCurrentPage(), rGeneralSurveyPlanQueryParm.getPageSize());
LambdaQueryWrapper<RGeneralSurveyPlanPO> queryWrapper = new LambdaQueryWrapper<> ();
if (!StringUtils.isEmpty (rGeneralSurveyPlanQueryParm.getOrgNo ())) {
List<String> data = deptFeignClient.getDepSonIdtByDeptId (rGeneralSurveyPlanQueryParm.getOrgNo ()).getData ( );
queryWrapper.in (RGeneralSurveyPlanPO::getOrgNo, data);
}
if (!StringUtils.isEmpty (rGeneralSurveyPlanQueryParm. getStatus ())) {
queryWrapper.eq (RGeneralSurveyPlanPO::getStatus, rGeneralSurveyPlanQueryParm.getStatus ());
}
if (!StringUtils.isEmpty (rGeneralSurveyPlanQueryParm.getIsFileUpload ())) {
queryWrapper.eq (RGeneralSurveyPlanPO::getIsFileUpload, rGeneralSurveyPlanQueryParm.getIsFileUpload ());
}
if (!Objects.isNull (rGeneralSurveyPlanQueryParm.getPlanStartTime ())) {
queryWrapper.ge (RGeneralSurveyPlanPO::getPlanStartTime, rGeneralSurveyPlanQueryParm.getPlanStartTime ());
}
if (!Objects.isNull (rGeneralSurveyPlanQueryParm.getPlanEndTime ())) {
queryWrapper.le (RGeneralSurveyPlanPO::getPlanEndTime, rGeneralSurveyPlanQueryParm.getPlanEndTime ());
}
queryWrapper.in (RGeneralSurveyPlanPO::getStatus, statusList);
queryWrapper.orderByAsc (RGeneralSurveyPlanPO::getStatus).orderByDesc (RGeneralSurveyPlanPO::getPlanCreateTime);
List<RGeneralSurveyPlanPO> rGeneralSurveyPlanPOS = rGeneralSurveyPlanPOMapper.selectPage (page,queryWrapper).getRecords ();
if(CollectionUtils.isEmpty (rGeneralSurveyPlanPOS)){
return returnpage;
}
//部门处理根据部门code取名称
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, String> pvTerminalTreeVOMap = dept.stream().
collect(Collectors.
toMap(PvTerminalTreeVO::getId,
PvTerminalTreeVO::getName));
List<String> collect = rGeneralSurveyPlanPOS.stream ( ).map (RGeneralSurveyPlanPO::getPlanNo).collect (Collectors.toList ( ));
LambdaQueryWrapper<RGeneralSurveyPlanDetail> lambdaQueryWrapper = new LambdaQueryWrapper<> ();
lambdaQueryWrapper.in (RGeneralSurveyPlanDetail::getPlanNo, collect);
List<RGeneralSurveyPlanDetail> rGeneralSurveyPlanDetails = rGeneralSurveyPlanDetailMapper.selectList (lambdaQueryWrapper);
List<RGeneralSurveyPlanVO> rGeneralSurveyPlanVOList = new ArrayList<> ();
rGeneralSurveyPlanPOS.forEach (temp ->{
RGeneralSurveyPlanVO rGeneralSurveyPlanVO = new RGeneralSurveyPlanVO();
BeanUtils.copyProperties (temp, rGeneralSurveyPlanVO);
long Busbarcount = rGeneralSurveyPlanDetails.stream ( ).
filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
map (RGeneralSurveyPlanDetail::getBusbarId).distinct ( ).count ( );
long Subcount = rGeneralSurveyPlanDetails.stream ( ).
filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
map (RGeneralSurveyPlanDetail::getSubId).distinct ( ).count ( );
rGeneralSurveyPlanVO.setBusCount (Busbarcount);
rGeneralSurveyPlanVO.setSubCount (Subcount);
List<RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO> collect1 = rGeneralSurveyPlanDetails.stream ( ).
filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
map (surveyPlanDetail -> {
RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO rGeneralSurveyPlanDetailVO = new RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO ( );
BeanUtils.copyProperties (surveyPlanDetail, rGeneralSurveyPlanDetailVO);
return rGeneralSurveyPlanDetailVO;
}).collect (Collectors.toList ( ));
rGeneralSurveyPlanVO.setOrgName(pvTerminalTreeVOMap.get(temp.getOrgNo())); //单位名称
rGeneralSurveyPlanVO.setRGeneralSurveyPlanDetailVOList (collect1);
rGeneralSurveyPlanVOList.add (rGeneralSurveyPlanVO);
});
returnpage.setRecords (rGeneralSurveyPlanVOList);
return returnpage;
}
/**
* @param surveyResultUploadParam
* @Description: surveyResultUpload
* @Param: [surveyResultUploadParam]
* @return: boolean
* @Author: clam
* @Date: 2022/11/18
*/
@Override
public boolean surveyResultUpload(SurveyResultUploadParam surveyResultUploadParam) {
boolean result = true;
RGeneralSurveyPlanPO rGeneralSurveyPlanPO = new RGeneralSurveyPlanPO();
rGeneralSurveyPlanPO.setPlanNo (surveyResultUploadParam.getPlanId ());
rGeneralSurveyPlanPO = this.selectByMultiId (rGeneralSurveyPlanPO);
String filePath =rGeneralSurveyPlanPO.getFilePath ();
Integer fileCount = rGeneralSurveyPlanPO.getFileCount ( );
fileCount = Optional.ofNullable (fileCount).orElse (0);
for (int i = 0; i < surveyResultUploadParam.getFile ( ).length; i++) {
MinIoUploadResDTO minIoUploadResDTO = fileToMinio(surveyResultUploadParam.getFile ( )[i]);
filePath=filePath+minIoUploadResDTO.getMinFileName ()+";";
fileCount++;
}
rGeneralSurveyPlanPO.setStatus (4);
rGeneralSurveyPlanPO.setFileCount (fileCount);
rGeneralSurveyPlanPO.setFilePath (filePath);
rGeneralSurveyPlanPO.setIsFileUpload (1);
rGeneralSurveyPlanPO.setUploadTime (new Date ());
this.saveOrUpdateByMultiId (rGeneralSurveyPlanPO);
return result;
}
/**
* @param planNo
* @Description: surveyResultDownload
* @Param: [surveyResultUploadParam]
* @return: java.util.List<java.lang.String>
* @Author: clam
* @Date: 2022/11/18
*/
@Override
public List<MinIoUploadResDTO> surveyResultDownload(String planNo) {
RGeneralSurveyPlanPO rGeneralSurveyPlanPO = new RGeneralSurveyPlanPO();
rGeneralSurveyPlanPO.setPlanNo (planNo);
rGeneralSurveyPlanPO = this.selectByMultiId (rGeneralSurveyPlanPO);
String filePath = rGeneralSurveyPlanPO.getFilePath ( );
if(StringUtils.isEmpty (filePath)){
throw new BusinessException(ProcessResponseEnum.DOWNLOAD_FILE_ERROR);
}
String[] split = filePath.substring (0, filePath.length ( ) - 1).split (";");
List<MinIoUploadResDTO> collect = Stream.of (split).map (temp -> {
MinIoUploadResDTO dto = new MinIoUploadResDTO("",minIoUtils.getObjectUrl (minIoProperties.getBucket ( ), temp, 7 * 24 * 60 * 60));
return dto ;
}).collect (Collectors.toList ( ));
return collect;
}
/**
* @Description: exportSurveyPlan
* @Param: []
* @return: java.util.List<com.njcn.process.pojo.vo.SurveyPlanExcel>
* @Author: clam
* @Date: 2022/11/21
*/
@Override
public List<SurveyPlanExcel> exportSurveyPlan(List<String> planIdList) {
List<SurveyPlanExcel> surveyPlanExcels = new ArrayList<> ();
LambdaQueryWrapper<RGeneralSurveyPlanPO> queryWrapper = new LambdaQueryWrapper<> ();
queryWrapper.in (RGeneralSurveyPlanPO::getPlanNo,planIdList);
List<RGeneralSurveyPlanPO> rGeneralSurveyPlanPOS = rGeneralSurveyPlanPOMapper.selectList (queryWrapper);
LambdaQueryWrapper<RGeneralSurveyPlanDetail> lambdaQueryWrapper = new LambdaQueryWrapper<> ();
lambdaQueryWrapper.in (RGeneralSurveyPlanDetail::getPlanNo, planIdList);
List<RGeneralSurveyPlanDetail> rGeneralSurveyPlanDetails = rGeneralSurveyPlanDetailMapper.selectList (lambdaQueryWrapper);
//部门处理根据部门code取名称
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, String> pvTerminalTreeVOMap = dept.stream().
collect(Collectors.
toMap(PvTerminalTreeVO::getId,
PvTerminalTreeVO::getName));
rGeneralSurveyPlanPOS.forEach (temp->{
SurveyPlanExcel surveyPlanExcel = new SurveyPlanExcel();
BeanUtils.copyProperties (temp, surveyPlanExcel);
long Busbarcount = rGeneralSurveyPlanDetails.stream ( ).
filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
map (RGeneralSurveyPlanDetail::getBusbarId).distinct ( ).count ( );
long Subcount = rGeneralSurveyPlanDetails.stream ( ).
filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
map (RGeneralSurveyPlanDetail::getSubId).distinct ( ).count ( );
surveyPlanExcel.setBusCount (Busbarcount);
surveyPlanExcel.setSubCount (Subcount);
surveyPlanExcel.setOrgNo (pvTerminalTreeVOMap.get (surveyPlanExcel.getOrgNo ()));
surveyPlanExcels.add (surveyPlanExcel);
});
return surveyPlanExcels;
}
/**
* @param questionQueryParm
* @Description: querySurveyPlanOnQuestion
* @Param: [questionQueryParm]
* @return: java.util.List<com.njcn.process.pojo.vo.RGeneralSurveyPlanDetailOnQuestionVO>
* @Author: clam
* @Date: 2022/11/30
*/
@Override
public List<RGeneralSurveyPlanDetailOnQuestionVO> querySurveyPlanOnQuestion(SurveyPlanQuestionQueryParm questionQueryParm) {
List<RGeneralSurveyPlanDetailOnQuestionVO> rGeneralSurveyPlanDetailOnQuestionVOS = new ArrayList<> ();
rGeneralSurveyPlanDetailOnQuestionVOS =rGeneralSurveyPlanDetailMapper.querySurveyPlanOnQuestion(questionQueryParm);
return rGeneralSurveyPlanDetailOnQuestionVOS;
}
/**
* @param questionQueryParm
* @Description: 更具questionQueryParm查计划名称
* @Param: [questionQueryParm]
* @return: java.util.List<com.njcn.process.pojo.param.SurveyPlanQuestionQueryParm>
* @Author: clam
* @Date: 2022/12/1
*/
@Override
public List<RGeneralSurveyPlanPO> querySurveyPlanName(SurveyPlanQuestionQueryParm questionQueryParm) {
List<String> data = deptFeignClient.getDepSonIdtByDeptId (questionQueryParm.getOrgNo ()).getData ( );
QueryWrapper<RGeneralSurveyPlanPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.select ("plan_name").
in ("org_no", data).
eq ("DATE_FORMAT(upload_time, '%Y-%m')", new SimpleDateFormat ("yyyy-MM").
format (questionQueryParm.getPlanStartTime ()));
List<RGeneralSurveyPlanPO> list = this.list (queryWrapper);
return list;
}
/**
* 上传文件到Minio
*
* @param file 文件
* @return 成功标记
*/
private MinIoUploadResDTO fileToMinio(MultipartFile file) {
try {
//把名称存入数据
MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "surveyresult/");
return upload;
} catch (Exception e) {
throw new BusinessException (ProcessResponseEnum.UPLOAD_FILE_ERROR);
}
}
}