diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/PmsTemProcessReportFeignClient.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/PmsTemProcessReportFeignClient.java new file mode 100644 index 000000000..8c7c0b39c --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/PmsTemProcessReportFeignClient.java @@ -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 dayCalReport() ; + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/fallback/PmsTemProcessReportFallbackFactory.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/fallback/PmsTemProcessReportFallbackFactory.java new file mode 100644 index 000000000..a9175c0c2 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/fallback/PmsTemProcessReportFallbackFactory.java @@ -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 { + @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 dayCalReport() { + log.error("{}异常,降级处理,异常为:{}", "电能质量全过程月报", throwable.toString()); + return new HttpResult<>(CommonResponseEnum.FAIL.getCode(),CommonResponseEnum.FAIL.getMessage()); + } + + }; + } +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/PmsTemProcessReport.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/PmsTemProcessReport.java index bf311b271..5a1ead876 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/PmsTemProcessReport.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/PmsTemProcessReport.java @@ -25,6 +25,7 @@ public class PmsTemProcessReport{ /** * uuid */ + @TableId(value = "obj_id", type = IdType.ASSIGN_UUID) private String objId; /** diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessReportServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessReportServiceImpl.java index ff51f9fc7..84a1dfd9d 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessReportServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessReportServiceImpl.java @@ -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 data = deptFeignClient.allDeptList().getData(); - data = data.stream().filter(temp -> Objects.equals(temp.getLevel(), 2)).collect(Collectors.toList()); - - data.forEach(province->{ + List 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 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 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 queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(PmsTemProcessReport::getStatisticalDate,statisticalDate); + this.remove(queryWrapper); + this.saveBatch(pmsTemProcessReportList); return true; } + + private List getChildren(PvTerminalTreeVO temp, List 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()); + } } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/SysDicTreePOServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/SysDicTreePOServiceImpl.java index b0c8e94a6..091b7e54d 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/SysDicTreePOServiceImpl.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/SysDicTreePOServiceImpl.java @@ -98,7 +98,7 @@ public class SysDicTreePOServiceImpl extends ServiceImpl queryByPid(String pid) { List collect = new ArrayList<>(); LambdaQueryWrapper 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 resultList = this.list(query); SysDicTreePO byId = this.getById(pid); diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/hbPushGw/PmsTemProcessReportRunner.java b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/hbPushGw/PmsTemProcessReportRunner.java new file mode 100644 index 000000000..9c46fd4d9 --- /dev/null +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/hbPushGw/PmsTemProcessReportRunner.java @@ -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(); + } +}