稳态报表功能适配台账

This commit is contained in:
cdf
2025-12-22 19:56:21 +08:00
parent 240ec304b0
commit 2894a4780b
7 changed files with 32 additions and 23 deletions

View File

@@ -15,7 +15,6 @@ import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.device.pq.pojo.vo.DevDetail;
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.pojo.po.User;
import lombok.RequiredArgsConstructor;
@@ -81,4 +80,4 @@ public class DataIntegrityServiceImpl implements DataIntegrityService {
}
}
}

View File

@@ -10,12 +10,14 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.vo.DevDetail;
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.pojo.po.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -54,7 +56,7 @@ public class StaticServiceImpl implements StaticService {
//获取终端信息
List<DevDetail> devDetails = generalDeviceInfoClient.getDevInfoByIds(new ArrayList<>()).getData();
//获取终端在线率
List<RStatOnlinerateVO> onlineRates = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
List<RStatOnlineRateVO> onlineRates = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
//异常终端数据
long count = devDetails.stream().filter(x -> 0==x.getComFlag()).count();
StaticInfo info=new StaticInfo();
@@ -63,14 +65,14 @@ public class StaticServiceImpl implements StaticService {
info.setOnlineRatez(data);
info.setComError(count);
List<StaticInfo.DevStatic> list=new ArrayList<>();
Map<String, Float> onlineRateMap = onlineRates.stream().collect(Collectors.toMap(RStatOnlinerateVO::getDevIndex, RStatOnlinerateVO::getOnlineRate));
Map<String, BigDecimal> onlineRateMap = onlineRates.stream().collect(Collectors.toMap(RStatOnlineRateVO::getDevIndex, RStatOnlineRateVO::getOnlineRate));
StaticInfo.DevStatic devStatic;
for (DevDetail devDetail : devDetails) {
devStatic=new StaticInfo.DevStatic();
devStatic.setDevIndex(devDetail.getDevIndex());
devStatic.setDevName(devDetail.getDevName());
devStatic.setIp(devDetail.getIp());
devStatic.setOnlineRate(onlineRateMap.get(devDetail.getDevIndex()));
devStatic.setOnlineRate(onlineRateMap.get(devDetail.getDevIndex()).setScale(3, RoundingMode.HALF_UP).floatValue());
devStatic.setGdName(devDetail.getGdName());
devStatic.setSubName(devDetail.getBdzName());
devStatic.setTimeId(devDetail.getTimeID());
@@ -80,4 +82,4 @@ public class StaticServiceImpl implements StaticService {
return info;
}
}
}

View File

@@ -19,7 +19,7 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
line_id, dev_id, `name`, `position`, vol_grade, pt_ratio, ct_ratio, `status`, create_by,
line_id, dev_id, `name`, `position`, vol_grade, pt_ratio, ct_ratio, `status`, create_by,
create_time, update_by, update_time
</sql>
@@ -37,7 +37,7 @@
<select id="getCustomDetailByLineId" resultType="map">
SELECT
line.id AS lineId,
line.line_id as lineId,
line.name as lineName,
concat(round(line.pt_ratio,0),concat(':',round(line.pt2_ratio,0))) as pt,
concat(round(line.ct_ratio,0),concat(':',round(line.ct2_ratio,0))) as ct,
@@ -49,6 +49,6 @@
FROM
cs_line line
WHERE
line.id = #{lineId}
line.line_id = #{lineId}
</select>
</mapper>
</mapper>

View File

@@ -16,13 +16,13 @@ public class SensitiveUserReportQueryParam {
@ApiModelProperty(name = "tempId",value = "模板ID")
private String tempId;
@ApiModelProperty(name = "searchBeginTime", value = "开始时间")
@ApiModelProperty(name = "startTime", value = "开始时间")
@NotBlank(message = "起始时间不可为空")
@DateTimeStrValid(message = "起始时间格式出错")
private String searchBeginTime;
private String startTime;
@ApiModelProperty(name = "searchEndTime", value = "结束时间")
@ApiModelProperty(name = "endTime", value = "结束时间")
@NotBlank(message = "结束时间不可为空")
private String searchEndTime;
private String endTime;
}

View File

@@ -100,7 +100,7 @@ public class CustomReportController extends BaseController {
@GetMapping("/getTemplateByDept")
@ApiOperation("根据部门查询模板")
@ApiImplicitParam(name = "id", value = "id", required = true)
public HttpResult<List<ReportTemplateVO>> getTemplateByDept(@RequestParam("id") String id){
public HttpResult<List<ReportTemplateVO>> getTemplateByDept(@RequestParam(value = "id",required = false) String id){
String methodDescribe = getMethodDescribe("getTemplateList");
List<ReportTemplateVO> list = customReportService.getTemplateByDept(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);

View File

@@ -375,7 +375,7 @@ public class CustomReportServiceImpl implements CustomReportService {
}
} else if (v.contains("start_time") && v.contains("end_time")){
//如时间是大于当前时间则用当前时间
LocalDate startDate = LocalDateTimeUtil.parseDate(queryParam.getSearchBeginTime(), DatePattern.NORM_DATE_PATTERN);
LocalDate startDate = LocalDateTimeUtil.parseDate(queryParam.getStartTime(), DatePattern.NORM_DATE_PATTERN);
LocalDate nowDate = LocalDate.now();
if (!nowDate.isAfter(startDate)) {
startDate = LocalDate.now();
@@ -383,11 +383,11 @@ public class CustomReportServiceImpl implements CustomReportService {
String startTime = LocalDateTimeUtil.format(startDate, DatePattern.NORM_DATE_PATTERN) + InfluxDbSqlConstant.START_TIME;
//如时间是大于当前时间则用当前时间
String localTime = InfluxDbSqlConstant.END_TIME;
LocalDate endDate = LocalDateTimeUtil.parseDate(queryParam.getSearchEndTime(), DatePattern.NORM_DATE_PATTERN);
LocalDate endDate = LocalDateTimeUtil.parseDate(queryParam.getEndTime(), DatePattern.NORM_DATE_PATTERN);
if (nowDate.isAfter(endDate)) {
localTime = " " + LocalTime.now().format(DatePattern.NORM_TIME_FORMATTER);
}
String endTime = queryParam.getSearchEndTime() + localTime;
String endTime = queryParam.getEndTime() + localTime;
String val = v.replace(STR_THREE, "").replace("start_time", startTime).replace("end_time", endTime);
son.putOpt(V, val);
@@ -1050,9 +1050,9 @@ public class CustomReportServiceImpl implements CustomReportService {
}
//时间范围处理
sql.append(InfluxDbSqlConstant.AND)
.append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.GE).append(InfluxDbSqlConstant.QM).append(queryParam.getSearchBeginTime()).append(InfluxDbSqlConstant.START_TIME).append(InfluxDbSqlConstant.QM)
.append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.GE).append(InfluxDbSqlConstant.QM).append(queryParam.getStartTime()).append(InfluxDbSqlConstant.START_TIME).append(InfluxDbSqlConstant.QM)
.append(InfluxDbSqlConstant.AND)
.append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.LT).append(InfluxDbSqlConstant.QM).append(queryParam.getSearchEndTime()).append(InfluxDbSqlConstant.END_TIME).append(InfluxDbSqlConstant.QM);
.append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.LT).append(InfluxDbSqlConstant.QM).append(queryParam.getEndTime()).append(InfluxDbSqlConstant.END_TIME).append(InfluxDbSqlConstant.QM);
System.out.println(sql);
List<Map<String, Object>> mapList = Collections.emptyList();
@@ -1130,6 +1130,8 @@ public class CustomReportServiceImpl implements CustomReportService {
Map<String, List<ReportTemplateDTO>> valueTypeMap = templateValue.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getStatMethod));
//每张表开启一个独立线程查询
futures.add(executorService.submit(() -> {
// 子线程中手动指定数据源(关键)
DynamicDataSourceContextHolder.push("sjzx");
//avg.max,min,cp95
valueTypeMap.forEach((valueTypeKey, valueTypeVal) -> {
//相别分组
@@ -1174,7 +1176,7 @@ public class CustomReportServiceImpl implements CustomReportService {
//处理台账信息
Map<String, String> finalTerminalMap;
if (CollUtil.isNotEmpty(terminalList)) {
finalTerminalMap = convertKeysToUpperCase(commTerminalGeneralClient.getCustomDetailByLineId(reportSearchParam.getLineId()).getData());
finalTerminalMap = convertKeysToUpperCase(csLineFeignClient.getCustomDetailByLineId(reportSearchParam.getLineId()).getData());
} else {
finalTerminalMap = new HashMap<>();
}

View File

@@ -33,6 +33,10 @@ spring:
refresh: true
main:
allow-bean-definition-overriding: true
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
#项目日志的配置
@@ -46,6 +50,8 @@ logging:
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.harmonic.pojo
global-config:
enable-sql-runner: true
mqtt:
client-id: @artifactId@${random.value}
client-id: @artifactId@${random.value}