1.pms电能质量报表
2.园区功能接口 3.自定义报表(部分)
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package com.njcn.device.pms.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class RunMonitorStatisticalDTO {
|
||||
|
||||
private String objId;
|
||||
private String provinceOrg;
|
||||
private String provinceOrgName;
|
||||
private String cityOrg;
|
||||
private String cityOrgName;
|
||||
private String maintOrg;
|
||||
private String maintOrgName;
|
||||
private String monitorName;
|
||||
private String monitorVoltageLevel;
|
||||
private String monitorId;
|
||||
private String monitorStatus;
|
||||
private Date monitorOperateDate;
|
||||
private Date monitorStopDate;
|
||||
private String substationId;
|
||||
private String substationName;
|
||||
private String busId;
|
||||
private String busName;
|
||||
private String outLineIntervalId;
|
||||
private String outLineIntervalName;
|
||||
private String monitorObjTypeBig;
|
||||
private String monitorObjTypeSmall;
|
||||
private String monitorTag;
|
||||
private String monitorObjName;
|
||||
private String monitorObjId;
|
||||
private String isLine;
|
||||
private BigDecimal minShortCapacity;
|
||||
private BigDecimal supplyEquipCapacity;
|
||||
private BigDecimal userProtocolCapacity;
|
||||
private String terminalCode;
|
||||
private String terminalManufacturer;
|
||||
private String terminalModel;
|
||||
private String terminalManufactureNum;
|
||||
private String terminalConnect;
|
||||
private String neutralGround;
|
||||
private String evtType;
|
||||
private String statisticalType;
|
||||
private String statisticalDate;
|
||||
private String isMonitorOnline;
|
||||
private String isTerminalOnline;
|
||||
private Integer onlineMonitorNum;
|
||||
private Integer runMonitorNum;
|
||||
private BigDecimal onlineMonitorRate;
|
||||
private Long expectCollectNum;
|
||||
private Long actualCollectNum;
|
||||
private BigDecimal dataFullRate;
|
||||
|
||||
|
||||
}
|
||||
@@ -269,6 +269,9 @@ public class CommTerminalController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, map, methodDescribe);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取实际,投运,谐波系统 的监测点
|
||||
*/
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@GetMapping("/getRunMonitorIds")
|
||||
@ApiOperation("获取投运谐波系统所有监测点")
|
||||
@@ -279,20 +282,6 @@ public class CommTerminalController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取实际,投运,谐波系统 的监测点
|
||||
* @author cdf
|
||||
* @date 2023/9/18
|
||||
*/
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@GetMapping("/getRunMonitorList")
|
||||
@ApiOperation("获取实际,投运,谐波系统 的监测点")
|
||||
public HttpResult<List<String>> getRunMonitorList() {
|
||||
String methodDescribe = getMethodDescribe("getRunMonitorList");
|
||||
List<String> result = commTerminalService.getOneMonitorIds();
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据监测点集合获取监测点详情
|
||||
* @author cdf
|
||||
|
||||
@@ -85,7 +85,7 @@ public class PmsParkServiceImpl extends ServiceImpl<PmsParkMapper, PmsParkPO> im
|
||||
public Page<PmsParkPO> pageList(PmsParkParam.PmsParkQuery parkQuery) {
|
||||
List<String> deptCodes = deptFeignClient.getDepSonSelfCodetByDeptId(parkQuery.getMaintOrg()).getData();
|
||||
LambdaQueryWrapper<PmsParkPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(PmsParkPO::getMaintOrg, deptCodes);
|
||||
lambdaQueryWrapper.in(PmsParkPO::getMaintOrg, deptCodes).orderByDesc(PmsParkPO::getCreateTime,PmsParkPO::getCityOrgName);
|
||||
return this.page(new Page<>(PageFactory.getPageNum(parkQuery), PageFactory.getPageSize(parkQuery)), lambdaQueryWrapper);
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@ public class PmsParkServiceImpl extends ServiceImpl<PmsParkMapper, PmsParkPO> im
|
||||
List<String> ids = deptFeignClient.getDepSonSelfCodetByCode(param.getCityOrg()).getData();
|
||||
|
||||
LambdaQueryWrapper<PmsMidLedger> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.select(PmsMidLedger::getName,PmsMidLedger::getOperationName,PmsMidLedger::getId).in(PmsMidLedger::getOperationId,ids).eq(PmsMidLedger::getLevel,0);
|
||||
lambdaQueryWrapper.select(PmsMidLedger::getName,PmsMidLedger::getOperationName,PmsMidLedger::getId).in(PmsMidLedger::getSectionId,ids).eq(PmsMidLedger::getLevel,0);
|
||||
List<PmsMidLedger> pmsMidLedgerList = pmsMidLedgerMapper.selectList(lambdaQueryWrapper);
|
||||
return pmsMidLedgerList;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.njcn.harmonic.pojo.po.upload;
|
||||
|
||||
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.njcn.db.bo.BaseEntity;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 电能质量报表上送
|
||||
* </p>
|
||||
*
|
||||
* @author xy
|
||||
* @since 2024-08-07
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("r_upload_report")
|
||||
public class RUploadReport {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId
|
||||
private String objId;
|
||||
|
||||
/**
|
||||
* 省单位id
|
||||
*/
|
||||
private String provinceOrg;
|
||||
|
||||
/**
|
||||
* 省单位名称
|
||||
*/
|
||||
private String provinceOrgName;
|
||||
|
||||
/**
|
||||
* 报表类型
|
||||
*/
|
||||
@NotBlank(message = "报表类型不可为空")
|
||||
private String reportType;
|
||||
|
||||
/**
|
||||
* Json字符串
|
||||
*/
|
||||
@NotBlank(message = "Json字符串不可为空")
|
||||
private String reportData;
|
||||
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
|
||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
|
||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
private String isDelete;
|
||||
|
||||
private LocalDateTime deleteTime;
|
||||
|
||||
private Integer uploadStatus;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
package com.njcn.harmonic.controller.upload;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.constant.OperateType;
|
||||
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.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.harmonic.pojo.param.DimGlobalDataParam;
|
||||
import com.njcn.harmonic.pojo.po.upload.RUploadReport;
|
||||
import com.njcn.harmonic.pojo.vo.DimGlobalDataStandVO;
|
||||
import com.njcn.harmonic.service.upload.IRUploadReportService;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.po.Dept;
|
||||
import com.njcn.web.enums.GWSendEnum;
|
||||
import com.njcn.web.factory.PageFactory;
|
||||
import com.njcn.web.pojo.param.BaseParam;
|
||||
import com.njcn.web.pojo.param.SendParam;
|
||||
import com.njcn.web.utils.GwSendUtil;
|
||||
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.*;
|
||||
|
||||
import com.njcn.web.controller.BaseController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 电能质量报表上送 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author cdf
|
||||
* @since 2024-08-07
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/rUploadReport")
|
||||
@RequiredArgsConstructor
|
||||
public class RUploadReportController extends BaseController {
|
||||
|
||||
private final IRUploadReportService irUploadReportService;
|
||||
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
|
||||
|
||||
/**
|
||||
* 新增pms电能质量报表
|
||||
*/
|
||||
@PostMapping("/addPmsReport")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
|
||||
@ApiOperation("新增pms电能质量报表")
|
||||
@ApiImplicitParam(name = "rUploadReport", value = "条件参数", required = true)
|
||||
public HttpResult<Boolean> addPmsReport(@RequestBody @Validated RUploadReport rUploadReport){
|
||||
String methodDescribe = getMethodDescribe("addPmsReport");
|
||||
Dept dept = deptFeignClient.getRootDept().getData();
|
||||
List<Dept> deptList = deptFeignClient.getDirectSonSelf(dept.getId()).getData();
|
||||
Optional<Dept> optional = deptList.stream().filter(item->item.getPid().equals(dept.getId())).findFirst();
|
||||
if(optional.isPresent()){
|
||||
Dept d = optional.get();
|
||||
rUploadReport.setProvinceOrg(d.getCode());
|
||||
rUploadReport.setProvinceOrgName(d.getName());
|
||||
}
|
||||
rUploadReport.setIsDelete("0");
|
||||
rUploadReport.setUploadStatus(0);
|
||||
|
||||
long count = irUploadReportService.count(new LambdaQueryWrapper<RUploadReport>().eq(RUploadReport::getProvinceOrg,rUploadReport.getProvinceOrg()));
|
||||
if(count>0){
|
||||
throw new BusinessException("已经存在该省电能质量报告");
|
||||
}
|
||||
irUploadReportService.save(rUploadReport);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改pms电能质量报表
|
||||
*/
|
||||
@PostMapping("/updatePmsReport")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.UPLOAD)
|
||||
@ApiOperation("修改pms电能质量报表")
|
||||
@ApiImplicitParam(name = "rUploadReport", value = "条件参数", required = true)
|
||||
public HttpResult<Boolean> updatePmsReport(@RequestBody @Validated RUploadReport rUploadReport){
|
||||
String methodDescribe = getMethodDescribe("updatePmsReport");
|
||||
irUploadReportService.updateById(rUploadReport);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除pms电能质量报表
|
||||
*/
|
||||
@PostMapping("/delPmsReport")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.DELETE)
|
||||
@ApiOperation("删除pms电能质量报表")
|
||||
public HttpResult<Boolean> delPmsReport(@RequestBody List<String> ids){
|
||||
String methodDescribe = getMethodDescribe("delPmsReport");
|
||||
irUploadReportService.removeByIds(ids);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/pagePmsReportList")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@ApiOperation("列表集合")
|
||||
public HttpResult<Page<RUploadReport>> pagePmsReportList(@RequestBody BaseParam baseParam){
|
||||
String methodDescribe = getMethodDescribe("pagePmsReportList");
|
||||
Page<RUploadReport> reportList = irUploadReportService.page(new Page<>(PageFactory.getPageNum(baseParam),PageFactory.getPageSize(baseParam)));
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, reportList, methodDescribe);
|
||||
}
|
||||
|
||||
@PostMapping("/uploadGw")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@ApiOperation("上送电能质量报表数据新增或更新")
|
||||
public HttpResult<Integer> uploadGw(@RequestBody List<String> ids){
|
||||
String methodDescribe = getMethodDescribe("uploadGw");
|
||||
List<RUploadReport> reportList = irUploadReportService.listByIds(ids);
|
||||
SendParam sendParam = new SendParam();
|
||||
sendParam.setStats(reportList);
|
||||
Map<String,String> map = GwSendUtil.send(sendParam, GWSendEnum.REPORT_CREATE);
|
||||
int result = GwSendUtil.returnInfoMsg(ids,map);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.harmonic.mapper.upload;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.harmonic.pojo.po.upload.RUploadReport;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 电能质量报表上送 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author xy
|
||||
* @since 2024-08-07
|
||||
*/
|
||||
public interface RUploadReportMapper extends BaseMapper<RUploadReport> {
|
||||
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.*;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.utils.FileUtil;
|
||||
@@ -397,9 +398,9 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
tem = "#NO";
|
||||
}
|
||||
if (StrUtil.isNotBlank(twoKey)) {
|
||||
reportTreeStat.setName("$" + oneKey + "#" + twoKey + "#" + statItem + "#" + item.getClassId().trim() + tem.trim() + "$");
|
||||
reportTreeStat.setName("$" + oneKey + "#" + twoKey + "#" + statItem + "#" + item.getResourcesId().trim() + tem.trim() + "$");
|
||||
} else {
|
||||
reportTreeStat.setName("$" + oneKey + "#" + statItem + "#" + item.getClassId().trim() + tem.trim() + "$");
|
||||
reportTreeStat.setName("$" + oneKey + "#" + statItem + "#" + item.getResourcesId().trim() + tem.trim() + "$");
|
||||
}
|
||||
|
||||
reportTreeStat.setShowName(statItem);
|
||||
@@ -437,146 +438,6 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 解析报表模板赋值数据
|
||||
*/
|
||||
/* private void analyzeReport(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp,HttpServletResponse response) {
|
||||
//根据content,获取v值并进行处理
|
||||
List<ReportTemplateDTO> reportTemplateDTOList = new ArrayList<>();
|
||||
JSONArray jsonArray;
|
||||
try (InputStream fileStream = fileStorageUtil.getFileStream(excelRptTemp.getContent())) {
|
||||
//通过文件服务器获取
|
||||
jsonArray = new JSONArray(new JSONTokener(fileStream, new JSONConfig()));
|
||||
jsonArray.forEach(item -> {
|
||||
JSONObject jsonObject = (JSONObject) item;
|
||||
JSONArray itemArr = (JSONArray) jsonObject.get("celldata");
|
||||
itemArr.forEach((it) -> {
|
||||
if (Objects.nonNull(it) && !"null".equals(it.toString())) {
|
||||
//获取到1列
|
||||
JSONObject data = (JSONObject) it;
|
||||
JSONObject son = (JSONObject) data.get("v");
|
||||
if (son.containsKey("v")) {
|
||||
String v = son.getStr("v");
|
||||
//数据格式:$HA[_25]#B#max#classId$ 或 $HA[_25]#max#classId$
|
||||
if (v.charAt(0) == '$' && v.contains("#")) {
|
||||
//剔除前后$
|
||||
v = v.replace("$", "");
|
||||
//封装ReportTemplateDTO
|
||||
ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO();
|
||||
reportTemplateDTO.setItemName(v);
|
||||
//根据#分割数据
|
||||
String[] vItem = v.split("#");
|
||||
if (vItem.length == 4) {
|
||||
//$HA[_25]#B#max#classId$
|
||||
reportTemplateDTO.setTemplateName(vItem[0]);
|
||||
reportTemplateDTO.setPhase(vItem[1].substring(0, 1));
|
||||
reportTemplateDTO.setStatMethod(vItem[2].toUpperCase());
|
||||
reportTemplateDTO.setClassId(vItem[3]);
|
||||
} else if (vItem.length == 3) {
|
||||
//$HA[_25]#max#classId$
|
||||
reportTemplateDTO.setTemplateName(vItem[0]);
|
||||
reportTemplateDTO.setPhase("M");
|
||||
reportTemplateDTO.setStatMethod(vItem[1].toUpperCase());
|
||||
reportTemplateDTO.setClassId(vItem[2]);
|
||||
}
|
||||
reportTemplateDTOList.add(reportTemplateDTO);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} catch (Exception e) {
|
||||
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
|
||||
}
|
||||
|
||||
List<ReportTemplateDTO> endList = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(reportTemplateDTOList)) {
|
||||
//开始组织sql
|
||||
reportTemplateDTOList.stream().forEach(data -> {
|
||||
StringBuilder sql = new StringBuilder(InfluxDbSqlConstant.SELECT);
|
||||
if (InfluxDbSqlConstant.MAX.equalsIgnoreCase(data.getStatMethod())) {
|
||||
assSql(data, sql, endList, InfluxDbSqlConstant.MAX, reportSearchParam);
|
||||
} else if (InfluxDbSqlConstant.MIN.equalsIgnoreCase(data.getStatMethod())) {
|
||||
assSql(data, sql, endList, InfluxDbSqlConstant.MIN, reportSearchParam);
|
||||
} else if (InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(data.getStatMethod())) {
|
||||
assSql(data, sql, endList, InfluxDbSqlConstant.AVG, reportSearchParam);
|
||||
} else if (InfluxDbSqlConstant.CP95.equalsIgnoreCase(data.getStatMethod())) {
|
||||
assSql(data, sql, endList, InfluxDbSqlConstant.PERCENTILE, reportSearchParam);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (CollUtil.isNotEmpty(endList)) {
|
||||
//数据单位信息
|
||||
Map<String, String> unit = unitMap(reportSearchParam.getLineId());
|
||||
//进行反向赋值到模板
|
||||
//1、根据itemName分组
|
||||
Map<String, List<ReportTemplateDTO>> assMap = endList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getItemName));
|
||||
//2、把itemName的value赋给v和m
|
||||
jsonArray.forEach(item -> {
|
||||
JSONObject jsonObject = (JSONObject) item;
|
||||
JSONArray itemArr = (JSONArray) jsonObject.get("celldata");
|
||||
itemArr.forEach((it) -> {
|
||||
if (Objects.nonNull(it) && !"null".equals(it.toString())) {
|
||||
//获取到1列
|
||||
JSONObject data = (JSONObject) it;
|
||||
JSONObject son = (JSONObject) data.get("v");
|
||||
if (son.containsKey("v")) {
|
||||
String v = son.getStr("v");
|
||||
//数据格式:$HA[_25]#B#max#classId$ 或 $HA[_25]#max#classId$
|
||||
if (v.charAt(0) == '$' && v.contains("#")) {
|
||||
String str = "";
|
||||
if(Objects.nonNull(assMap.get(v.replace("$", "")))){
|
||||
str = assMap.get(v.replace("$", "")).get(0).getValue();
|
||||
//没有值,赋"/"
|
||||
if (StringUtils.isBlank(str)) {
|
||||
str = "/";
|
||||
}
|
||||
son.set("v", str);
|
||||
}
|
||||
}
|
||||
//解决数据单位问题 @指标#类型@
|
||||
if (v.charAt(0) == '@' && v.contains("#")) {
|
||||
String replace = v.replace("@", "");
|
||||
son.set("v", unit.getOrDefault(replace, "/"));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
InputStream reportStream = IoUtil.toStream(jsonArray.toString(), CharsetUtil.UTF_8);
|
||||
String newContent = fileStorageUtil.uploadStream(reportStream, OssPath.HARMONIC_EXCEL_REPORT, FileUtil.generateFileName("json"));
|
||||
|
||||
response.setContentType("application/octet-stream;charset=UTF-8");
|
||||
response.setHeader("Content-Disposition", "attachment;filename="+"aa");
|
||||
//入库前判断是否有了,有了就更新
|
||||
ExcelRpt excelRpt = new ExcelRpt();
|
||||
excelRpt.setName(excelRptTemp.getName());
|
||||
excelRpt.setLineId(reportSearchParam.getLineId());
|
||||
excelRpt.setDataDate(DateUtil.parse(reportSearchParam.getStartTime()));
|
||||
excelRpt.setTempId(excelRptTemp.getId());
|
||||
excelRpt.setContent(newContent);
|
||||
excelRpt.setType(reportSearchParam.getType());
|
||||
excelRpt.setState(DataStateEnum.ENABLE.getCode());
|
||||
|
||||
excelRptMapper.insert(excelRpt);
|
||||
OutputStream toClient = null;
|
||||
try {
|
||||
toClient = new BufferedOutputStream(response.getOutputStream());
|
||||
//通过IOUtils对接输入输出流,实现文件下载
|
||||
IOUtils.copy(reportStream, toClient);
|
||||
toClient.flush();
|
||||
} catch (Exception e) {
|
||||
throw new BusinessException(OssResponseEnum.DOWNLOAD_FILE_STREAM_ERROR);
|
||||
} finally {
|
||||
IOUtils.closeQuietly(reportStream);
|
||||
IOUtils.closeQuietly(toClient);
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
|
||||
/**
|
||||
@@ -636,99 +497,6 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
return unit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 组装influxDB查询sql,查询value并封装endlist
|
||||
*
|
||||
* @return 结果
|
||||
*/
|
||||
private void assSql(ReportTemplateDTO data, StringBuilder sql, List<ReportTemplateDTO> endList, String method, ReportSearchParam reportSearchParam) {
|
||||
//sql拼接示例:select MAX(IHA2) as IHA2 from power_quality_data where Phase = 'A' and LineId='1324564568' and Stat_Method='max' tz('Asia/Shanghai')
|
||||
|
||||
//cp95函数特殊处理 PERCENTILE(field_key, N)
|
||||
if (InfluxDbSqlConstant.PERCENTILE.equals(method)) {
|
||||
sql.append(method)
|
||||
.append(InfluxDbSqlConstant.LBK)
|
||||
.append(data.getTemplateName())
|
||||
.append(InfluxDbSqlConstant.NUM_95)
|
||||
.append(InfluxDbSqlConstant.RBK)
|
||||
.append(InfluxDbSqlConstant.AS_VALUE);
|
||||
} else {
|
||||
sql.append(method)
|
||||
.append(InfluxDbSqlConstant.LBK)
|
||||
.append(data.getTemplateName())
|
||||
.append(InfluxDbSqlConstant.RBK)
|
||||
.append(InfluxDbSqlConstant.AS_VALUE);
|
||||
}
|
||||
|
||||
if (reportSearchParam.getResourceType() == 1) {
|
||||
sql.append(InfluxDbSqlConstant.FROM)
|
||||
.append(data.getClassId().replace("data", "day"));
|
||||
} else {
|
||||
sql.append(InfluxDbSqlConstant.FROM)
|
||||
.append(data.getClassId());
|
||||
}
|
||||
|
||||
sql.append(InfluxDbSqlConstant.WHERE)
|
||||
.append(InfluxDBTableConstant.LINE_ID)
|
||||
.append(InfluxDbSqlConstant.EQ)
|
||||
.append(InfluxDbSqlConstant.QM)
|
||||
.append(reportSearchParam.getLineId())
|
||||
.append(InfluxDbSqlConstant.QM);
|
||||
//相别特殊处理
|
||||
if (!InfluxDBTableConstant.NO_PHASE.equals(data.getPhase())) {
|
||||
sql.append(InfluxDbSqlConstant.AND)
|
||||
.append(InfluxDBTableConstant.PHASIC_TYPE)
|
||||
.append(InfluxDbSqlConstant.EQ)
|
||||
.append(InfluxDbSqlConstant.QM)
|
||||
.append(data.getPhase())
|
||||
.append(InfluxDbSqlConstant.QM);
|
||||
}
|
||||
|
||||
|
||||
//data_flicker、data_fluc、data_plt 无 value_type
|
||||
if (!InfluxDBTableConstant.DATA_FLICKER.equals(data.getClassId()) && !InfluxDBTableConstant.DATA_FLUC.equals(data.getClassId()) && !InfluxDBTableConstant.DATA_PLT.equals(data.getClassId())) {
|
||||
sql.append(InfluxDbSqlConstant.AND)
|
||||
.append(InfluxDBTableConstant.VALUE_TYPE)
|
||||
.append(InfluxDbSqlConstant.EQ)
|
||||
.append(InfluxDbSqlConstant.QM)
|
||||
.append(data.getStatMethod())
|
||||
.append(InfluxDbSqlConstant.QM);
|
||||
}
|
||||
|
||||
//频率和频率偏差仅统计T相
|
||||
if (data.getTemplateName().equals("freq_dev") || data.getTemplateName().equals("freq")) {
|
||||
sql.append(InfluxDbSqlConstant.AND)
|
||||
.append(InfluxDBTableConstant.PHASIC_TYPE)
|
||||
.append(InfluxDbSqlConstant.EQ)
|
||||
.append(InfluxDbSqlConstant.QM)
|
||||
.append(InfluxDBTableConstant.PHASE_TYPE_T)
|
||||
.append(InfluxDbSqlConstant.QM);
|
||||
}
|
||||
//时间范围处理
|
||||
sql
|
||||
.append(InfluxDbSqlConstant.AND)
|
||||
.append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.GE).append(InfluxDbSqlConstant.QM).append(reportSearchParam.getStartTime()).append(InfluxDbSqlConstant.START_TIME).append(InfluxDbSqlConstant.QM)
|
||||
.append(InfluxDbSqlConstant.AND)
|
||||
.append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.LT).append(InfluxDbSqlConstant.QM).append(reportSearchParam.getEndTime()).append(InfluxDbSqlConstant.END_TIME).append(InfluxDbSqlConstant.QM);
|
||||
|
||||
System.out.println(sql);
|
||||
|
||||
sql.append(InfluxDbSqlConstant.TZ);
|
||||
|
||||
if (data.getTemplateName().equals("freq_dev") || data.getTemplateName().equals("freq")) {
|
||||
System.out.println(sql);
|
||||
}
|
||||
|
||||
|
||||
StatisticalDataDTO statisticalDataDTO = commonService.selectBySql(sql);
|
||||
//根据不同的库表赋值
|
||||
if (Objects.isNull(statisticalDataDTO)) {
|
||||
data.setValue("/");
|
||||
} else {
|
||||
data.setValue(String.format("%.3f", statisticalDataDTO.getValue()));
|
||||
}
|
||||
endList.add(data);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -748,18 +516,16 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
if (i == data.size() - 1) {
|
||||
sql.append(method)
|
||||
sql.append("MAX")
|
||||
.append(InfluxDbSqlConstant.LBK)
|
||||
.append(data.get(i).getTemplateName())
|
||||
.append(InfluxDbSqlConstant.NUM_95)
|
||||
.append(InfluxDbSqlConstant.RBK)
|
||||
.append(InfluxDbSqlConstant.AS).append(InfluxDbSqlConstant.DQM)
|
||||
.append(data.get(i).getItemName()).append(InfluxDbSqlConstant.DQM);
|
||||
} else {
|
||||
sql.append(method)
|
||||
sql.append("MAX")
|
||||
.append(InfluxDbSqlConstant.LBK)
|
||||
.append(data.get(i).getTemplateName())
|
||||
.append(InfluxDbSqlConstant.NUM_95)
|
||||
.append(InfluxDbSqlConstant.RBK)
|
||||
.append(InfluxDbSqlConstant.AS).append(InfluxDbSqlConstant.DQM)
|
||||
.append(data.get(i).getItemName()).append(InfluxDbSqlConstant.DQM).append(StrUtil.COMMA);
|
||||
@@ -788,14 +554,10 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
|
||||
}
|
||||
|
||||
sql.append(StrPool.C_SPACE);
|
||||
if (reportSearchParam.getResourceType() == 1) {
|
||||
sql.append(InfluxDbSqlConstant.FROM)
|
||||
.append(data.get(0).getClassId().replace("data", "day"));
|
||||
} else {
|
||||
sql.append(InfluxDbSqlConstant.FROM)
|
||||
.append(data.get(0).getClassId());
|
||||
}
|
||||
sql.append(StrPool.C_SPACE)
|
||||
.append(InfluxDbSqlConstant.FROM)
|
||||
.append(data.get(0).getResourceId());
|
||||
|
||||
|
||||
sql.append(InfluxDbSqlConstant.WHERE)
|
||||
.append(InfluxDBTableConstant.LINE_ID)
|
||||
@@ -815,14 +577,15 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
|
||||
|
||||
//data_flicker、data_fluc、data_plt 无 value_type
|
||||
if (!InfluxDBTableConstant.DATA_FLICKER.equals(data.get(0).getClassId()) && !InfluxDBTableConstant.DATA_FLUC.equals(data.get(0).getClassId()) && !InfluxDBTableConstant.DATA_PLT.equals(data.get(0).getClassId())) {
|
||||
//if (!"r_stat_data_flicker_d".equals(data.get(0).getResourceId()) && !"r_stat_data_fluc_d".equals(data.get(0).getResourceId()) && !"r_stat_data_plt_d".equals(data.get(0).getResourceId())) {
|
||||
sql.append(InfluxDbSqlConstant.AND)
|
||||
.append(InfluxDBTableConstant.VALUE_TYPE)
|
||||
.append(InfluxDbSqlConstant.EQ)
|
||||
.append(InfluxDbSqlConstant.QM)
|
||||
.append(data.get(0).getStatMethod())
|
||||
.append(InfluxDbSqlConstant.QM);
|
||||
}
|
||||
//}
|
||||
|
||||
|
||||
//频率和频率偏差仅统计T相
|
||||
if (data.get(0).getTemplateName().equals("freq_dev") || data.get(0).getTemplateName().equals("freq")) {
|
||||
@@ -834,29 +597,28 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
.append(InfluxDbSqlConstant.QM);
|
||||
}
|
||||
//时间范围处理
|
||||
sql
|
||||
.append(InfluxDbSqlConstant.AND)
|
||||
sql.append(InfluxDbSqlConstant.AND)
|
||||
.append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.GE).append(InfluxDbSqlConstant.QM).append(reportSearchParam.getStartTime()).append(InfluxDbSqlConstant.START_TIME).append(InfluxDbSqlConstant.QM)
|
||||
.append(InfluxDbSqlConstant.AND)
|
||||
.append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.LT).append(InfluxDbSqlConstant.QM).append(reportSearchParam.getEndTime()).append(InfluxDbSqlConstant.END_TIME).append(InfluxDbSqlConstant.QM);
|
||||
|
||||
System.out.println(sql);
|
||||
|
||||
sql.append(InfluxDbSqlConstant.TZ);
|
||||
|
||||
if (data.get(0).getTemplateName().equals("freq_dev") || data.get(0).getTemplateName().equals("freq")) {
|
||||
System.out.println(sql);
|
||||
}
|
||||
|
||||
List<Map<String, Object>> mapList = influxDbUtils.getMapResult(sql.toString());
|
||||
List<Map<String,Object>> mapList = SqlRunner.db().selectList(sql.toString());
|
||||
if (CollUtil.isEmpty(mapList)) {
|
||||
data = data.stream().peek(item -> item.setValue("/")).collect(Collectors.toList());
|
||||
} else {
|
||||
Map<String, Object> map = mapList.get(0);
|
||||
|
||||
|
||||
for (ReportTemplateDTO item : data) {
|
||||
if (map.containsKey(item.getItemName())) {
|
||||
double v = (Double) map.get(item.getItemName());
|
||||
if (Objects.nonNull(map) && map.containsKey(item.getItemName())) {
|
||||
double v = Double.parseDouble(map.get(item.getItemName()).toString());
|
||||
item.setValue(String.format("%.3f", v));
|
||||
|
||||
if (overLimitMap.containsKey(item.getLimitName())) {
|
||||
@@ -918,8 +680,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
} catch (Exception e) {
|
||||
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
|
||||
}
|
||||
//处理查日表还是分钟表
|
||||
rangeDate(reportSearchParam);
|
||||
|
||||
|
||||
long temEnd = System.currentTimeMillis();
|
||||
|
||||
@@ -941,7 +702,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
.collect(Collectors.collectingAndThen(Collectors.toCollection(
|
||||
() -> new TreeSet<>(Comparator.comparing(ReportTemplateDTO::getItemName))), ArrayList::new));
|
||||
|
||||
Map<String, List<ReportTemplateDTO>> classMap = reportTemplateDTOList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getClassId));
|
||||
Map<String, List<ReportTemplateDTO>> classMap = reportTemplateDTOList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getResourceId));
|
||||
Map<String, ReportTemplateDTO> assNoPassMap = new HashMap<>();
|
||||
classMap.forEach((classKey, templateValue) -> {
|
||||
Map<String, List<ReportTemplateDTO>> valueTypeMap = templateValue.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getStatMethod));
|
||||
@@ -958,7 +719,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
} else if (InfluxDbSqlConstant.MIN.equalsIgnoreCase(valueTypeKey)) {
|
||||
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.MIN, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
||||
} else if (InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(valueTypeKey)) {
|
||||
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.AVG, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
||||
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.AVG_WEB, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
||||
} else if (InfluxDbSqlConstant.CP95.equalsIgnoreCase(valueTypeKey)) {
|
||||
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.PERCENTILE, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
||||
}
|
||||
@@ -1155,14 +916,14 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
reportTemplateDTO.setTemplateName(vItem[0]);
|
||||
reportTemplateDTO.setPhase(vItem[1].substring(0, 1));
|
||||
reportTemplateDTO.setStatMethod(vItem[2].toUpperCase());
|
||||
reportTemplateDTO.setClassId(vItem[3]);
|
||||
reportTemplateDTO.setResourceId(vItem[3]);
|
||||
reportTemplateDTO.setLimitName(vItem[4]);
|
||||
} else if (vItem.length == 4) {
|
||||
//$HA[_25]#max#classId$
|
||||
reportTemplateDTO.setTemplateName(vItem[0]);
|
||||
reportTemplateDTO.setPhase("M");
|
||||
reportTemplateDTO.setStatMethod(vItem[1].toUpperCase());
|
||||
reportTemplateDTO.setClassId(vItem[2]);
|
||||
reportTemplateDTO.setResourceId(vItem[2]);
|
||||
reportTemplateDTO.setLimitName(vItem[3]);
|
||||
}
|
||||
|
||||
@@ -1179,7 +940,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
//$HA[_25]#B#max#classId$
|
||||
reportTemplateDTO.setTemplateName(vItem[0]);
|
||||
reportTemplateDTO.setStatMethod(vItem[1].toUpperCase());
|
||||
reportTemplateDTO.setClassId(vItem[2]);
|
||||
reportTemplateDTO.setResourceId(vItem[2]);
|
||||
}
|
||||
reportLimitList.add(reportTemplateDTO);
|
||||
} else if (v.charAt(0) == '&') {
|
||||
@@ -1199,35 +960,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取两个时间之间的天数
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/10/20
|
||||
*/
|
||||
private void rangeDate(ReportSearchParam reportSearchParam) {
|
||||
long a;
|
||||
DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
|
||||
try {
|
||||
//开始时间
|
||||
Date star = dft.parse(reportSearchParam.getStartTime());
|
||||
//结束时间
|
||||
Date endDay = dft.parse(reportSearchParam.getEndTime());
|
||||
Long starTimes = star.getTime();
|
||||
Long endTimes = endDay.getTime();
|
||||
long num = endTimes - starTimes;//时间戳相差的毫秒数
|
||||
a = num / 24 / 60 / 60 / 1000;
|
||||
if (a > 5) {
|
||||
//返回天表
|
||||
reportSearchParam.setResourceType(1);
|
||||
} else {
|
||||
//返回分钟
|
||||
reportSearchParam.setResourceType(0);
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
throw new BusinessException("时间解析出错!" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @author cdf
|
||||
@@ -1245,7 +978,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
}
|
||||
}
|
||||
|
||||
sql.append(" from ").append(reportLimitList.get(0).getClassId()).append(" where id ='").append(reportSearchParam.getLineId()).append("'");
|
||||
sql.append(" from ").append(reportLimitList.get(0).getResourceId()).append(" where id ='").append(reportSearchParam.getLineId()).append("'");
|
||||
limitMap = excelRptTempMapper.dynamicSqlMap(sql.toString());
|
||||
|
||||
for (ReportTemplateDTO item : reportLimitList) {
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.harmonic.service.upload;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.po.upload.RUploadReport;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 电能质量报表上送 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author xy
|
||||
* @since 2024-08-07
|
||||
*/
|
||||
public interface IRUploadReportService extends IService<RUploadReport> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.njcn.harmonic.service.upload.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.harmonic.mapper.upload.RUploadReportMapper;
|
||||
import com.njcn.harmonic.pojo.po.upload.RUploadReport;
|
||||
import com.njcn.harmonic.service.upload.IRUploadReportService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 电能质量报表上送 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author xy
|
||||
* @since 2024-08-07
|
||||
*/
|
||||
@Service
|
||||
public class RUploadReportServiceImpl extends ServiceImpl<RUploadReportMapper, RUploadReport> implements IRUploadReportService {
|
||||
|
||||
}
|
||||
@@ -56,6 +56,8 @@ logging:
|
||||
#mybatis配置信息
|
||||
mybatis-plus:
|
||||
type-aliases-package: com.njcn.harmonic.pojo
|
||||
global-config:
|
||||
enable-sql-runner: true
|
||||
|
||||
|
||||
mqtt:
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.njcn.prepare.harmonic.api.line;
|
||||
|
||||
import com.njcn.common.pojo.constant.ServerInfo;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.prepare.harmonic.api.line.fallback.CoustomReportFeignClientFallbackFactory;
|
||||
import com.njcn.prepare.harmonic.api.line.fallback.CustomReportFeignClientFallbackFactory;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@@ -16,9 +16,9 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
@FeignClient(
|
||||
value = ServerInfo.PREPARE_BOOT,//对应模块名
|
||||
path = "/report",//对应controller请求类
|
||||
fallbackFactory = CoustomReportFeignClientFallbackFactory.class//服务降级处理类
|
||||
fallbackFactory = CustomReportFeignClientFallbackFactory.class//服务降级处理类
|
||||
)
|
||||
public interface CoustmReportFeignClient {
|
||||
public interface CustomReportFeignClient {
|
||||
|
||||
/**
|
||||
* 批量处理报表
|
||||
@@ -3,7 +3,7 @@ package com.njcn.prepare.harmonic.api.line.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.line.CoustmReportFeignClient;
|
||||
import com.njcn.prepare.harmonic.api.line.CustomReportFeignClient;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.utils.PrepareEnumUtil;
|
||||
import feign.hystrix.FallbackFactory;
|
||||
@@ -20,10 +20,10 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class CoustomReportFeignClientFallbackFactory implements FallbackFactory<CoustmReportFeignClient> {
|
||||
public class CustomReportFeignClientFallbackFactory implements FallbackFactory<CustomReportFeignClient> {
|
||||
|
||||
@Override
|
||||
public CoustmReportFeignClient create(Throwable throwable) {
|
||||
public CustomReportFeignClient create(Throwable throwable) {
|
||||
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
|
||||
if (throwable.getCause() instanceof BusinessException) {
|
||||
BusinessException businessException = (BusinessException)throwable.getCause();
|
||||
@@ -31,7 +31,7 @@ public class CoustomReportFeignClientFallbackFactory implements FallbackFactory<
|
||||
}
|
||||
|
||||
Enum<?> finalExceptionEnum = exceptionEnum;
|
||||
return new CoustmReportFeignClient() {
|
||||
return new CustomReportFeignClient() {
|
||||
@Override
|
||||
public HttpResult<Boolean> batchReport(@RequestBody LineParam reportParam){
|
||||
log.error("{}异常,降级处理,异常为:{}", "生成自定义报表: ", throwable.toString());
|
||||
@@ -42,7 +42,7 @@ public class ReportController extends BaseController {
|
||||
@PostMapping("/batchReport")
|
||||
@ApiOperation("批量处理报表")
|
||||
@ApiImplicitParam(name = "reportParam", value = "查询体", required = true)
|
||||
public HttpResult<Boolean> batchReport(@RequestBody @Validated LineParam reportParam){
|
||||
public HttpResult<Boolean> batchReport(@RequestBody LineParam reportParam){
|
||||
String methodDescribe = getMethodDescribe("batchReport");
|
||||
reportService.batchReport(reportParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -49,13 +49,14 @@ liteflow:
|
||||
logging:
|
||||
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
|
||||
level:
|
||||
root: info
|
||||
root: error
|
||||
|
||||
|
||||
##mybatis配置信息
|
||||
mybatis-plus:
|
||||
#别名扫描
|
||||
type-aliases-package: com.njcn.prepare.harmonic.pojo
|
||||
|
||||
global-config:
|
||||
enable-sql-runner: true
|
||||
mqtt:
|
||||
client-id: @artifactId@${random.value}
|
||||
|
||||
@@ -89,9 +89,14 @@ public class AuditController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
/**
|
||||
* 这个接口有毒,千万被调用
|
||||
* @return
|
||||
*/
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||
@PostMapping("/saveLogParam")
|
||||
@ApiOperation("筛选下拉列表参数")
|
||||
@Deprecated
|
||||
public HttpResult<LogParamVO> saveLogParam() {
|
||||
String methodDescribe = getMethodDescribe("saveLogParam");
|
||||
LogParamVO result = auditService.saveLogParam();
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.njcn.system.timer.tasks.report;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.njcn.harmonic.api.ReportFeignClient;
|
||||
import com.njcn.prepare.harmonic.api.line.CustomReportFeignClient;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.system.timer.TimerTaskRunner;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 自定义报表预处理
|
||||
*/
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class CustomReportRunner implements TimerTaskRunner {
|
||||
|
||||
private final CustomReportFeignClient customReportFeignClient;
|
||||
|
||||
|
||||
@Override
|
||||
public void action(String date) {
|
||||
LineParam lineParam = new LineParam();
|
||||
if(StrUtil.isNotBlank(date)){
|
||||
lineParam.setDataDate(date);
|
||||
}else {
|
||||
DateTime dealDate = DateUtil.yesterday();
|
||||
String end = DateUtil.format(dealDate, DatePattern.NORM_DATE_PATTERN);
|
||||
lineParam.setDataDate(end);
|
||||
}
|
||||
customReportFeignClient.batchReport(lineParam);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user