添加电能质量全过程月报
功能及其批处理任务
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
package com.njcn.harmonic.api;
|
||||
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.constant.ServerInfo;
|
||||
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.harmonic.api.fallback.PmsTemProcessReportFallbackFactory;
|
||||
import com.njcn.harmonic.api.fallback.UploadGwDataFallbackFactory;
|
||||
import com.njcn.harmonic.pojo.param.UploadDataParam;
|
||||
import com.njcn.harmonic.pojo.param.UploadParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
/**
|
||||
* @author xuyang
|
||||
*/
|
||||
@FeignClient(
|
||||
value = ServerInfo.HARMONIC,
|
||||
path = "/process/pmsTemProcessReport",
|
||||
fallbackFactory = PmsTemProcessReportFallbackFactory.class,
|
||||
contextId = "pmsTemProcessReport")
|
||||
public interface PmsTemProcessReportFeignClient {
|
||||
|
||||
|
||||
|
||||
@PostMapping("/dayCalReport")
|
||||
HttpResult<Boolean> dayCalReport() ;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.njcn.harmonic.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.harmonic.api.PmsTemProcessReportFeignClient;
|
||||
import com.njcn.harmonic.api.UploadGwDataFeignClient;
|
||||
import com.njcn.harmonic.pojo.param.UploadDataParam;
|
||||
import com.njcn.harmonic.pojo.param.UploadParam;
|
||||
import com.njcn.harmonic.utils.HarmonicEnumUtil;
|
||||
import feign.hystrix.FallbackFactory;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author xuyang
|
||||
* @version 1.0.0
|
||||
* @date 2023年12月15日 13:50
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class PmsTemProcessReportFallbackFactory implements FallbackFactory<PmsTemProcessReportFeignClient> {
|
||||
@Override
|
||||
public PmsTemProcessReportFeignClient create(Throwable throwable) {
|
||||
//判断抛出异常是否为解码器抛出的业务异常
|
||||
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
|
||||
if (throwable.getCause() instanceof BusinessException) {
|
||||
BusinessException businessException = (BusinessException) throwable.getCause();
|
||||
exceptionEnum = HarmonicEnumUtil.getExceptionEnum(businessException.getResult());
|
||||
}
|
||||
Enum<?> finalExceptionEnum = exceptionEnum;
|
||||
return new PmsTemProcessReportFeignClient() {
|
||||
|
||||
|
||||
@Override
|
||||
public HttpResult<Boolean> dayCalReport() {
|
||||
log.error("{}异常,降级处理,异常为:{}", "电能质量全过程月报", throwable.toString());
|
||||
return new HttpResult<>(CommonResponseEnum.FAIL.getCode(),CommonResponseEnum.FAIL.getMessage());
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,7 @@ public class PmsTemProcessReport{
|
||||
/**
|
||||
* uuid
|
||||
*/
|
||||
@TableId(value = "obj_id", type = IdType.ASSIGN_UUID)
|
||||
private String objId;
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.njcn.web.utils.GwSendUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
@@ -110,9 +111,12 @@ public class PmsTemProcessReportServiceImpl extends ServiceImpl<PmsTemProcessRep
|
||||
|
||||
List<PvTerminalTreeVO> data = deptFeignClient.allDeptList().getData();
|
||||
|
||||
data = data.stream().filter(temp -> Objects.equals(temp.getLevel(), 2)).collect(Collectors.toList());
|
||||
|
||||
data.forEach(province->{
|
||||
List<PvTerminalTreeVO> collect = data.stream().filter(temp -> Objects.equals(temp.getLevel(), 2))
|
||||
.peek(item -> {
|
||||
item.setLevel(2);
|
||||
item.setChildren(getChildren(item, data));
|
||||
}).collect(Collectors.toList());
|
||||
collect.forEach(province->{
|
||||
province.getChildren().forEach(city->{
|
||||
PmsTemProcessReport pmsTemProcessReport = new PmsTemProcessReport();
|
||||
pmsTemProcessReport.setProvinceOrg(province.getCode());
|
||||
@@ -139,115 +143,139 @@ public class PmsTemProcessReportServiceImpl extends ServiceImpl<PmsTemProcessRep
|
||||
pmsTemProcessReport.setNewUserCount(list.size());
|
||||
|
||||
List<String> userIds = list.stream().map(PmsTemUserPO::getObjId).collect(Collectors.toList());
|
||||
if(CollectionUtils.isEmpty(userIds)){
|
||||
|
||||
//规划可研阶段
|
||||
Integer auditCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
pmsTemProcessReport.setReportAuditNum(0);
|
||||
pmsTemProcessReport.setReportAuditCount(0);
|
||||
pmsTemProcessReport.setApprovalAuditNum(0);
|
||||
pmsTemProcessReport.setApprovalAuditCount(0);
|
||||
pmsTemProcessReport.setApprovalProblemNum(0);
|
||||
pmsTemProcessReport.setApprovalProblemCount(0);
|
||||
pmsTemProcessReport.setApprovalRectificationProblemNum(0);
|
||||
pmsTemProcessReport.setApprovalRectificationProblemCount(0);
|
||||
pmsTemProcessReport.setTestRunUserCount(0);
|
||||
pmsTemProcessReport.setTestRunOvUserNum(0);
|
||||
pmsTemProcessReport.setTestRunOvUserRate(BigDecimal.valueOf(0.00));
|
||||
pmsTemProcessReport.setRunUserCount(0);
|
||||
pmsTemProcessReport.setRunOvUserNum(0);
|
||||
pmsTemProcessReport.setRunOvUserRate(BigDecimal.valueOf(0.00));
|
||||
|
||||
|
||||
}else {
|
||||
//规划可研阶段
|
||||
Integer auditCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
// .eq(PmsTemProcessTrackPO::getProStage,"01")
|
||||
.between(PmsTemProcessTrackPO::getAuditFinalTime, beginTime, endTime)
|
||||
.count();
|
||||
.between(PmsTemProcessTrackPO::getAuditFinalTime, beginTime, endTime)
|
||||
.count();
|
||||
|
||||
Integer allAuditCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
Integer allAuditCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
// .eq(PmsTemProcessTrackPO::getProStage,"01")
|
||||
// .between(PmsTemProcessTrackPO::getAuditFinalTime, beginTime, endTime)
|
||||
.isNotNull(PmsTemProcessTrackPO::getAuditFinalTime)
|
||||
.count();
|
||||
pmsTemProcessReport.setReportAuditNum(auditCount);
|
||||
pmsTemProcessReport.setReportAuditCount(allAuditCount);
|
||||
.isNotNull(PmsTemProcessTrackPO::getAuditFinalTime)
|
||||
.count();
|
||||
pmsTemProcessReport.setReportAuditNum(auditCount);
|
||||
pmsTemProcessReport.setReportAuditCount(allAuditCount);
|
||||
|
||||
//规划验收
|
||||
Integer approvalAuditNum = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
//规划验收
|
||||
Integer approvalAuditNum = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
// .eq(PmsTemProcessTrackPO::getProStage,"01")
|
||||
.between(PmsTemProcessTrackPO::getApprovalTime, beginTime, endTime)
|
||||
.count();
|
||||
Integer approvalAuditCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.between(PmsTemProcessTrackPO::getApprovalTime, beginTime, endTime)
|
||||
.count();
|
||||
Integer approvalAuditCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
// .eq(PmsTemProcessTrackPO::getProStage,"01")
|
||||
// .between(PmsTemProcessTrackPO::getAuditFinalTime, beginTime, endTime)
|
||||
.isNotNull(PmsTemProcessTrackPO::getApprovalTime)
|
||||
.count();
|
||||
pmsTemProcessReport.setApprovalAuditNum(approvalAuditNum);
|
||||
pmsTemProcessReport.setApprovalAuditCount(approvalAuditCount);
|
||||
.isNotNull(PmsTemProcessTrackPO::getApprovalTime)
|
||||
.count();
|
||||
pmsTemProcessReport.setApprovalAuditNum(approvalAuditNum);
|
||||
pmsTemProcessReport.setApprovalAuditCount(approvalAuditCount);
|
||||
|
||||
Integer approvalProblemNum = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getApprovalResult,"01")
|
||||
Integer approvalProblemNum = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getApprovalResult,"01")
|
||||
// .eq(PmsTemProcessTrackPO::getProStage,"01")
|
||||
.between(PmsTemProcessTrackPO::getApprovalTime, beginTime, endTime)
|
||||
.count();
|
||||
Integer approvalProblemCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getApprovalResult,"01")
|
||||
.between(PmsTemProcessTrackPO::getApprovalTime, beginTime, endTime)
|
||||
.count();
|
||||
Integer approvalProblemCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getApprovalResult,"01")
|
||||
// .eq(PmsTemProcessTrackPO::getProStage,"01")
|
||||
// .between(PmsTemProcessTrackPO::getAuditFinalTime, beginTime, endTime)
|
||||
.isNotNull(PmsTemProcessTrackPO::getApprovalTime)
|
||||
.count();
|
||||
pmsTemProcessReport.setApprovalProblemNum(approvalProblemNum);
|
||||
pmsTemProcessReport.setApprovalProblemCount(approvalProblemCount);
|
||||
.isNotNull(PmsTemProcessTrackPO::getApprovalTime)
|
||||
.count();
|
||||
pmsTemProcessReport.setApprovalProblemNum(approvalProblemNum);
|
||||
pmsTemProcessReport.setApprovalProblemCount(approvalProblemCount);
|
||||
|
||||
Integer approvalRectificationProblemNum = pmsTemProcessApprovalService.lambdaQuery()
|
||||
.in(PmsTemProcessApproval::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessApproval::getRectificationStatus, "02")
|
||||
Integer approvalRectificationProblemNum = pmsTemProcessApprovalService.lambdaQuery()
|
||||
.in(PmsTemProcessApproval::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessApproval::getRectificationStatus, "02")
|
||||
// .eq(PmsTemProcessTrackPO::getProStage,"01")
|
||||
.between(PmsTemProcessApproval::getRectificationTime, beginTime, endTime)
|
||||
.count();
|
||||
.between(PmsTemProcessApproval::getRectificationTime, beginTime, endTime)
|
||||
.count();
|
||||
|
||||
Integer approvalRectificationProblemCount = pmsTemProcessApprovalService.lambdaQuery()
|
||||
.in(PmsTemProcessApproval::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessApproval::getRectificationStatus, "02")
|
||||
Integer approvalRectificationProblemCount = pmsTemProcessApprovalService.lambdaQuery()
|
||||
.in(PmsTemProcessApproval::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessApproval::getRectificationStatus, "02")
|
||||
// .eq(PmsTemProcessTrackPO::getProStage,"01")
|
||||
// .between(PmsTemProcessApproval::getRectificationTime, beginTime, endTime)
|
||||
.count();
|
||||
.count();
|
||||
|
||||
pmsTemProcessReport.setApprovalRectificationProblemNum(approvalRectificationProblemNum);
|
||||
pmsTemProcessReport.setApprovalRectificationProblemCount(approvalRectificationProblemCount);
|
||||
pmsTemProcessReport.setApprovalRectificationProblemNum(approvalRectificationProblemNum);
|
||||
pmsTemProcessReport.setApprovalRectificationProblemCount(approvalRectificationProblemCount);
|
||||
|
||||
//试运行
|
||||
Integer testRunUserCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getProStage,"03")
|
||||
.between(PmsTemProcessTrackPO::getMonitorDate, beginTime, endTime)
|
||||
.count();
|
||||
Integer testRunOvUserNum = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getProStage,"03")
|
||||
.eq(PmsTemProcessTrackPO::getTestIsOv,"01")
|
||||
.between(PmsTemProcessTrackPO::getMonitorDate, beginTime, endTime)
|
||||
.count();
|
||||
pmsTemProcessReport.setTestRunUserCount(testRunUserCount);
|
||||
pmsTemProcessReport.setTestRunOvUserNum(testRunOvUserNum);
|
||||
pmsTemProcessReport.setTestRunOvUserRate(BigDecimal.valueOf(Double.valueOf(testRunOvUserNum*100)/testRunOvUserNum).setScale(2));
|
||||
//试运行
|
||||
Integer testRunUserCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getProStage,"03")
|
||||
.between(PmsTemProcessTrackPO::getMonitorDate, beginTime, endTime)
|
||||
.count();
|
||||
Integer testRunOvUserNum = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getProStage,"03")
|
||||
.eq(PmsTemProcessTrackPO::getTestIsOv,"01")
|
||||
.between(PmsTemProcessTrackPO::getMonitorDate, beginTime, endTime)
|
||||
.count();
|
||||
pmsTemProcessReport.setTestRunUserCount(testRunUserCount);
|
||||
pmsTemProcessReport.setTestRunOvUserNum(testRunOvUserNum);
|
||||
pmsTemProcessReport.setTestRunOvUserRate(BigDecimal.valueOf(Double.valueOf(testRunOvUserNum*100)/testRunOvUserNum).setScale(2));
|
||||
|
||||
Integer runUserCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getProStage,"04")
|
||||
.between(PmsTemProcessTrackPO::getOperateDate, beginTime, endTime)
|
||||
.count();
|
||||
Integer runOvUserNum = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getProStage,"04")
|
||||
.isNotNull(PmsTemProcessTrackPO::getOvIndexs)
|
||||
.between(PmsTemProcessTrackPO::getOperateDate, beginTime, endTime)
|
||||
.count();
|
||||
Integer runUserCount = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getProStage,"04")
|
||||
.between(PmsTemProcessTrackPO::getOperateDate, beginTime, endTime)
|
||||
.count();
|
||||
Integer runOvUserNum = iPmsTemProcessTrackService.lambdaQuery()
|
||||
.in(PmsTemProcessTrackPO::getTempUserDossierId, userIds)
|
||||
.eq(PmsTemProcessTrackPO::getProStage,"04")
|
||||
.isNotNull(PmsTemProcessTrackPO::getOvIndexs)
|
||||
.between(PmsTemProcessTrackPO::getOperateDate, beginTime, endTime)
|
||||
.count();
|
||||
|
||||
|
||||
pmsTemProcessReport.setRunUserCount(runUserCount);
|
||||
pmsTemProcessReport.setRunOvUserNum(runOvUserNum);
|
||||
pmsTemProcessReport.setRunOvUserRate(BigDecimal.valueOf(Double.valueOf(runOvUserNum*100)/runUserCount).setScale(2));
|
||||
pmsTemProcessReport.setRunUserCount(runUserCount);
|
||||
pmsTemProcessReport.setRunOvUserNum(runOvUserNum);
|
||||
pmsTemProcessReport.setRunOvUserRate(BigDecimal.valueOf(Double.valueOf(runOvUserNum*100)/runUserCount).setScale(2));
|
||||
|
||||
|
||||
}
|
||||
pmsTemProcessReportList.add(pmsTemProcessReport);
|
||||
|
||||
});
|
||||
});
|
||||
pmsTemProcessReportList.forEach(temp->{
|
||||
QueryWrapper<PmsTemProcessReport> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(PmsTemProcessReport::getProvinceOrg,temp.getProvinceOrg())
|
||||
.eq(PmsTemProcessReport::getCityOrg,temp.getCityOrg())
|
||||
.eq(PmsTemProcessReport::getStatisticalDate,temp.getStatisticalDate());
|
||||
this.update(temp,queryWrapper);
|
||||
});
|
||||
QueryWrapper<PmsTemProcessReport> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(PmsTemProcessReport::getStatisticalDate,statisticalDate);
|
||||
this.remove(queryWrapper);
|
||||
this.saveBatch(pmsTemProcessReportList);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private List<PvTerminalTreeVO> getChildren(PvTerminalTreeVO temp, List<PvTerminalTreeVO> all) {
|
||||
return all.stream().filter(item -> item.getPid().equals(temp.getId())).peek(item -> {
|
||||
item.setLevel(temp.getLevel() + 1);
|
||||
item.setChildren(getChildren(item, all));
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public class SysDicTreePOServiceImpl extends ServiceImpl<SysDicTreePOMapper, Sys
|
||||
public List<DictTreeVO> queryByPid(String pid) {
|
||||
List<DictTreeVO> collect = new ArrayList<>();
|
||||
LambdaQueryWrapper<SysDicTreePO> query = new LambdaQueryWrapper<>();
|
||||
query.eq(SysDicTreePO::getPid, pid).eq(SysDicTreePO::getStatus, "0");
|
||||
query.eq(SysDicTreePO::getPid, pid).eq(SysDicTreePO::getStatus, "0").orderByDesc(SysDicTreePO::getSort);
|
||||
List<SysDicTreePO> resultList = this.list(query);
|
||||
|
||||
SysDicTreePO byId = this.getById(pid);
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.njcn.system.timer.tasks.hbPushGw;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.njcn.harmonic.api.PmsTemProcessReportFeignClient;
|
||||
import com.njcn.harmonic.api.UploadGwDataFeignClient;
|
||||
import com.njcn.harmonic.pojo.param.UploadDataParam;
|
||||
import com.njcn.system.timer.TimerTaskRunner;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/10/29 14:07【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class PmsTemProcessReportRunner implements TimerTaskRunner {
|
||||
private final PmsTemProcessReportFeignClient pmsTemProcessReportFeignClient;
|
||||
|
||||
@Override
|
||||
public void action(String date) {
|
||||
|
||||
pmsTemProcessReportFeignClient.dayCalReport();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user