diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadDataLogController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadDataLogController.java index 72919b57b..e6f61250a 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadDataLogController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadDataLogController.java @@ -1,6 +1,26 @@ package com.njcn.harmonic.controller.upload; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.common.pojo.annotation.OperateInfo; +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.common.utils.LogUtil; +import com.njcn.harmonic.pojo.param.UploadDataParam; +import com.njcn.harmonic.pojo.po.upload.RUploadDataLog; +import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo; +import com.njcn.harmonic.service.upload.IRUploadDataLogService; +import com.njcn.harmonic.service.upload.impl.RUploadDataLogServiceImpl; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -16,7 +36,26 @@ import com.njcn.web.controller.BaseController; */ @RestController @RequestMapping("/rUploadDataLog") +@RequiredArgsConstructor +@Api(tags = "上送国网日志管理") public class RUploadDataLogController extends BaseController { + private final IRUploadDataLogService rUploadDataLogService; + + /** + * 获取上送日志 + * @author cdf + * @date 2024/6/12 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getList") + @ApiOperation("查询国网上送数据日志") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public HttpResult> getList(@RequestBody BaseParam baseParam) { + String methodDescribe = getMethodDescribe("getList"); + Page list = rUploadDataLogService.getList(baseParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java index cc3c42143..367846c09 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.text.StrBuilder; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -17,8 +18,10 @@ import com.njcn.harmonic.pojo.param.SendQueryParam; import com.njcn.harmonic.pojo.param.UploadDataParam; import com.njcn.harmonic.pojo.param.UploadParam; import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO; +import com.njcn.harmonic.pojo.po.upload.RUploadDataLog; import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD; import com.njcn.harmonic.service.send.PqTypicalSourceCreatePOService; +import com.njcn.harmonic.service.upload.IRUploadDataLogService; import com.njcn.user.api.DeptFeignClient; import com.njcn.user.pojo.po.Dept; import com.njcn.web.enums.GWSendEnum; @@ -29,10 +32,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.ListUtils; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -51,6 +58,8 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl queryPage(SendQueryParam.SendPageParam param) { Page page = new Page<> (param.getPageNum ( ), param.getPageSize ( )); @@ -128,6 +137,8 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl list; //指定数据上送,不管之前有没有上送,都重新上送一次 @@ -161,10 +172,23 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl trIds = dtoList.stream().map(PqTypicalSourceCreateDTO::getId).distinct().collect(Collectors.toList()); returnInformation(1, trIds, send); }); + + assUploadLog(localDate,new StrBuilder("典型源荷指标统计上送成功"),new AtomicBoolean(true)); return "成功"; } + private void assUploadLog(LocalDate statisticDate, StrBuilder msg, AtomicBoolean resultFlag){ + RUploadDataLog rUploadDataLog = new RUploadDataLog(); + rUploadDataLog.setStatisticDate(statisticDate); + rUploadDataLog.setBigType(0); + rUploadDataLog.setSmallType(3); + rUploadDataLog.setCreateTime(LocalDateTime.now()); + rUploadDataLog.setResult(resultFlag.get()?1:0); + rUploadDataLog.setResultMsg(msg.toString()); + irUploadDataLogService.saveOrUpdateByMultiId(rUploadDataLog); + } + /** * 国网上送返回信息 * diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IRUploadDataLogService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IRUploadDataLogService.java index 7efb7ba79..58b65e248 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IRUploadDataLogService.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IRUploadDataLogService.java @@ -1,9 +1,13 @@ package com.njcn.harmonic.service.upload; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.common.pojo.response.HttpResult; import com.njcn.harmonic.pojo.po.upload.RUploadDataLog; +import com.njcn.web.pojo.param.BaseParam; +import org.springframework.web.bind.annotation.RequestBody; /** *

@@ -15,4 +19,7 @@ import com.njcn.harmonic.pojo.po.upload.RUploadDataLog; */ public interface IRUploadDataLogService extends IMppService { + + Page getList(BaseParam baseParam); + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PointStatisticalDataServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PointStatisticalDataServiceImpl.java index dd38fa812..e81b3d74e 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PointStatisticalDataServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PointStatisticalDataServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.text.StrBuilder; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -15,9 +16,11 @@ import com.njcn.harmonic.mapper.upload.RUploadPointStatisticalDataDMapper; import com.njcn.harmonic.pojo.dto.upload.MonitorStatisticalDTO; import com.njcn.harmonic.pojo.param.UploadDataParam; import com.njcn.harmonic.pojo.param.UploadParam; +import com.njcn.harmonic.pojo.po.upload.RUploadDataLog; import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD; import com.njcn.harmonic.pojo.vo.upload.UploadPointStatisticalDataVo; import com.njcn.harmonic.service.upload.IPointStatisticalDataService; +import com.njcn.harmonic.service.upload.IRUploadDataLogService; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.pojo.po.DictData; @@ -32,10 +35,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.ListUtils; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -52,6 +59,8 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl getPointStatisticalData(UploadDataParam param) { LambdaQueryWrapper lambdaQueryWrapper = getDeptLevel(param); @@ -71,6 +80,7 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.Station_Type.getCode()).getData(); Map dictDataMap = dictDataList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); @@ -94,6 +104,8 @@ public class PointStatisticalDataServiceImpl extends ServiceImplitem.setStationType(dictDataMap.get(item.getStationType()).getValue())).collect(Collectors.toList()); List> partition = ListUtils.partition(list, 100); + StrBuilder resultLog = new StrBuilder(); + AtomicBoolean resultFlag = new AtomicBoolean(true); //分片上传 for (int i = 0; i < partition.size(); i++) { List dtoList = BeanUtil.copyToList(partition.get(i), MonitorStatisticalDTO.class); @@ -104,8 +116,13 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl send = GwSendUtil.send(sp, GWSendEnum.STATISTICAL_CREATE); //获取返回结果 List l = dtoList.stream().map(MonitorStatisticalDTO::getId).collect(Collectors.toList()); - returnInformation(i,l,send); + returnInformation(i,l,send,resultLog,resultFlag,localDate); } + + if(resultFlag.get()){ + assUploadLog(localDate,resultLog,resultFlag); + } + return "上送成功:成功数据" + list.size() + "条"; } @@ -179,7 +196,9 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl ids, Map send) { + private void returnInformation(Integer step, List ids, Map send, StrBuilder resultLog, AtomicBoolean resultFlag, LocalDate localDate) { + int start = step * 100; + int end = (step+1) * 100; if (send.containsKey("succeed")) { String succeed = send.get("succeed"); if (succeed.contains("\\\"")) { @@ -193,17 +212,34 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl implements ISubstationStatisticalDataService { private final DeptFeignClient deptFeignClient; + + private final IRUploadDataLogService irUploadDataLogService; + @Override public Page getSubstationStatisticalData(UploadDataParam param) { LambdaQueryWrapper lambdaQueryWrapper = getDeptLevel(param); @@ -67,7 +75,6 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl list; //指定数据上送,不管之前有没有上送,都重新上送一次 //(预防之前上送过,修改数据后需要再次上送) @@ -87,7 +94,10 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl> partition = ListUtils.partition(list, 100); + StrBuilder resultLog = new StrBuilder(); + AtomicBoolean resultFlag = new AtomicBoolean(true); //分片上传 + LocalDate localDate = LocalDate.parse(partition.get(0).get(0).getComputeDate(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); for (int i = 0; i < partition.size(); i++) { List collect = partition.get(i).stream().peek(item -> { item.setStatisticalDate(item.getComputeDate().substring(0, 7)); @@ -100,11 +110,27 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl send = GwSendUtil.send(sp, GWSendEnum.SUBSTATION_MONITOR); //获取返回结果 List l = dtoList.stream().map(SubstationQualityStatisticsDTO::getId).collect(Collectors.toList()); - returnInformation(i,l,send); + returnInformation(i,l,send,resultLog,resultFlag,localDate); + } + + if(resultFlag.get()){ + assUploadLog(localDate,resultLog,resultFlag); } return "上送成功:成功数据" + list.size() + "条"; } + + private void assUploadLog(LocalDate statisticDate,StrBuilder msg,AtomicBoolean resultFlag){ + RUploadDataLog rUploadDataLog = new RUploadDataLog(); + rUploadDataLog.setStatisticDate(statisticDate); + rUploadDataLog.setBigType(0); + rUploadDataLog.setSmallType(2); + rUploadDataLog.setCreateTime(LocalDateTime.now()); + rUploadDataLog.setResult(resultFlag.get()?1:0); + rUploadDataLog.setResultMsg(msg.toString()); + irUploadDataLogService.saveOrUpdateByMultiId(rUploadDataLog); + } + /** * 获取当前单位的层级 */ @@ -176,7 +202,9 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl ids, Map send) { + private void returnInformation(Integer step, List ids, Map send, StrBuilder resultLog, AtomicBoolean resultFlag, LocalDate localDate) { + int start = step * 100; + int end = (step+1) * 100; if (send.containsKey("succeed")) { String succeed = send.get("succeed"); if (succeed.contains("\\\"")) { @@ -190,17 +218,24 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl implements IRUploadDataLogService { + @Override + public Page getList(BaseParam baseParam) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.between(RUploadDataLog::getCreateTime,baseParam.getSearchBeginTime(),baseParam.getSearchEndTime()) + .orderByDesc(RUploadDataLog::getStatisticDate); + if(StrUtil.isNotBlank(baseParam.getSearchValue())){ + lambdaQueryWrapper.eq(RUploadDataLog::getSmallType,Integer.parseInt(baseParam.getSearchValue())); + } + if(StrUtil.isNotBlank(baseParam.getSortBy())){ + lambdaQueryWrapper.eq(RUploadDataLog::getResult,Integer.parseInt(baseParam.getSortBy())); + } + return this.page(new Page<>(PageFactory.getPageNum(baseParam),PageFactory.getPageSize(baseParam)),lambdaQueryWrapper); + } } diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/SupvPlanVO.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/SupvPlanVO.java index d42290394..fe87feaba 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/SupvPlanVO.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/SupvPlanVO.java @@ -47,6 +47,8 @@ public class SupvPlanVO { */ private String planBelongOrg; + private String planBelongOrgName; + /** * 计划编制单位名字 */ diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvPlanServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvPlanServiceImpl.java index a18251910..76a225169 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvPlanServiceImpl.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvPlanServiceImpl.java @@ -3,6 +3,7 @@ package com.njcn.process.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; @@ -44,6 +45,7 @@ import com.njcn.web.utils.RequestUtil; import liquibase.pro.packaged.L; import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; +import org.joda.time.DateTimeUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -258,7 +260,7 @@ public class SupvPlanServiceImpl extends ServiceImpl i if (StrUtil.isNotBlank(supvPlanParam.getSupvOrgId())) { List deptIds = deptFeignClient.getDepSonSelfCodetByCode(supvPlanParam.getSupvOrgId()).getData(); lambdaQueryWrapper.in(SupvPlan::getSupvOrgId, deptIds) - .between(SupvPlan::getPlanSupvDate, supvPlanParam.getSearchBeginTime(),supvPlanParam.getSearchEndTime()) + .between(SupvPlan::getPlanSupvDate, DateUtil.parse(supvPlanParam.getSearchBeginTime(), DatePattern.NORM_DATE_PATTERN),DateUtil.parse(supvPlanParam.getSearchEndTime(), DatePattern.NORM_DATE_PATTERN)) .eq(StrUtil.isNotBlank(supvPlanParam.getSupvType()),SupvPlan::getSupvType,supvPlanParam.getSupvType()); } @@ -285,9 +287,11 @@ public class SupvPlanServiceImpl extends ServiceImpl i List userIds = supvPlanVOList.stream().map(SupvPlanVO::getPlanUserId).distinct().collect(Collectors.toList()); supvPlanVOList.forEach(item -> { PvTerminalTreeVO pvTerminalTreeVO = null; - if (mapCode.containsKey(item.getSupvOrgId())) { + + item.setSupvOrgName(mapCode.get(item.getSupvOrgId()).getName()); + if (mapCode.containsKey(item.getPlanBelongOrg())) { pvTerminalTreeVO = mapCode.get(item.getPlanBelongOrg()); - item.setSupvOrgName(pvTerminalTreeVO.getName()); + item.setPlanBelongOrgName(pvTerminalTreeVO.getName()); int deptLevel = pvTerminalTreeVO.getPids().split(StrUtil.COMMA).length; if (deptLevel == 2) { //省