稳态报表功能适配台账
This commit is contained in:
@@ -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.po.RStatIntegrityD;
|
||||||
import com.njcn.device.pq.pojo.vo.DevDetail;
|
import com.njcn.device.pq.pojo.vo.DevDetail;
|
||||||
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
|
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.api.UserFeignClient;
|
||||||
import com.njcn.user.pojo.po.User;
|
import com.njcn.user.pojo.po.User;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -81,4 +80,4 @@ public class DataIntegrityServiceImpl implements DataIntegrityService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,12 +10,14 @@ import com.njcn.common.pojo.exception.BusinessException;
|
|||||||
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.vo.DevDetail;
|
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.api.UserFeignClient;
|
||||||
import com.njcn.user.pojo.po.User;
|
import com.njcn.user.pojo.po.User;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -54,7 +56,7 @@ public class StaticServiceImpl implements StaticService {
|
|||||||
//获取终端信息
|
//获取终端信息
|
||||||
List<DevDetail> devDetails = generalDeviceInfoClient.getDevInfoByIds(new ArrayList<>()).getData();
|
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();
|
long count = devDetails.stream().filter(x -> 0==x.getComFlag()).count();
|
||||||
StaticInfo info=new StaticInfo();
|
StaticInfo info=new StaticInfo();
|
||||||
@@ -63,14 +65,14 @@ public class StaticServiceImpl implements StaticService {
|
|||||||
info.setOnlineRatez(data);
|
info.setOnlineRatez(data);
|
||||||
info.setComError(count);
|
info.setComError(count);
|
||||||
List<StaticInfo.DevStatic> list=new ArrayList<>();
|
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;
|
StaticInfo.DevStatic devStatic;
|
||||||
for (DevDetail devDetail : devDetails) {
|
for (DevDetail devDetail : devDetails) {
|
||||||
devStatic=new StaticInfo.DevStatic();
|
devStatic=new StaticInfo.DevStatic();
|
||||||
devStatic.setDevIndex(devDetail.getDevIndex());
|
devStatic.setDevIndex(devDetail.getDevIndex());
|
||||||
devStatic.setDevName(devDetail.getDevName());
|
devStatic.setDevName(devDetail.getDevName());
|
||||||
devStatic.setIp(devDetail.getIp());
|
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.setGdName(devDetail.getGdName());
|
||||||
devStatic.setSubName(devDetail.getBdzName());
|
devStatic.setSubName(devDetail.getBdzName());
|
||||||
devStatic.setTimeId(devDetail.getTimeID());
|
devStatic.setTimeId(devDetail.getTimeID());
|
||||||
@@ -80,4 +82,4 @@ public class StaticServiceImpl implements StaticService {
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
<!--@mbg.generated-->
|
<!--@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
|
create_time, update_by, update_time
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
<select id="getCustomDetailByLineId" resultType="map">
|
<select id="getCustomDetailByLineId" resultType="map">
|
||||||
SELECT
|
SELECT
|
||||||
line.id AS lineId,
|
line.line_id as lineId,
|
||||||
line.name as lineName,
|
line.name as lineName,
|
||||||
concat(round(line.pt_ratio,0),concat(':',round(line.pt2_ratio,0))) as pt,
|
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,
|
concat(round(line.ct_ratio,0),concat(':',round(line.ct2_ratio,0))) as ct,
|
||||||
@@ -49,6 +49,6 @@
|
|||||||
FROM
|
FROM
|
||||||
cs_line line
|
cs_line line
|
||||||
WHERE
|
WHERE
|
||||||
line.id = #{lineId}
|
line.line_id = #{lineId}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -16,13 +16,13 @@ public class SensitiveUserReportQueryParam {
|
|||||||
@ApiModelProperty(name = "tempId",value = "模板ID")
|
@ApiModelProperty(name = "tempId",value = "模板ID")
|
||||||
private String tempId;
|
private String tempId;
|
||||||
|
|
||||||
@ApiModelProperty(name = "searchBeginTime", value = "开始时间")
|
@ApiModelProperty(name = "startTime", value = "开始时间")
|
||||||
@NotBlank(message = "起始时间不可为空")
|
@NotBlank(message = "起始时间不可为空")
|
||||||
@DateTimeStrValid(message = "起始时间格式出错")
|
@DateTimeStrValid(message = "起始时间格式出错")
|
||||||
private String searchBeginTime;
|
private String startTime;
|
||||||
|
|
||||||
@ApiModelProperty(name = "searchEndTime", value = "结束时间")
|
@ApiModelProperty(name = "endTime", value = "结束时间")
|
||||||
@NotBlank(message = "结束时间不可为空")
|
@NotBlank(message = "结束时间不可为空")
|
||||||
private String searchEndTime;
|
private String endTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ public class CustomReportController extends BaseController {
|
|||||||
@GetMapping("/getTemplateByDept")
|
@GetMapping("/getTemplateByDept")
|
||||||
@ApiOperation("根据部门查询模板")
|
@ApiOperation("根据部门查询模板")
|
||||||
@ApiImplicitParam(name = "id", value = "id", required = true)
|
@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");
|
String methodDescribe = getMethodDescribe("getTemplateList");
|
||||||
List<ReportTemplateVO> list = customReportService.getTemplateByDept(id);
|
List<ReportTemplateVO> list = customReportService.getTemplateByDept(id);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||||
|
|||||||
@@ -375,7 +375,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
} else if (v.contains("start_time") && v.contains("end_time")){
|
} 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();
|
LocalDate nowDate = LocalDate.now();
|
||||||
if (!nowDate.isAfter(startDate)) {
|
if (!nowDate.isAfter(startDate)) {
|
||||||
startDate = LocalDate.now();
|
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 startTime = LocalDateTimeUtil.format(startDate, DatePattern.NORM_DATE_PATTERN) + InfluxDbSqlConstant.START_TIME;
|
||||||
//如时间是大于当前时间则用当前时间
|
//如时间是大于当前时间则用当前时间
|
||||||
String localTime = InfluxDbSqlConstant.END_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)) {
|
if (nowDate.isAfter(endDate)) {
|
||||||
localTime = " " + LocalTime.now().format(DatePattern.NORM_TIME_FORMATTER);
|
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);
|
String val = v.replace(STR_THREE, "").replace("start_time", startTime).replace("end_time", endTime);
|
||||||
son.putOpt(V, val);
|
son.putOpt(V, val);
|
||||||
|
|
||||||
@@ -1050,9 +1050,9 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
//时间范围处理
|
//时间范围处理
|
||||||
sql.append(InfluxDbSqlConstant.AND)
|
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.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);
|
System.out.println(sql);
|
||||||
List<Map<String, Object>> mapList = Collections.emptyList();
|
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));
|
Map<String, List<ReportTemplateDTO>> valueTypeMap = templateValue.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getStatMethod));
|
||||||
//每张表开启一个独立线程查询
|
//每张表开启一个独立线程查询
|
||||||
futures.add(executorService.submit(() -> {
|
futures.add(executorService.submit(() -> {
|
||||||
|
// 子线程中手动指定数据源(关键)
|
||||||
|
DynamicDataSourceContextHolder.push("sjzx");
|
||||||
//avg.max,min,cp95
|
//avg.max,min,cp95
|
||||||
valueTypeMap.forEach((valueTypeKey, valueTypeVal) -> {
|
valueTypeMap.forEach((valueTypeKey, valueTypeVal) -> {
|
||||||
//相别分组
|
//相别分组
|
||||||
@@ -1174,7 +1176,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
//处理台账信息
|
//处理台账信息
|
||||||
Map<String, String> finalTerminalMap;
|
Map<String, String> finalTerminalMap;
|
||||||
if (CollUtil.isNotEmpty(terminalList)) {
|
if (CollUtil.isNotEmpty(terminalList)) {
|
||||||
finalTerminalMap = convertKeysToUpperCase(commTerminalGeneralClient.getCustomDetailByLineId(reportSearchParam.getLineId()).getData());
|
finalTerminalMap = convertKeysToUpperCase(csLineFeignClient.getCustomDetailByLineId(reportSearchParam.getLineId()).getData());
|
||||||
} else {
|
} else {
|
||||||
finalTerminalMap = new HashMap<>();
|
finalTerminalMap = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,10 @@ spring:
|
|||||||
refresh: true
|
refresh: true
|
||||||
main:
|
main:
|
||||||
allow-bean-definition-overriding: true
|
allow-bean-definition-overriding: true
|
||||||
|
servlet:
|
||||||
|
multipart:
|
||||||
|
max-file-size: 100MB
|
||||||
|
max-request-size: 100MB
|
||||||
|
|
||||||
|
|
||||||
#项目日志的配置
|
#项目日志的配置
|
||||||
@@ -46,6 +50,8 @@ logging:
|
|||||||
mybatis-plus:
|
mybatis-plus:
|
||||||
#别名扫描
|
#别名扫描
|
||||||
type-aliases-package: com.njcn.harmonic.pojo
|
type-aliases-package: com.njcn.harmonic.pojo
|
||||||
|
global-config:
|
||||||
|
enable-sql-runner: true
|
||||||
|
|
||||||
mqtt:
|
mqtt:
|
||||||
client-id: @artifactId@${random.value}
|
client-id: @artifactId@${random.value}
|
||||||
|
|||||||
Reference in New Issue
Block a user