1.监测指标数据质量问题汇总统计和专项分析-台账统计算法提交
This commit is contained in:
@@ -1,12 +1,17 @@
|
||||
package com.njcn.device.biz.commApi;
|
||||
|
||||
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.param.StatisticsBizBaseParam;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.device.biz.commApi.fallback.CommTerminalGeneralClientFallbackFactory;
|
||||
import com.njcn.device.biz.pojo.dto.*;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
||||
import com.njcn.device.biz.pojo.po.PqsDeviceUnit;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -155,6 +160,18 @@ public interface CommTerminalGeneralClient {
|
||||
|
||||
@GetMapping("/getMonitorDetail")
|
||||
HttpResult<LineDevGetDTO> getMonitorDetail(@RequestParam("lineId") String lineId);
|
||||
|
||||
/**
|
||||
* @Description: 专项分析台账统计
|
||||
* @param param
|
||||
* @Author: wr
|
||||
* @Date: 2023/10/13 14:05
|
||||
*/
|
||||
@PostMapping("/getStatisticsMonitor")
|
||||
HttpResult<List<StatisticsMonitor>> getStatisticsMonitor(@RequestBody StatisticsBizBaseParam param);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 用于返回pq 还是pms系统
|
||||
*
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.njcn.device.biz.commApi.fallback;
|
||||
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||
import com.njcn.device.biz.pojo.dto.*;
|
||||
@@ -130,6 +131,12 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpResult<List<StatisticsMonitor>> getStatisticsMonitor(StatisticsBizBaseParam param) {
|
||||
log.error("{}异常,降级处理,异常为:{}", "获取专项分析台账统计", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpResult<String> isPqOrPms() {
|
||||
log.error("{}异常,降级处理,异常为:{}", "返回pq还是pms系统", throwable.toString());
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.njcn.device.biz.pojo.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author wr
|
||||
* @description
|
||||
* @date 2023/10/13 9:54
|
||||
*/
|
||||
@Data
|
||||
public class StatisticsMonitor {
|
||||
|
||||
|
||||
@ApiModelProperty("组织机构ID(外键)")
|
||||
private String orgId;
|
||||
|
||||
@ApiModelProperty("电压等级(字典)")
|
||||
private String voltageLevel;
|
||||
|
||||
@ApiModelProperty("母线数量")
|
||||
private Integer generatrixSum;
|
||||
|
||||
@ApiModelProperty("线路总数")
|
||||
private Integer lineNum;
|
||||
|
||||
@ApiModelProperty("接入分布式光伏的线路总数")
|
||||
private Integer photovoltaicLineNum;
|
||||
|
||||
@ApiModelProperty("台区总数")
|
||||
private Integer platformNum;
|
||||
|
||||
@ApiModelProperty("光伏台区总数")
|
||||
private Integer photovoltaicCourtsNum;
|
||||
|
||||
@ApiModelProperty("光伏容量超过台区容量25%的台区总数")
|
||||
private Integer exceedCourtscapNum;
|
||||
|
||||
@ApiModelProperty("风电用户总数")
|
||||
private Integer windPowerNum;
|
||||
|
||||
@ApiModelProperty("光伏用户总数")
|
||||
private Integer pvNum;
|
||||
|
||||
@ApiModelProperty("冶炼负荷用户总数")
|
||||
private Integer smeltingLoadNum;
|
||||
|
||||
@ApiModelProperty("电气化铁路总数")
|
||||
private Integer electricTrackNum;
|
||||
|
||||
@ApiModelProperty("风电总装机容量")
|
||||
private Double windPowerCapacity;
|
||||
|
||||
@ApiModelProperty("光伏总装机容量")
|
||||
private Double pvCapacity;
|
||||
|
||||
@ApiModelProperty("冶炼负荷总装机容量")
|
||||
private Double smeltingLoadCapacity;
|
||||
|
||||
@ApiModelProperty("电气化铁路总装机容量")
|
||||
private Double electricTrackCapacity;
|
||||
}
|
||||
@@ -4,14 +4,14 @@ import cn.hutool.core.date.TimeInterval;
|
||||
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.exception.BusinessException;
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.device.biz.pojo.dto.StatisticsMonitor;
|
||||
import com.njcn.device.biz.pojo.dto.*;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
||||
import com.njcn.device.biz.pojo.po.PqsDeviceUnit;
|
||||
import com.njcn.device.pms.pojo.po.DistributionMonitor;
|
||||
import com.njcn.device.pms.pojo.po.Monitor;
|
||||
import com.njcn.device.pms.service.ledgerManger.CommTerminalService;
|
||||
import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService;
|
||||
@@ -29,7 +29,6 @@ import springfox.documentation.annotations.ApiIgnore;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author wr
|
||||
@@ -326,6 +325,15 @@ public class CommTerminalController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, lineDevGetDTO, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getStatisticsMonitor")
|
||||
@ApiOperation("专项分析台账统计")
|
||||
@ApiImplicitParam(name = "param", value = "实体", required = true)
|
||||
public HttpResult<List<StatisticsMonitor>> getStatisticsMonitor(@RequestBody StatisticsBizBaseParam param) {
|
||||
String methodDescribe = getMethodDescribe("getStatisticsMonitor");
|
||||
List<StatisticsMonitor> statisticsMonitor = commTerminalService.getStatisticsMonitor(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statisticsMonitor, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.njcn.device.pms.mapper.majornetwork;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.device.biz.pojo.dto.LineDTO;
|
||||
import com.njcn.device.pms.pojo.dto.PmsMonitorBaseDTO;
|
||||
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
|
||||
@@ -85,4 +86,13 @@ public interface MonitorMapper extends BaseMapper<Monitor> {
|
||||
* @Date: 2023/9/22 10:20
|
||||
*/
|
||||
LineDTO selectLineDetail(@Param("id")String id);
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @param param
|
||||
* @return: java.util.List<com.njcn.device.pms.pojo.po.Monitor>
|
||||
* @Author: wr
|
||||
* @Date: 2023/10/13 11:23
|
||||
*/
|
||||
List<Monitor> selectMonitorList(@Param("param") StatisticsBizBaseParam param);
|
||||
}
|
||||
|
||||
@@ -172,5 +172,27 @@
|
||||
WHERE
|
||||
pm.id = #{id}
|
||||
</select>
|
||||
<select id="selectMonitorList" resultType="com.njcn.device.pms.pojo.po.Monitor">
|
||||
SELECT
|
||||
pm.Id,
|
||||
pm.Org_Id,
|
||||
pm.Line_Id,
|
||||
pm.Voltage_Level,
|
||||
pm.Monitor_Tag,
|
||||
IFNULL(ps.capacity,0) AS standShortCapacity
|
||||
FROM
|
||||
pms_monitor pm
|
||||
LEFT JOIN pms_special_monitor ps ON ps.id = pm.id
|
||||
<where>
|
||||
and Status=1
|
||||
<if test="param.startTime != null and param.startTime != ''">
|
||||
AND DATE_FORMAT(Create_Time, '%Y-%m-%d') >= DATE_FORMAT(#{param.startTime}, '%Y-%m-%d')
|
||||
</if>
|
||||
<if test="param.endTime != null and param.endTime != ''">
|
||||
AND DATE_FORMAT(Create_Time, '%Y-%m-%d') <= DATE_FORMAT(#{param.endTime}, '%Y-%m-%d')
|
||||
</if>
|
||||
</where>
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.njcn.device.pms.service.ledgerManger;
|
||||
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.device.biz.pojo.dto.StatisticsMonitor;
|
||||
import com.njcn.device.biz.pojo.dto.*;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
|
||||
@@ -92,4 +94,5 @@ public interface CommTerminalService {
|
||||
|
||||
LineDevGetDTO getMonitorDetail(String monitorId);
|
||||
|
||||
List<StatisticsMonitor> getStatisticsMonitor(StatisticsBizBaseParam param);
|
||||
}
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
package com.njcn.device.pms.service.ledgerManger.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
import com.njcn.common.pojo.enums.common.ServerEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.common.utils.EnumUtils;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.device.biz.pojo.dto.StatisticsMonitor;
|
||||
import com.njcn.device.biz.pojo.dto.*;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
|
||||
@@ -23,7 +22,7 @@ import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
|
||||
import com.njcn.device.pms.pojo.po.*;
|
||||
import com.njcn.device.pms.service.ledgerManger.DeptLineService;
|
||||
import com.njcn.device.pms.service.ledgerManger.CommTerminalService;
|
||||
import com.njcn.redis.utils.RedisUtil;
|
||||
import com.njcn.device.pms.service.majornetwork.IPowerDistributionareaService;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.enums.DicDataTypeEnum;
|
||||
@@ -69,8 +68,6 @@ public class CommTerminalServiceImpl implements CommTerminalService {
|
||||
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
|
||||
private final RedisUtil redisUtil;
|
||||
|
||||
private final OverlimitMapper overlimitMapper;
|
||||
|
||||
private final PowerDistributionareaMapper powerDistributionareaMapper;
|
||||
@@ -78,6 +75,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
|
||||
private final PowerClientMapper powerClientMapper;
|
||||
|
||||
private final PowerGenerationUserMapper powerGenerationUserMapper;
|
||||
private final IPowerDistributionareaService iPowerDistributionareaService;
|
||||
|
||||
|
||||
/**
|
||||
@@ -601,4 +599,137 @@ public class CommTerminalServiceImpl implements CommTerminalService {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StatisticsMonitor> getStatisticsMonitor(StatisticsBizBaseParam param) {
|
||||
List<StatisticsMonitor> info=new ArrayList<>();
|
||||
//部门信息
|
||||
List<DeptDTO> deptInfos = deptFeignClient.getDeptDescendantIndexes(param.getId(), Stream.of(0, 1).collect(Collectors.toList())).getData();
|
||||
List<DictData> voltageList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
|
||||
List<Monitor> monitors = monitorMapper.selectMonitorList(param);
|
||||
|
||||
List<PowerDistributionarea> distributionList = iPowerDistributionareaService.list(new LambdaQueryWrapper<PowerDistributionarea>()
|
||||
.select(PowerDistributionarea::getId,
|
||||
PowerDistributionarea::getOrgId,
|
||||
PowerDistributionarea::getVoltageLevel,
|
||||
PowerDistributionarea::getApLoadType,
|
||||
PowerDistributionarea::getPhotovoltaicCapacity
|
||||
)
|
||||
.eq(PowerDistributionarea::getStatus, 1)
|
||||
.ge(StrUtil.isNotBlank(param.getStartTime()), PowerDistributionarea::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
|
||||
.le(StrUtil.isNotBlank(param.getEndTime()), PowerDistributionarea::getCreateTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime())))
|
||||
);
|
||||
List<DictData> dictDatas = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
|
||||
Map<String,String> map=new HashMap<>();
|
||||
for (DictData dictDatum : dictDatas) {
|
||||
if(DicDataEnum.ONSHORE_WIND.getCode().equals(dictDatum.getCode())){
|
||||
map.put("fd",dictDatum.getId());
|
||||
}
|
||||
if(DicDataEnum.POWER_STATION.getCode().equals(dictDatum.getCode())){
|
||||
map.put("gfdz",dictDatum.getId());
|
||||
}
|
||||
if(DicDataEnum.ELECTRIFIED_RAILWAYS.getCode().equals(dictDatum.getCode())){
|
||||
map.put("dq",dictDatum.getId());
|
||||
}
|
||||
if(DicDataEnum.SMELT_LOAD.getCode().equals(dictDatum.getCode())){
|
||||
map.put("yl",dictDatum.getId());
|
||||
}
|
||||
if(DicDataEnum.DISTRIBUTED_PHOTOVOLTAICS.getCode().equals(dictDatum.getCode())){
|
||||
map.put("gf",dictDatum.getId());
|
||||
}
|
||||
}
|
||||
// 过滤出传入id的子单位id
|
||||
List<DeptDTO> directDeptInfos = deptInfos.stream()
|
||||
.filter(deptDTO -> deptDTO.getPid().equals(param.getId()))
|
||||
.collect(Collectors.toList());
|
||||
List<Monitor> monitorsNew ;
|
||||
List<PowerDistributionarea> distributionNew;
|
||||
if (CollectionUtil.isEmpty(directDeptInfos)) {
|
||||
//没有直接子部门,获取当前部门所有信息
|
||||
List<DeptDTO> dept = deptInfos.stream()
|
||||
.filter(deptDTO -> deptDTO.getId().equals(param.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
monitorsNew = monitors.stream().filter(x -> x.getOrgId().equals(dept.get(0).getCode())).collect(Collectors.toList());
|
||||
distributionNew = distributionList.stream().filter(x -> x.getOrgId().equals(dept.get(0).getCode())).collect(Collectors.toList());
|
||||
statisticsMonitorAdd(Arrays.asList(dept.get(0).getCode()),voltageList,monitorsNew,distributionNew,map,info);
|
||||
} else {
|
||||
// 遍历子单位id
|
||||
for (DeptDTO deptDTO : directDeptInfos) {
|
||||
// 与全部单位id比较,取出上级为子单位id的集合
|
||||
List<DeptDTO> descendantDeptDTO = deptInfos.stream()
|
||||
.filter(d -> d.getPids().contains(deptDTO.getId()))
|
||||
.collect(Collectors.toList());
|
||||
//形成需要查询监测点的部门索引
|
||||
List<String> deptIdList = descendantDeptDTO.stream()
|
||||
.map(DeptDTO::getCode)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
deptIdList.add(deptDTO.getCode());
|
||||
monitorsNew = monitors.stream().filter(x->deptIdList.contains(x.getOrgId())).collect(Collectors.toList());
|
||||
distributionNew = distributionList.stream().filter(x -> deptIdList.contains(x.getOrgId())).collect(Collectors.toList());
|
||||
statisticsMonitorAdd(deptIdList,voltageList,monitorsNew,distributionNew,map,info);
|
||||
}
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
public List<StatisticsMonitor> statisticsMonitorAdd(List<String> deptIdList,List<DictData> voltageList ,List<Monitor> monitorsNew,List<PowerDistributionarea> list,Map<String,String> map,List<StatisticsMonitor> info){
|
||||
|
||||
Map<String, List<Monitor>> monitorMap = monitorsNew.stream().collect(Collectors.groupingBy(x -> x.getOrgId() + "_" + x.getVoltageLevel()));
|
||||
Map<String, List<PowerDistributionarea>> distributionMap = list.stream().collect(Collectors.groupingBy(x -> x.getOrgId() + "_" + x.getVoltageLevel()));
|
||||
|
||||
for (String s : deptIdList) {
|
||||
for (DictData dictData : voltageList) {
|
||||
StatisticsMonitor monitor=new StatisticsMonitor();
|
||||
monitor.setOrgId(s );
|
||||
monitor.setVoltageLevel(dictData.getId());
|
||||
monitor.setGeneratrixSum(0);
|
||||
String key = s + "_" + dictData.getId();
|
||||
if(monitorMap.containsKey(key)){
|
||||
List<Monitor> monitors = monitorMap.get(s + "_" + dictData.getId());
|
||||
monitor.setLineNum(Math.toIntExact(monitors.stream().map(Monitor::getLineId).distinct().count()));
|
||||
monitor.setPhotovoltaicLineNum(Math.toIntExact(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("gf"))).map(Monitor::getLineId).distinct().count()));
|
||||
monitor.setWindPowerNum(Math.toIntExact(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("fd"))).map(Monitor::getId).distinct().count()));
|
||||
monitor.setPvNum(Math.toIntExact(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("gfdz"))).map(Monitor::getId).distinct().count()));
|
||||
monitor.setSmeltingLoadNum(Math.toIntExact(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("yl"))).map(Monitor::getId).distinct().count()));
|
||||
monitor.setElectricTrackNum(Math.toIntExact(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("dq"))).map(Monitor::getId).distinct().count()));
|
||||
monitor.setWindPowerCapacity(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
|
||||
monitor.setPvCapacity(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
|
||||
monitor.setSmeltingLoadCapacity(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
|
||||
monitor.setElectricTrackCapacity(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
|
||||
|
||||
}else{
|
||||
monitor.setLineNum(0);
|
||||
monitor.setPhotovoltaicLineNum(0);
|
||||
monitor.setWindPowerNum(0);
|
||||
monitor.setPvNum(0);
|
||||
monitor.setSmeltingLoadNum(0);
|
||||
monitor.setElectricTrackNum(0);
|
||||
monitor.setWindPowerCapacity(0.0);
|
||||
monitor.setPvCapacity(00.0);
|
||||
monitor.setSmeltingLoadCapacity(0.0);
|
||||
monitor.setElectricTrackCapacity(0.0);
|
||||
|
||||
}
|
||||
if(distributionMap.containsKey(key)){
|
||||
List<PowerDistributionarea> distributionAreaList= distributionMap.get(key);
|
||||
int size = distributionAreaList.size();
|
||||
monitor.setPlatformNum(size);
|
||||
monitor.setPhotovoltaicCourtsNum(distributionAreaList.stream().filter(x->x.getApLoadType().equals(map.get("gf"))).map(PowerDistributionarea::getId).distinct().collect(Collectors.toList()).size());
|
||||
//获取分布式光伏总容量
|
||||
double sum = distributionAreaList.stream().mapToDouble(PowerDistributionarea::getPhotovoltaicCapacity).sum();
|
||||
double v = sum / size * 0.25;
|
||||
monitor.setExceedCourtscapNum(distributionAreaList.stream().filter(x->x.getPhotovoltaicCapacity()>v).distinct().collect(Collectors.toList()).size());
|
||||
}else{
|
||||
monitor.setPlatformNum(0);
|
||||
monitor.setPhotovoltaicCourtsNum(0);
|
||||
monitor.setExceedCourtscapNum(0);
|
||||
}
|
||||
info.add(monitor);
|
||||
}
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ 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.exception.BusinessException;
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.device.biz.pojo.dto.*;
|
||||
@@ -26,6 +27,7 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
@@ -312,5 +314,12 @@ public class CommTerminalController extends BaseController {
|
||||
}
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getStatisticsMonitor")
|
||||
@ApiOperation("专项分析台账统计")
|
||||
@ApiImplicitParam(name = "param", value = "实体", required = true)
|
||||
public HttpResult<List<StatisticsMonitor>> getStatisticsMonitor(@RequestBody StatisticsBizBaseParam param) {
|
||||
String methodDescribe = getMethodDescribe("getStatisticsMonitor");
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, new ArrayList<>(), methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.njcn.executor.handler;
|
||||
|
||||
import com.njcn.common.pojo.constant.BizParamConstant;
|
||||
import com.njcn.executor.utils.CommonExecutorUtils;
|
||||
import com.njcn.prepare.harmonic.api.newalgorithm.PmsStatisticsSpecialMonitorFeignClient;
|
||||
import com.njcn.prepare.harmonic.api.newalgorithm.RQualityParameterMFeignClient;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: pms算法
|
||||
* @Author: wr
|
||||
* @Date: 2023/10/13 15:02
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class RQualityParameterMJob {
|
||||
|
||||
private final RQualityParameterMFeignClient rQualityParameterMFeignClient;
|
||||
private final PmsStatisticsSpecialMonitorFeignClient pmsStatisticsSpecialMonitorFeignClient;
|
||||
|
||||
@XxlJob("rQualityParameterM")
|
||||
public void rQualityParameterM(){
|
||||
log.info(LocalDateTime.now()+"监测指标数据质量问题汇总统计调度开始------------------------");
|
||||
LineParam lineParam = new LineParam();
|
||||
lineParam.setType(Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH));
|
||||
lineParam.setDataDate(CommonExecutorUtils.prepareTimeDeal(BizParamConstant.STAT_BIZ_MONTH));
|
||||
lineParam.setDataSource(2);
|
||||
CommonExecutorUtils.commDefineDate(BizParamConstant.STAT_BIZ_MONTH,lineParam);
|
||||
rQualityParameterMFeignClient.handlerMonitorAbnormal(lineParam);
|
||||
}
|
||||
|
||||
@XxlJob("pmsStatisticsSpecialMonitor")
|
||||
public void pmsStatisticsSpecialMonitorHandler(){
|
||||
log.info(LocalDateTime.now()+"专项分析-台账统计调度开始------------------------");
|
||||
LineParam lineParam = new LineParam();
|
||||
lineParam.setType(Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH));
|
||||
lineParam.setDataDate(CommonExecutorUtils.prepareTimeDeal(BizParamConstant.STAT_BIZ_MONTH));
|
||||
lineParam.setDataSource(2);
|
||||
CommonExecutorUtils.commDefineDate(BizParamConstant.STAT_BIZ_MONTH,lineParam);
|
||||
pmsStatisticsSpecialMonitorFeignClient.pmsStatisticsSpecialMonitorHandler(lineParam);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.prepare.harmonic.api.newalgorithm;
|
||||
|
||||
|
||||
import com.njcn.common.pojo.constant.ServerInfo;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.prepare.harmonic.api.newalgorithm.fallback.RStatAbnormalFeignClientFallbackFactory;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
@org.springframework.cloud.openfeign.FeignClient(
|
||||
value = ServerInfo.PREPARE_BOOT,//对应模块名
|
||||
path = "/pmsStatisticsSpecialMonitor",//对应controller请求类
|
||||
fallbackFactory = RStatAbnormalFeignClientFallbackFactory.class//服务降级处理类
|
||||
)
|
||||
public interface PmsStatisticsSpecialMonitorFeignClient {
|
||||
|
||||
@ApiOperation("监测指标数据质量问题汇总统计(r_quality_parameter_m表数据)")
|
||||
@PostMapping("pmsStatisticsSpecialMonitorHandler")
|
||||
HttpResult<Boolean> pmsStatisticsSpecialMonitorHandler(@RequestBody LineParam jobParam );
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.prepare.harmonic.api.newalgorithm;
|
||||
|
||||
|
||||
import com.njcn.common.pojo.constant.ServerInfo;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.prepare.harmonic.api.newalgorithm.fallback.RStatAbnormalFeignClientFallbackFactory;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
@org.springframework.cloud.openfeign.FeignClient(
|
||||
value = ServerInfo.PREPARE_BOOT,//对应模块名
|
||||
path = "/rQualityParameterM",//对应controller请求类
|
||||
fallbackFactory = RStatAbnormalFeignClientFallbackFactory.class//服务降级处理类
|
||||
)
|
||||
public interface RQualityParameterMFeignClient {
|
||||
|
||||
@ApiOperation("监测指标数据质量问题汇总统计(r_quality_parameter_m表数据)")
|
||||
@PostMapping("rQualityParameterMHandler")
|
||||
HttpResult<Boolean> handlerMonitorAbnormal(@RequestBody LineParam jobParam );
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.njcn.prepare.harmonic.api.newalgorithm.fallback;
|
||||
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.prepare.harmonic.api.newalgorithm.PmsStatisticsSpecialMonitorFeignClient;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.utils.PrepareEnumUtil;
|
||||
import feign.hystrix.FallbackFactory;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class PmsStatisticsSpecialMonitorFeignClientFallbackFactory implements FallbackFactory<PmsStatisticsSpecialMonitorFeignClient> {
|
||||
@Override
|
||||
public PmsStatisticsSpecialMonitorFeignClient create(Throwable throwable) {
|
||||
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
|
||||
if (throwable.getCause() instanceof BusinessException) {
|
||||
BusinessException businessException = (BusinessException)throwable.getCause();
|
||||
exceptionEnum = PrepareEnumUtil.getExceptionEnum(businessException.getResult());
|
||||
}
|
||||
|
||||
Enum<?> finalExceptionEnum = exceptionEnum;
|
||||
return new PmsStatisticsSpecialMonitorFeignClient() {
|
||||
|
||||
@Override
|
||||
public HttpResult<Boolean> pmsStatisticsSpecialMonitorHandler(LineParam jobParam) {
|
||||
log.error("{}异常,降级处理,异常为:{}", "专项分析-台账统计(pms_statistics_special_monitor表数据): ", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.njcn.prepare.harmonic.api.newalgorithm.fallback;
|
||||
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.prepare.harmonic.api.newalgorithm.RQualityParameterMFeignClient;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.utils.PrepareEnumUtil;
|
||||
import feign.hystrix.FallbackFactory;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class RQualityParameterMFeignClientFallbackFactory implements FallbackFactory<RQualityParameterMFeignClient> {
|
||||
@Override
|
||||
public RQualityParameterMFeignClient create(Throwable throwable) {
|
||||
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
|
||||
if (throwable.getCause() instanceof BusinessException) {
|
||||
BusinessException businessException = (BusinessException)throwable.getCause();
|
||||
exceptionEnum = PrepareEnumUtil.getExceptionEnum(businessException.getResult());
|
||||
}
|
||||
|
||||
Enum<?> finalExceptionEnum = exceptionEnum;
|
||||
return new RQualityParameterMFeignClient() {
|
||||
|
||||
@Override
|
||||
public HttpResult<Boolean> handlerMonitorAbnormal(LineParam jobParam) {
|
||||
log.error("{}异常,降级处理,异常为:{}", "监测指标数据质量问题汇总统计(r_quality_parameter_m表数据): ", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
package com.njcn.prepare.harmonic.pojo.mysql;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||
import com.njcn.db.bo.BaseEntity;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author wr
|
||||
* @since 2023-10-13
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("pms_statistics_special_monitor")
|
||||
@ApiModel(value = "PmsStatisticsSpecialMonitor对象", description = "")
|
||||
public class PmsStatisticsSpecialMonitor {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("组织机构名称")
|
||||
@TableField("Org_Name")
|
||||
private String orgName;
|
||||
|
||||
@ApiModelProperty("组织机构ID(外键)")
|
||||
@MppMultiId("Org_Id")
|
||||
private String orgId;
|
||||
|
||||
@ApiModelProperty("电压等级(字典)")
|
||||
@MppMultiId("Voltage_Level")
|
||||
private String voltageLevel;
|
||||
|
||||
@ApiModelProperty("母线数量")
|
||||
@TableField("Generatrix_Sum")
|
||||
private Integer generatrixSum;
|
||||
|
||||
@ApiModelProperty("线路总数")
|
||||
@TableField("Line_Num")
|
||||
private Integer lineNum;
|
||||
|
||||
@ApiModelProperty("接入分布式光伏的线路总数")
|
||||
@TableField("Photovoltaic_Line_Num")
|
||||
private Integer photovoltaicLineNum;
|
||||
|
||||
@ApiModelProperty("台区总数")
|
||||
@TableField("Platform_Num")
|
||||
private Integer platformNum;
|
||||
|
||||
@ApiModelProperty("光伏台区总数")
|
||||
@TableField("Photovoltaic_Courts_Num")
|
||||
private Integer photovoltaicCourtsNum;
|
||||
|
||||
@ApiModelProperty("光伏容量超过台区容量25%的台区总数")
|
||||
@TableField("Exceed_Courtscap_Num")
|
||||
private Integer exceedCourtscapNum;
|
||||
|
||||
@ApiModelProperty("风电用户总数")
|
||||
@TableField("Wind_Power_Num")
|
||||
private Integer windPowerNum;
|
||||
|
||||
@ApiModelProperty("光伏用户总数")
|
||||
@TableField("Pv_Num")
|
||||
private Integer pvNum;
|
||||
|
||||
@ApiModelProperty("冶炼负荷用户总数")
|
||||
@TableField("Smelting_Load_Num")
|
||||
private Integer smeltingLoadNum;
|
||||
|
||||
@ApiModelProperty("电气化铁路总数")
|
||||
@TableField("Electric_Track_Num")
|
||||
private Integer electricTrackNum;
|
||||
|
||||
@ApiModelProperty("日期")
|
||||
@MppMultiId("Data_Date")
|
||||
private LocalDateTime dataDate;
|
||||
|
||||
@ApiModelProperty("数据状态:0-删除;1-正常; ")
|
||||
@TableField("Status")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("创建用户")
|
||||
@TableField("Create_By")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
|
||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty("更新用户")
|
||||
@TableField("Update_By")
|
||||
private String updateBy;
|
||||
|
||||
@ApiModelProperty("更新时间")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
|
||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@ApiModelProperty("风电总装机容量")
|
||||
@TableField("Wind_Power_Capacity")
|
||||
private Integer windPowerCapacity;
|
||||
|
||||
@ApiModelProperty("光伏总装机容量")
|
||||
@TableField("Pv_Capacity")
|
||||
private Integer pvCapacity;
|
||||
|
||||
@ApiModelProperty("冶炼负荷总装机容量")
|
||||
@TableField("Smelting_Load_Capacity")
|
||||
private Integer smeltingLoadCapacity;
|
||||
|
||||
@ApiModelProperty("电气化铁路总装机容量")
|
||||
@TableField("Electric_Track_Capacity")
|
||||
private Integer electricTrackCapacity;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.njcn.prepare.harmonic.controller.newalgorithm;
|
||||
|
||||
|
||||
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.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.IPmsStatisticsSpecialMonitorService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author wr
|
||||
* @since 2023-10-13
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/pmsStatisticsSpecialMonitor")
|
||||
@Api(tags = "专项分析-台账统计")
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class PmsStatisticsSpecialMonitorController extends BaseController {
|
||||
|
||||
private final IPmsStatisticsSpecialMonitorService pmsStatisticsSpecialMonitorService;
|
||||
|
||||
@ApiOperation("专项分析-台账统计(pms_statistics_special_monitor表数据)")
|
||||
@ApiImplicitParam(value = "jobParam", name = "jobParam", required = true)
|
||||
@PostMapping("pmsStatisticsSpecialMonitorHandler")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
|
||||
public HttpResult<Boolean> pmsStatisticsSpecialMonitorHandler(@RequestBody LineParam jobParam) {
|
||||
log.info(LocalDateTime.now() + "pmsStatisticsSpecialMonitorHandler开始执行");
|
||||
String methodDescribe = getMethodDescribe("pmsStatisticsSpecialMonitorHandler");
|
||||
pmsStatisticsSpecialMonitorService.pmsStatisticsSpecialMonitorHandler(jobParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.mysql.PmsStatisticsSpecialMonitor;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author wr
|
||||
* @since 2023-10-13
|
||||
*/
|
||||
public interface PmsStatisticsSpecialMonitorMapper extends MppBaseMapper<PmsStatisticsSpecialMonitor> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.PmsStatisticsSpecialMonitorMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.prepare.harmonic.pojo.mysql.PmsStatisticsSpecialMonitor;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author wr
|
||||
* @since 2023-10-13
|
||||
*/
|
||||
public interface IPmsStatisticsSpecialMonitorService extends IMppService<PmsStatisticsSpecialMonitor> {
|
||||
|
||||
/**
|
||||
* @Description: 专项分析-台账统计算法
|
||||
* @param jobParam
|
||||
* @Author: wr
|
||||
* @Date: 2023/10/13 14:02
|
||||
*/
|
||||
void pmsStatisticsSpecialMonitorHandler(LineParam jobParam);
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.common.utils.PubUtils;
|
||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetBase;
|
||||
import com.njcn.device.biz.pojo.dto.StatisticsMonitor;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.PmsStatisticsSpecialMonitorMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.mysql.PmsStatisticsSpecialMonitor;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.IPmsStatisticsSpecialMonitorService;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.po.Dept;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author wr
|
||||
* @since 2023-10-13
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class PmsStatisticsSpecialMonitorServiceImpl extends MppServiceImpl<PmsStatisticsSpecialMonitorMapper, PmsStatisticsSpecialMonitor> implements IPmsStatisticsSpecialMonitorService {
|
||||
|
||||
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
@Override
|
||||
@Async("asyncExecutor")
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public void pmsStatisticsSpecialMonitorHandler(LineParam jobParam) {
|
||||
List<PmsStatisticsSpecialMonitor> info=new ArrayList<>();
|
||||
Dept dept = deptFeignClient.getRootDept().getData();
|
||||
StatisticsBizBaseParam param=new StatisticsBizBaseParam();
|
||||
param.setId(dept.getId());
|
||||
param.setStartTime(jobParam.getBeginTime());
|
||||
param.setEndTime(jobParam.getEndTime());
|
||||
List<StatisticsMonitor> data = commTerminalGeneralClient.getStatisticsMonitor(param).getData();
|
||||
if(CollUtil.isNotEmpty(data)){
|
||||
DeptGetLineParam deptGetLineParam=new DeptGetLineParam();
|
||||
deptGetLineParam.setDeptId(dept.getId());
|
||||
List<DeptGetBase> deptGetBases = commTerminalGeneralClient.getDeptChildrenByParent(deptGetLineParam).getData();
|
||||
Map<String, String> deptName = deptGetBases.stream().collect(Collectors.toMap(DeptGetBase::getUnitId, DeptGetBase::getUnitName));
|
||||
for (StatisticsMonitor datum : data) {
|
||||
if(deptName.containsKey(datum.getOrgId())){
|
||||
PmsStatisticsSpecialMonitor monitor = BeanUtil.copyProperties(datum, PmsStatisticsSpecialMonitor.class);
|
||||
monitor.setOrgName(deptName.get(datum.getOrgId()));
|
||||
monitor.setDataDate(PubUtils.localDateTimeFormat(jobParam.getDataDate() + " " + "00:00:00"));
|
||||
monitor.setStatus(1);
|
||||
info.add(monitor);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (CollUtil.isNotEmpty(info)) {
|
||||
this.saveOrUpdateBatchByMultiId(info, 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -133,9 +133,8 @@ public class RQualityParameterMServiceImpl extends MppServiceImpl<RQualityParame
|
||||
|
||||
info.add(rQualityParameterM);
|
||||
}
|
||||
List<RQualityParameterM> collect = info.stream().filter(x -> x.getMatchingCount() > 0).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(info)) {
|
||||
// this.saveOrUpdateBatchByMultiId(info, 500);
|
||||
this.saveOrUpdateBatchByMultiId(info, 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user