1.运行管理追加分页;
2.新增终端在线率统计接口; 3.移植运行状态接口
This commit is contained in:
@@ -6,6 +6,8 @@ import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0.0
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.njcn.device.api;
|
||||
import com.njcn.common.pojo.constant.ServerInfo;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.device.api.fallback.DeptLineFeignClientFallbackFactory;
|
||||
import io.lettuce.core.dynamic.annotation.Param;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@@ -22,4 +23,7 @@ public interface DeptLineFeignClient {
|
||||
|
||||
@PostMapping("/selectDeptBindLines")
|
||||
HttpResult<Boolean> selectDeptBindLines(@RequestParam("ids") List<String> ids);
|
||||
|
||||
@PostMapping("removeBind")
|
||||
Integer removeBind(@RequestParam("id") String id);
|
||||
}
|
||||
|
||||
@@ -43,6 +43,12 @@ public class DeptLineFeignClientFallbackFactory implements FallbackFactory<DeptL
|
||||
log.error("{}异常,降级处理,异常为:{}", "部门Ids集合查询是否绑定", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer removeBind(String id) {
|
||||
log.error("{}异常,降级处理,异常为:{}", "部门解除绑定", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.njcn.harmonic.pojo.param;
|
||||
package com.njcn.device.pojo.param;
|
||||
|
||||
import com.njcn.common.pojo.constant.PatternRegex;
|
||||
import com.njcn.harmonic.constant.HarmonicValidMessage;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
@@ -21,12 +20,10 @@ public class PulicTimeParam {
|
||||
@ApiModelProperty("监测点id")
|
||||
private String id;
|
||||
@ApiModelProperty("开始时间")
|
||||
@NotBlank(message = HarmonicValidMessage.DATA_NOT_BLANK)
|
||||
@Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误")
|
||||
private String searchBeginTime;
|
||||
|
||||
@ApiModelProperty("结束时间")
|
||||
@NotBlank(message = HarmonicValidMessage.DATA_NOT_BLANK)
|
||||
@Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误")
|
||||
private String searchEndTime;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.harmonic.pojo.param;
|
||||
package com.njcn.device.pojo.param;
|
||||
|
||||
import com.njcn.common.pojo.constant.PatternRegex;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@@ -2,9 +2,11 @@ package com.njcn.device.pojo.param;
|
||||
|
||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||
import com.njcn.web.constant.ValidMessage;
|
||||
import com.njcn.web.pojo.param.BaseParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.hibernate.validator.constraints.Range;
|
||||
|
||||
@@ -18,10 +20,14 @@ import java.util.List;
|
||||
* @version 1.0.0
|
||||
* @date 2022/3/30
|
||||
*/
|
||||
/**
|
||||
* 分页查询实体
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel
|
||||
@NoArgsConstructor
|
||||
public class RunManageParam implements Serializable {
|
||||
public class RunManageParam extends BaseParam implements Serializable {
|
||||
|
||||
@ApiModelProperty(name = "statisticalType", value = "统计类型")
|
||||
@NotNull(message = "统计类型不可为空")
|
||||
@@ -31,6 +37,9 @@ public class RunManageParam implements Serializable {
|
||||
@NotBlank(message = "部门索引不可为空")
|
||||
private String deptIndex;
|
||||
|
||||
@ApiModelProperty(name = "serverName", value = "服务名称")
|
||||
private String serverName;
|
||||
|
||||
@ApiModelProperty(name = "scale", value = "电压等级")
|
||||
private List<SimpleDTO> scale;
|
||||
|
||||
@@ -54,12 +63,15 @@ public class RunManageParam implements Serializable {
|
||||
* 1-非电网侧
|
||||
*/
|
||||
@ApiModelProperty("电网侧标识")
|
||||
@Range(min = 0, max = 1, message = "电网侧标识" + ValidMessage.PARAM_FORMAT_ERROR)
|
||||
@Range(min = 0, max = 2, message = "电网侧标识" + ValidMessage.PARAM_FORMAT_ERROR)
|
||||
private int powerFlag;
|
||||
|
||||
@ApiModelProperty(name = "comFlag", value = "通讯状态")
|
||||
@NotNull(message = "通讯状态不可为空")
|
||||
private List<Integer> comFlag;
|
||||
|
||||
@ApiModelProperty(name = "runFlag", value = "终端状态")
|
||||
@NotNull(message = "终端状态不可为空")
|
||||
private List<Integer> runFlag;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.harmonic.pojo.vo;
|
||||
package com.njcn.device.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.njcn.device.pojo.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @version 1.0.0
|
||||
* @author denghuajun
|
||||
* @date 2022/05/26 18:41
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class DeviceOnlineDataVO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("年")
|
||||
private String year;
|
||||
|
||||
@ApiModelProperty("月")
|
||||
private String month;
|
||||
|
||||
@ApiModelProperty("在线率")
|
||||
private Float onlineRate;
|
||||
}
|
||||
@@ -18,6 +18,9 @@ public class RunTimeVO implements Serializable {
|
||||
@ApiModelProperty(name = "runNo",value = "序号")
|
||||
private Integer runNo;
|
||||
|
||||
@ApiModelProperty(name = "id",value = "终端id")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(name = "areaName",value = "工程名称")
|
||||
private String areaName;
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.njcn.device.utils;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
|
||||
public class PublicDateUtil {
|
||||
|
||||
/**
|
||||
* 获取某年某月的第一天
|
||||
*/
|
||||
public static String getFisrtDayOfMonth(int year,int month){
|
||||
Calendar cal = Calendar.getInstance();
|
||||
//设置年份
|
||||
cal.set(Calendar.YEAR,year);
|
||||
//设置月份
|
||||
cal.set(Calendar.MONTH, month-1);
|
||||
//获取某月最小天数
|
||||
int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
|
||||
//设置日历中月份的最小天数
|
||||
cal.set(Calendar.DAY_OF_MONTH, firstDay);
|
||||
//格式化日期
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
return sdf.format(cal.getTime());
|
||||
}
|
||||
/**
|
||||
* 获取某月的最后一天
|
||||
*/
|
||||
public static String getLastDayOfMonth(int year,int month)
|
||||
{
|
||||
Calendar cal = Calendar.getInstance();
|
||||
//设置年份
|
||||
cal.set(Calendar.YEAR,year);
|
||||
//设置月份
|
||||
cal.set(Calendar.MONTH, month-1);
|
||||
//获取某月最大天数
|
||||
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
|
||||
//设置日历中月份的最大天数
|
||||
cal.set(Calendar.DAY_OF_MONTH, lastDay);
|
||||
//格式化日期
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
return sdf.format(cal.getTime());
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.harmonic.controller;
|
||||
package com.njcn.device.controller;
|
||||
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
@@ -6,29 +6,34 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.device.pojo.vo.CommunicateVO;
|
||||
import com.njcn.harmonic.pojo.param.PulicTimeParam;
|
||||
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.harmonic.pojo.vo.CommunicateStatisticsVO;
|
||||
import com.njcn.harmonic.service.CommunicateService;
|
||||
import com.njcn.device.pojo.param.PulicTimeParam;
|
||||
import com.njcn.device.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.device.pojo.vo.CommunicateStatisticsVO;
|
||||
import com.njcn.device.pojo.vo.DeviceOnlineDataVO;
|
||||
import com.njcn.device.service.CommunicateService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author denghuajun
|
||||
* @date 2022/2/28
|
||||
*
|
||||
*/
|
||||
@Validated
|
||||
@Slf4j
|
||||
@Api(tags = "运行状态管理")
|
||||
@RestController
|
||||
@RequestMapping("/communicate")
|
||||
@Api(tags = "运行状态管理")
|
||||
@AllArgsConstructor
|
||||
@RequiredArgsConstructor
|
||||
public class CommunicateController extends BaseController {
|
||||
|
||||
private final CommunicateService communicateService;
|
||||
@@ -52,4 +57,14 @@ public class CommunicateController extends BaseController {
|
||||
CommunicateStatisticsVO list = communicateService.getRunInfoData(pulicTimeStatisParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getRunOnlineRateData")
|
||||
@ApiOperation("终端在线率统计")
|
||||
@ApiImplicitParam(name = "pulicTimeParam", value = "终端在线率统计", required = true)
|
||||
public HttpResult<List<DeviceOnlineDataVO>> getRunOnlineRateData(@RequestBody @Validated PulicTimeParam pulicTimeParam) {
|
||||
String methodDescribe = getMethodDescribe("getRunOnlineRateData");
|
||||
List<DeviceOnlineDataVO> list = communicateService.getRunOnlineRateData(pulicTimeParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
}
|
||||
@@ -91,10 +91,9 @@ public class DeptLineController extends BaseController {
|
||||
@PostMapping("/removeBind")
|
||||
@ApiOperation("部门解除绑定监测点")
|
||||
@ApiImplicitParam(name = "id", value = "部门id", required = true)
|
||||
public HttpResult removeBind(@RequestParam("id") String id) {
|
||||
public Integer removeBind(@RequestParam("id") String id) {
|
||||
String methodDescribe = getMethodDescribe("removeBind");
|
||||
deptLineService.removeBind(id);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
return deptLineService.removeBind(id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -96,4 +96,6 @@ public class OperationContrController extends BaseController {
|
||||
LineStaticsViewVO result = lineService.getLineStaticsView(startTime, endTime, lineId);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.njcn.device.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.device.pojo.po.Device;
|
||||
import com.njcn.device.pojo.vo.RunManageVO;
|
||||
import com.njcn.device.pojo.vo.RunTimeVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
@@ -25,4 +27,21 @@ public interface DeviceMapper extends BaseMapper<Device> {
|
||||
//TODO
|
||||
List<Device> getDeviceList(@Param("list") List<String> list);
|
||||
|
||||
/**
|
||||
* 获取监测点台账信息
|
||||
* @param list 监测点集合
|
||||
* @param comFlag 状态
|
||||
* @param runFlag 状态
|
||||
* @return 结果
|
||||
*/
|
||||
List<RunManageVO> getRunManageList(@Param("list") List<String> list, @Param("comFlag")List<Integer> comFlag, @Param("runFlag")List<Integer> runFlag);
|
||||
|
||||
/**
|
||||
* 获取监测点台账信息
|
||||
* @param list 终端集合
|
||||
* @param comFlag 状态
|
||||
* @param runFlag 状态
|
||||
* @return 结果
|
||||
*/
|
||||
List<RunTimeVO> getRunManageDevList(@Param("list") List<String> list, @Param("comFlag")List<Integer> comFlag, @Param("runFlag")List<Integer> runFlag);
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ public interface LineMapper extends BaseMapper<Line> {
|
||||
/**
|
||||
* 返回省份的上级
|
||||
*/
|
||||
String selectProject(@Param("areaId") String areaId);
|
||||
List<String> selectProject(@Param("areaId") String areaId);
|
||||
|
||||
/**
|
||||
* @param areaId
|
||||
|
||||
@@ -7,4 +7,163 @@
|
||||
|
||||
</select>
|
||||
|
||||
<select id="getRunManageList" resultType="com.njcn.device.pojo.vo.RunManageVO">
|
||||
SELECT
|
||||
linedetail.Num AS id,
|
||||
line.NAME AS lineName,
|
||||
area.NAME AS areaName,
|
||||
gd.NAME AS gdName,
|
||||
sub.NAME AS bdName,
|
||||
scaleId.Name as scale,
|
||||
manufacturerId.name as manufacturer,
|
||||
dev.name as devName,
|
||||
device.IP as ip,
|
||||
case device.Run_Flag when 0 then "投运"
|
||||
when 1 then "热备用"
|
||||
when 2 then "停运"
|
||||
end as runFlag,
|
||||
case device.Com_Flag when 0 then "中断"
|
||||
when 1 then "正常"
|
||||
end as comFlag,
|
||||
loadtypeId.Name as loadType,
|
||||
businesstypeId.name as businessType,
|
||||
IFNULL(linedetail.Obj_Name,"/") as objName,
|
||||
case linedetail.PT_Type when 0 then "星型接线"
|
||||
when 1 then "三角型接线"
|
||||
when 2 then "开口三角型接线"
|
||||
end as ptType,
|
||||
CONCAT(linedetail.PT1,"/", linedetail.PT2) as pt,
|
||||
CONCAT(linedetail.CT1,"/", linedetail.CT2) as ct,
|
||||
linedetail.Standard_Capacity as standardCapacity,
|
||||
linedetail.Short_Capacity as shortCapacity,
|
||||
linedetail.Dev_Capacity as devCapacity,
|
||||
linedetail.Deal_Capacity as dealCapacity,
|
||||
over.Freq_Dev as freqDev,
|
||||
over.Voltage_Dev as voltageDev,
|
||||
over.Uvoltage_Dev as uvoltageDev,
|
||||
over.Ubalance as ubalance,
|
||||
over.I_Neg as iNeg,
|
||||
over.Flicker as flicker,
|
||||
over.Uaberrance as uaberrance,
|
||||
over.Uharm_3 as oddHarm,
|
||||
over.Uharm_2 as evenHarm,
|
||||
over.Iharm_2 as iharm2,
|
||||
over.Iharm_3 as iharm3,
|
||||
over.Iharm_4 as iharm4,
|
||||
over.Iharm_5 as iharm5,
|
||||
over.Iharm_6 as iharm6,
|
||||
over.Iharm_7 as iharm7,
|
||||
over.Iharm_8 as iharm8,
|
||||
over.Iharm_9 as iharm9,
|
||||
over.Iharm_10 as iharm10,
|
||||
over.Iharm_11 as iharm11,
|
||||
over.Iharm_12 as iharm12,
|
||||
over.Iharm_13 as iharm13,
|
||||
over.Iharm_14 as iharm14,
|
||||
over.Iharm_15 as iharm15,
|
||||
over.Iharm_16 as iharm16,
|
||||
over.Iharm_17 as iharm17,
|
||||
over.Iharm_18 as iharm18,
|
||||
over.Iharm_19 as iharm19,
|
||||
over.Iharm_20 as iharm20,
|
||||
over.Iharm_21 as iharm21,
|
||||
over.Iharm_22 as iharm22,
|
||||
over.Iharm_23 as iharm23,
|
||||
over.Iharm_24 as iharm24,
|
||||
over.Iharm_25 as iharm25,
|
||||
over.InUharm_1 as inUharm,
|
||||
over.InUharm_16 as inUharm16
|
||||
FROM
|
||||
pq_line line
|
||||
INNER JOIN pq_line vol ON vol.Id = line.Pid
|
||||
INNER JOIN pq_line dev ON dev.Id = vol.Pid
|
||||
INNER JOIN pq_line sub ON sub.Id = dev.Pid
|
||||
INNER JOIN pq_line gd ON gd.Id = sub.Pid
|
||||
INNER JOIN pq_line areaId ON areaId.Id = gd.Pid
|
||||
INNER JOIN sys_area area ON area.Id = areaId.NAME
|
||||
INNER JOIN pq_overlimit over ON over.Id = line.Id
|
||||
INNER JOIN pq_voltage voltage ON voltage.Id = vol.Id
|
||||
INNER JOIN sys_dict_data scaleId ON scaleId.Id = voltage.Scale
|
||||
INNER JOIN pq_device device ON device.Id = dev.Id
|
||||
INNER JOIN sys_dict_data manufacturerId ON manufacturerId.Id = device.Manufacturer
|
||||
INNER JOIN pq_line_detail linedetail ON linedetail.Id = line.Id
|
||||
INNER JOIN sys_dict_data loadtypeId ON loadtypeId.Id = linedetail.Load_Type
|
||||
INNER JOIN sys_dict_data businesstypeId ON businesstypeId.Id = linedetail.Business_Type
|
||||
WHERE line.Id in
|
||||
<foreach item="item" collection="list" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test="runFlag == '' and type !=null">
|
||||
and device.Run_Flag in
|
||||
<foreach item="item1" collection="runFlag" open="(" separator="," close=")">
|
||||
#{item1}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="comFlag == '' and type !=null">
|
||||
and device.Com_Flag in
|
||||
<foreach item="item2" collection="comFlag" open="(" separator="," close=")">
|
||||
#{item2}
|
||||
</foreach>
|
||||
</if>
|
||||
ORDER BY
|
||||
areaId.NAME
|
||||
</select>
|
||||
|
||||
<select id="getRunManageDevList" resultType="com.njcn.device.pojo.vo.RunTimeVO">
|
||||
SELECT
|
||||
dev.Id as id,
|
||||
area.NAME AS areaName,
|
||||
gd.NAME AS gdName,
|
||||
sub.NAME AS bdName,
|
||||
manufacturerId.NAME AS manufacturer,
|
||||
dev.NAME AS devName,
|
||||
device.IP AS ip,
|
||||
device.Login_Time AS loginTime,
|
||||
devT.Name AS devType,
|
||||
device.PORT AS PORT,
|
||||
CASE
|
||||
device.Run_Flag
|
||||
WHEN 0 THEN
|
||||
"投运"
|
||||
WHEN 1 THEN
|
||||
"热备用"
|
||||
WHEN 2 THEN
|
||||
"停运"
|
||||
END AS runFlag,
|
||||
CASE
|
||||
device.Com_Flag
|
||||
WHEN 0 THEN
|
||||
"中断"
|
||||
WHEN 1 THEN
|
||||
"正常"
|
||||
END AS comFlag,
|
||||
device.Update_Time AS updateTime
|
||||
FROM
|
||||
pq_line dev
|
||||
INNER JOIN pq_line sub ON sub.Id = dev.Pid
|
||||
INNER JOIN pq_line gd ON gd.Id = sub.Pid
|
||||
INNER JOIN pq_line areaId ON areaId.Id = gd.Pid
|
||||
INNER JOIN sys_area area ON area.Id = areaId.
|
||||
NAME INNER JOIN pq_device device ON device.Id = dev.Id
|
||||
INNER JOIN sys_dict_data manufacturerId ON manufacturerId.Id = device.Manufacturer
|
||||
INNER JOIN sys_dict_data devT ON devT.Id = device.Dev_Type
|
||||
WHERE dev.Id in
|
||||
<foreach item="item" collection="list" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test="runFlag == '' and type !=null">
|
||||
and device.Run_Flag in
|
||||
<foreach item="item1" collection="runFlag" open="(" separator="," close=")">
|
||||
#{item1}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="comFlag == '' and type !=null">
|
||||
and device.Com_Flag in
|
||||
<foreach item="item2" collection="comFlag" open="(" separator="," close=")">
|
||||
#{item2}
|
||||
</foreach>
|
||||
</if>
|
||||
ORDER BY
|
||||
areaId.NAME
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.njcn.device.service;
|
||||
|
||||
import com.njcn.device.pojo.vo.CommunicateVO;
|
||||
import com.njcn.device.pojo.param.PulicTimeParam;
|
||||
import com.njcn.device.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.device.pojo.vo.CommunicateStatisticsVO;
|
||||
import com.njcn.device.pojo.vo.DeviceOnlineDataVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author denghuajun
|
||||
* @date 2022/2/28
|
||||
*
|
||||
*/
|
||||
public interface CommunicateService {
|
||||
|
||||
CommunicateVO getComFlagInfoData(PulicTimeParam pulicTimeParam);
|
||||
|
||||
CommunicateStatisticsVO getRunInfoData(PulicTimeStatisParam pulicTimeStatisParam);
|
||||
|
||||
List<DeviceOnlineDataVO> getRunOnlineRateData(PulicTimeParam pulicTimeParam);
|
||||
}
|
||||
@@ -0,0 +1,229 @@
|
||||
package com.njcn.device.service.impl;
|
||||
|
||||
import com.njcn.device.api.LineFeignClient;
|
||||
import com.njcn.device.pojo.vo.CommunicateVO;
|
||||
import com.njcn.device.pojo.param.PulicTimeParam;
|
||||
import com.njcn.device.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.device.pojo.vo.CommunicateStatisticsVO;
|
||||
import com.njcn.device.pojo.vo.DeviceOnlineDataVO;
|
||||
import com.njcn.device.service.CommunicateService;
|
||||
import com.njcn.device.service.LineService;
|
||||
import com.njcn.device.utils.PublicDateUtil;
|
||||
import com.njcn.influxdb.utils.InfluxDbUtils;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.xmlbeans.SimpleValue;
|
||||
import org.influxdb.dto.QueryResult;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import static com.njcn.influxdb.param.InfluxDBPublicParam.*;
|
||||
|
||||
/**
|
||||
* @author denghuajun
|
||||
* @date 2022/2/28
|
||||
*/
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
public class CommunicateServiceImpl implements CommunicateService {
|
||||
|
||||
private final LineService lineService;
|
||||
|
||||
private final InfluxDbUtils influxDbUtils;
|
||||
|
||||
@Override
|
||||
public CommunicateVO getComFlagInfoData(PulicTimeParam pulicTimeParam) {
|
||||
//根据监测点id获取终端状态信息
|
||||
return lineService.getComFlagInfoData(pulicTimeParam.getId(), pulicTimeParam.getSearchBeginTime(), pulicTimeParam.getSearchEndTime());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommunicateStatisticsVO getRunInfoData(PulicTimeStatisParam pulicTimeStatisParam) {
|
||||
CommunicateStatisticsVO communicateStatisticsVO = new CommunicateStatisticsVO();
|
||||
//根据监测点id获取终端id
|
||||
String devId = lineService.getLineIdByDevId(pulicTimeStatisParam.getId());
|
||||
List<Float> floatList = new ArrayList<>();
|
||||
List<Float> floats = new ArrayList<>();
|
||||
floatList.add(getCondition(pulicTimeStatisParam.getId(), pulicTimeStatisParam.getSearchBeginTime(), pulicTimeStatisParam.getSearchEndTime(), 0) * 100);
|
||||
floats.add(getCondition(devId, pulicTimeStatisParam.getSearchBeginTime(), pulicTimeStatisParam.getSearchEndTime(), 1) * 100);
|
||||
if (StringUtils.isNotBlank(pulicTimeStatisParam.getPeriodBeginTime()) && StringUtils.isNotBlank(pulicTimeStatisParam.getPeriodEndTime())) {
|
||||
floatList.add(getCondition(pulicTimeStatisParam.getId(), pulicTimeStatisParam.getPeriodBeginTime(), pulicTimeStatisParam.getPeriodEndTime(), 0) * 100);
|
||||
floats.add(getCondition(devId, pulicTimeStatisParam.getPeriodBeginTime(), pulicTimeStatisParam.getPeriodEndTime(), 1) * 100);
|
||||
}
|
||||
communicateStatisticsVO.setOnlineRateData(floats);
|
||||
communicateStatisticsVO.setIntegrityData(floatList);
|
||||
return communicateStatisticsVO;
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public List<DeviceOnlineDataVO> getRunOnlineRateData(PulicTimeParam pulicTimeParam) {
|
||||
List<DeviceOnlineDataVO> deviceOnlineDataList = new ArrayList<>();
|
||||
//根据监测点id获取终端id
|
||||
String devId = lineService.getLineIdByDevId(pulicTimeParam.getId());
|
||||
DecimalFormat decimalFormat=new DecimalFormat(".00");
|
||||
Float floatList;
|
||||
// 获取两个时间的之间的月份
|
||||
List<String> intervalTime = this.getIntervalTime(pulicTimeParam.getSearchBeginTime(), pulicTimeParam.getSearchEndTime());
|
||||
for (String interTime : intervalTime) {
|
||||
DeviceOnlineDataVO inter = new DeviceOnlineDataVO();
|
||||
String startTime, endTime;
|
||||
inter.setMonth(interTime.substring(5));
|
||||
inter.setYear(interTime.substring(0, 4));
|
||||
startTime = PublicDateUtil.getFisrtDayOfMonth(Integer.parseInt(interTime.substring(0,4)),Integer.parseInt(interTime.substring(5)));
|
||||
endTime = PublicDateUtil.getLastDayOfMonth(Integer.parseInt(interTime.substring(0,4)),Integer.parseInt(interTime.substring(5)));
|
||||
SimpleValue temp;
|
||||
floatList = getCondition(devId, startTime, endTime, 1);
|
||||
inter.setOnlineRate(Float.parseFloat(decimalFormat.format(floatList*100)));
|
||||
deviceOnlineDataList.add(inter);
|
||||
}
|
||||
return deviceOnlineDataList;
|
||||
}
|
||||
|
||||
/**
|
||||
* influxDB相关操作
|
||||
* 查询监测点的数据完整性
|
||||
*/
|
||||
private Float getCondition(String lineList, String startTime, String endTime, Integer state) {
|
||||
final Float[] resultList = {0.0f};
|
||||
//组装sql语句
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append(TIME + " >= '").append(startTime).append(START_TIME).append("' and ").append(TIME).append(" <= '").append(endTime).append(END_TIME).append("' and (");
|
||||
//sql语句
|
||||
String sql = "";
|
||||
if (state == 0) {
|
||||
stringBuilder.append(LINE_ID + "='").append(lineList).append("')");
|
||||
sql = "SELECT SUM(" + REAL + ")/SUM(" + DUE + ") AS integrity FROM pqs_integrity WHERE " + stringBuilder.toString() + " group by " + LINE_ID + " tz('Asia/Shanghai')";
|
||||
} else {
|
||||
stringBuilder.append(DEV_INDEX + "='").append(lineList).append("')");
|
||||
sql = "SELECT SUM(" + ONLINE_MIN + ")/(SUM(" + OFFLINE_MIN + ")+SUM(" + ONLINE_MIN + ")) AS onlineRate FROM pqs_onlinerate WHERE " + stringBuilder.toString() + " group by " + DEV_INDEX + " tz('Asia/Shanghai')";
|
||||
}
|
||||
//结果集
|
||||
QueryResult result = influxDbUtils.query(sql);
|
||||
//处理结果集
|
||||
List<QueryResult.Series> list = result.getResults().get(0).getSeries();
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
list.forEach(po -> {
|
||||
List<List<Object>> valueList = po.getValues();
|
||||
if (!CollectionUtils.isEmpty(valueList)) {
|
||||
for (List<Object> value : valueList) {
|
||||
//数据完整性 保留四位小数
|
||||
resultList[0] = value.get(1) == null ? null : BigDecimal.valueOf(Float.parseFloat(value.get(1).toString())).setScale(4, BigDecimal.ROUND_HALF_UP).floatValue();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return resultList[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据用户选择的时间区间返回月份日期
|
||||
*/
|
||||
@SneakyThrows
|
||||
private List<String> getIntervalTime(String startTime, String endTime) {
|
||||
List<String> times = new ArrayList<>();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||
Date start = sdf.parse(startTime);
|
||||
Date end = sdf.parse(endTime);
|
||||
// 同月
|
||||
if (start.getTime() == end.getTime()) {
|
||||
String time = startTime.substring(0, 7);
|
||||
times.add(time);
|
||||
} else if (start.getYear() == end.getYear()) {
|
||||
// 同年
|
||||
int startM = start.getMonth() + 1;
|
||||
int endM = end.getMonth() + 1;
|
||||
int temp = endM - startM;
|
||||
for (int i = 0; i <= temp; i++) {
|
||||
String time = start.getYear() + 1900 + "";
|
||||
int month = startM + i;
|
||||
if (month < 10) {
|
||||
time = time + "-0" + month;
|
||||
} else {
|
||||
time = time + "-" + month;
|
||||
}
|
||||
times.add(time);
|
||||
}
|
||||
} else {
|
||||
// 不同年!!!!这里忽略了年份之间跨年的情况
|
||||
int startY = start.getYear() + 1900;
|
||||
int startM = start.getMonth() + 1;
|
||||
int endY = end.getYear() + 1900;
|
||||
int endM = end.getMonth() + 1;
|
||||
int tempS = 12 - startM;
|
||||
// 连续的年份
|
||||
if (endY - startY == 1) {
|
||||
// 第一年的时间获取
|
||||
for (int i = 0; i <= tempS; i++) {
|
||||
int month = startM + i;
|
||||
String time = startY + "-";
|
||||
if (month < 10) {
|
||||
time = time + "0" + month;
|
||||
} else {
|
||||
time = time + month;
|
||||
}
|
||||
times.add(time);
|
||||
}
|
||||
// 第二年的时间获取
|
||||
|
||||
for (int i = 1; i <= endM; i++) {
|
||||
String time = endY + "-";
|
||||
if (i < 10) {
|
||||
time = time + "0" + i;
|
||||
} else {
|
||||
time = time + i;
|
||||
}
|
||||
times.add(time);
|
||||
}
|
||||
} else {
|
||||
// 不连续的年份
|
||||
// 第一年的时间获取
|
||||
for (int i = 0; i <= tempS; i++) {
|
||||
int month = startM + i;
|
||||
String time = startY + "-";
|
||||
if (month < 10) {
|
||||
time = time + "0" + month;
|
||||
} else {
|
||||
time = time + month;
|
||||
}
|
||||
times.add(time);
|
||||
}
|
||||
int tempY = endY - startY;
|
||||
// 中间年份的时间
|
||||
for (int i = 1; i < tempY; i++) {
|
||||
for (int j = 1; j <= 12; j++) {
|
||||
String time = startY + i + "-";
|
||||
if (j < 10) {
|
||||
time = time + "0" + j;
|
||||
} else {
|
||||
time = time + j;
|
||||
}
|
||||
times.add(time);
|
||||
}
|
||||
}
|
||||
// 最后一年的时间获取
|
||||
for (int i = 1; i <= endM; i++) {
|
||||
String time = endY + "-";
|
||||
if (i < 10) {
|
||||
time = time + "0" + i;
|
||||
} else {
|
||||
time = time + i;
|
||||
}
|
||||
times.add(time);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return times;
|
||||
}
|
||||
}
|
||||
@@ -78,46 +78,18 @@ public class RunManageServiceImpl implements RunManageService {
|
||||
List<RunManageVO> runManageVOList = new ArrayList<>();
|
||||
DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
|
||||
BeanUtil.copyProperties(runManageParam, deviceInfoParam);
|
||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfoAsDept(deviceInfoParam, Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
|
||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, runManageParam.getRunFlag(), Stream.of(1).collect(Collectors.toList()));
|
||||
List<String> lineIndexes = new ArrayList<>();
|
||||
List<String> devIndexes = new ArrayList<>();
|
||||
List<String> lineIndex = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
|
||||
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
|
||||
lineIndexes.addAll(generalDeviceDTO.getLineIndexes());
|
||||
}
|
||||
QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("pq_device.Com_Flag", runManageParam.getComFlag());
|
||||
queryWrapper.in("pq_device.Run_Flag", runManageParam.getRunFlag());
|
||||
List<Device> deviceList = deviceMapper.selectList(queryWrapper);
|
||||
//获取满足条件的终端id
|
||||
for (Device device : deviceList) {
|
||||
devIndexes.add(device.getId());
|
||||
}
|
||||
//根据终端id获取监测点id
|
||||
QueryWrapper<Line> lineQueryWrapper = new QueryWrapper<>();
|
||||
lineQueryWrapper.in("pq_line.pid", devIndexes);
|
||||
List<Line> lineList = lineMapper.selectList(lineQueryWrapper);
|
||||
for (Line line : lineList) {
|
||||
QueryWrapper<Line> queryWrappers = new QueryWrapper<>();
|
||||
queryWrappers.eq("pq_line.pid", line.getId());
|
||||
List<Line> lines = lineMapper.selectList(queryWrappers);
|
||||
for (Line l : lines) {
|
||||
lineIndex.add(l.getId());
|
||||
}
|
||||
}
|
||||
lineIndexes.retainAll(lineIndex);
|
||||
Integer i = 1;
|
||||
for (String line : lineIndexes) {
|
||||
RunManageVO runManageVO = new RunManageVO();
|
||||
//获取监测点详情
|
||||
LineDetailDataVO lineDataVO = lineService.getLineDetailData(line);
|
||||
//获取越限详情
|
||||
LineOverLimitVO lineOverLimitVO = lineService.getLineOverLimitData(line);
|
||||
BeanUtil.copyProperties(lineDataVO, runManageVO);
|
||||
BeanUtil.copyProperties(lineOverLimitVO, runManageVO);
|
||||
List<RunManageVO> list = deviceMapper.getRunManageList(lineIndexes, runManageParam.getComFlag(), runManageParam.getRunFlag());
|
||||
runManageVOList = list.stream().skip((runManageParam.getPageNum() - 1) * runManageParam.getPageSize()).limit(runManageParam.getPageSize()).
|
||||
collect(Collectors.toList());
|
||||
int i = 1;
|
||||
for (RunManageVO runManageVO : runManageVOList) {
|
||||
runManageVO.setRunNo(i);
|
||||
runManageVOList.add(runManageVO);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
@@ -126,68 +98,24 @@ public class RunManageServiceImpl implements RunManageService {
|
||||
|
||||
@Override
|
||||
public List<RunTimeVO> getRuntimeDetail(RunManageParam runManageParam) {
|
||||
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
|
||||
List<RunTimeVO> runTimeVOList = new ArrayList<>();
|
||||
DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
|
||||
BeanUtil.copyProperties(runManageParam, deviceInfoParam);
|
||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfoAsDept(deviceInfoParam, Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
|
||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
|
||||
List<String> devIndexes = new ArrayList<>();
|
||||
List<String> devIndex = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
|
||||
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
|
||||
devIndexes.addAll(generalDeviceDTO.getDeviceIndexes());
|
||||
}
|
||||
QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("pq_device.Com_Flag", runManageParam.getComFlag());
|
||||
queryWrapper.in("pq_device.Run_Flag", runManageParam.getRunFlag());
|
||||
List<Device> deviceList = deviceMapper.selectList(queryWrapper);
|
||||
for (Device device : deviceList) {
|
||||
devIndex.add(device.getId());
|
||||
}
|
||||
devIndexes.retainAll(devIndex);
|
||||
Integer i = 1;
|
||||
for (String devIndexs : devIndexes) {
|
||||
RunTimeVO runTimeVO = new RunTimeVO();
|
||||
Device device = deviceMapper.selectById(devIndexs);
|
||||
//根据id查询当前信息的pids
|
||||
List<String> pids = Arrays.asList(lineMapper.selectById(devIndexs).getPids().split(","));
|
||||
List<String> list = new ArrayList<>(pids);
|
||||
list.add(devIndexs);
|
||||
List<LineDataVO> lineDataVOList = lineMapper.getLineDetail(list);
|
||||
List<RunTimeVO> list = deviceMapper.getRunManageDevList(devIndexes, runManageParam.getComFlag(), runManageParam.getRunFlag());
|
||||
runTimeVOList = list.stream().skip((runManageParam.getPageNum() - 1) * runManageParam.getPageSize()).limit(runManageParam.getPageSize()).
|
||||
collect(Collectors.toList());
|
||||
int i = 1;
|
||||
for (RunTimeVO runTimeVO : runTimeVOList) {
|
||||
runTimeVO.setRunNo(i);
|
||||
String areaId = "";
|
||||
for (LineDataVO lineDataVO : lineDataVOList) {
|
||||
switch (lineDataVO.getLevel()) {
|
||||
case 1:
|
||||
areaId = lineDataVO.getName();
|
||||
break;
|
||||
case 2:
|
||||
runTimeVO.setGdName(lineDataVO.getName());
|
||||
break;
|
||||
case 3:
|
||||
runTimeVO.setBdName(lineDataVO.getName());
|
||||
break;
|
||||
case 4:
|
||||
runTimeVO.setDevName(lineDataVO.getName());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
runTimeVO.setAreaName(areaFeignClient.selectIdArea(areaId).getData().getName());
|
||||
runTimeVO.setManufacturer(dicDataFeignClient.getDicDataById(device.getManufacturer()).getData().getName());
|
||||
runTimeVO.setComFlag(PubUtils.comFlag(device.getComFlag()));
|
||||
runTimeVO.setRunFlag(PubUtils.runFlag(device.getRunFlag()));
|
||||
runTimeVO.setIp(device.getIp());
|
||||
runTimeVO.setLoginTime(fmt.format(device.getLoginTime()));
|
||||
runTimeVO.setDevType(dicDataFeignClient.getDicDataById(device.getDevType()).getData().getName());
|
||||
runTimeVO.setPort(device.getPort().toString());
|
||||
runTimeVO.setUpdateTime(dateTimeFormatter.format(device.getUpdateTime()));
|
||||
//获取在线率
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
runTimeVO.setOnlineEvaluate(getCondition(formatter.format(DateUtil.lastMonth()), formatter.format(DateUtil.dateNew(new Date())), devIndexs) * 100);
|
||||
runTimeVOList.add(runTimeVO);
|
||||
runTimeVO.setOnlineEvaluate(getCondition(formatter.format(DateUtil.lastMonth()), formatter.format(DateUtil.dateNew(new Date())), runTimeVO.getId()) * 100);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
@@ -199,9 +127,9 @@ public class RunManageServiceImpl implements RunManageService {
|
||||
QueryResult queryResult;
|
||||
if (!lineId.isEmpty()) {
|
||||
//组装sql语句
|
||||
String stringBuilder = "time >= '" + startTime + "' and " + "time <= '" + endTime + "' and (" + DEV_INDEX +" ='" + lineId + "') ";
|
||||
String stringBuilder = "time >= '" + startTime + "' and " + "time <= '" + endTime + "' and (" + DEV_INDEX + " ='" + lineId + "') ";
|
||||
//sql语句
|
||||
String sql = "SELECT SUM("+ ONLINE_MIN+")/(SUM("+OFFLINE_MIN+")+SUM("+ONLINE_MIN+")) AS onlineRate FROM "+PQS_ONLINERATE+" WHERE " + stringBuilder+TIME_ZONE;
|
||||
String sql = "SELECT SUM(" + ONLINE_MIN + ")/(SUM(" + OFFLINE_MIN + ")+SUM(" + ONLINE_MIN + ")) AS onlineRate FROM " + PQS_ONLINERATE + " WHERE " + stringBuilder + TIME_ZONE;
|
||||
queryResult = influxDbUtils.query(sql);
|
||||
//处理结果集
|
||||
List<org.influxdb.dto.QueryResult.Series> list = queryResult.getResults().get(0).getSeries();
|
||||
@@ -275,7 +203,7 @@ public class RunManageServiceImpl implements RunManageService {
|
||||
for (SimpleDTO simpleDTO : scales) {
|
||||
List<String> voltageScaleIds = terminalBaseService.getVoltageIdByScale(generalDeviceDTO.getVoltageIndexes(), simpleDTO.getId());
|
||||
GeneralDeviceDTO general = assembleDataByLine(simpleDTO, lines, voltageScaleIds, LineBaseEnum.SUB_V_LEVEL.getCode());
|
||||
toCountMod(itemDataList,general,1);
|
||||
toCountMod(itemDataList, general, 1);
|
||||
}
|
||||
temData.setList(itemDataList);
|
||||
return temData;
|
||||
@@ -284,15 +212,15 @@ public class RunManageServiceImpl implements RunManageService {
|
||||
/**
|
||||
* 过滤干扰源类型
|
||||
*/
|
||||
private TerminalLedgerVO.TemData filterLoadType(GeneralDeviceDTO generalDeviceDTO,List<SimpleDTO> loadType){
|
||||
TerminalLedgerVO.TemData temData =new TerminalLedgerVO.TemData();
|
||||
private TerminalLedgerVO.TemData filterLoadType(GeneralDeviceDTO generalDeviceDTO, List<SimpleDTO> loadType) {
|
||||
TerminalLedgerVO.TemData temData = new TerminalLedgerVO.TemData();
|
||||
temData.setName(DicDataTypeEnum.INTERFERENCE_SOURCE_TYPE.getName());
|
||||
if(CollectionUtil.isEmpty(loadType)){
|
||||
if (CollectionUtil.isEmpty(loadType)) {
|
||||
//如果为空则加载所有干扰源类型
|
||||
List<DictData> loadTypeDictData = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.INTERFERENCE_SOURCE_TYPE.getName()).getData();
|
||||
loadType = loadTypeDictData.stream().map(dictData -> {
|
||||
SimpleDTO simpleDTO = new SimpleDTO();
|
||||
BeanUtil.copyProperties(dictData,simpleDTO);
|
||||
BeanUtil.copyProperties(dictData, simpleDTO);
|
||||
return simpleDTO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
@@ -305,7 +233,7 @@ public class RunManageServiceImpl implements RunManageService {
|
||||
for (SimpleDTO simpleDTO : loadType) {
|
||||
List<String> lineLoadTypeIds = terminalBaseService.getLineIdByLoadType(generalDeviceDTO.getLineIndexes(), simpleDTO.getId());
|
||||
GeneralDeviceDTO general = assembleDataByLine(simpleDTO, lines, lineLoadTypeIds, LineBaseEnum.LINE_LEVEL.getCode());
|
||||
toCountMod(itemDataList,general,2);
|
||||
toCountMod(itemDataList, general, 2);
|
||||
|
||||
}
|
||||
temData.setList(itemDataList);
|
||||
@@ -315,15 +243,15 @@ public class RunManageServiceImpl implements RunManageService {
|
||||
/**
|
||||
* 过滤厂家
|
||||
*/
|
||||
private TerminalLedgerVO.TemData filterManufacturer(GeneralDeviceDTO generalDeviceDTO,List<SimpleDTO> manufacturer){
|
||||
TerminalLedgerVO.TemData temData =new TerminalLedgerVO.TemData();
|
||||
private TerminalLedgerVO.TemData filterManufacturer(GeneralDeviceDTO generalDeviceDTO, List<SimpleDTO> manufacturer) {
|
||||
TerminalLedgerVO.TemData temData = new TerminalLedgerVO.TemData();
|
||||
temData.setName(DicDataTypeEnum.DEV_MANUFACTURER.getName());
|
||||
if(CollectionUtil.isEmpty(manufacturer)){
|
||||
if (CollectionUtil.isEmpty(manufacturer)) {
|
||||
//如果为空则加载所有干扰源类型
|
||||
List<DictData> manufacturerDictData = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_MANUFACTURER.getName()).getData();
|
||||
manufacturer = manufacturerDictData.stream().map(dictData -> {
|
||||
SimpleDTO simpleDTO = new SimpleDTO();
|
||||
BeanUtil.copyProperties(dictData,simpleDTO);
|
||||
BeanUtil.copyProperties(dictData, simpleDTO);
|
||||
return simpleDTO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
@@ -336,7 +264,7 @@ public class RunManageServiceImpl implements RunManageService {
|
||||
for (SimpleDTO simpleDTO : manufacturer) {
|
||||
List<String> devIds = terminalBaseService.getDeviceIdByManufacturer(generalDeviceDTO.getDeviceIndexes(), simpleDTO.getId());
|
||||
GeneralDeviceDTO general = assembleDataByLine(simpleDTO, lines, devIds, LineBaseEnum.DEVICE_LEVEL.getCode());
|
||||
toCountMod(itemDataList,general,2);
|
||||
toCountMod(itemDataList, general, 2);
|
||||
}
|
||||
temData.setList(itemDataList);
|
||||
return temData;
|
||||
@@ -345,38 +273,38 @@ public class RunManageServiceImpl implements RunManageService {
|
||||
/**
|
||||
* 上报类型
|
||||
*/
|
||||
private TerminalLedgerVO.TemData filterMonitor(GeneralDeviceDTO generalDeviceDTO,Integer monitorFlag){
|
||||
TerminalLedgerVO.TemData temData =new TerminalLedgerVO.TemData();
|
||||
private TerminalLedgerVO.TemData filterMonitor(GeneralDeviceDTO generalDeviceDTO, Integer monitorFlag) {
|
||||
TerminalLedgerVO.TemData temData = new TerminalLedgerVO.TemData();
|
||||
temData.setName(StatisticsEnum.REPORT_TYPE.getName());
|
||||
List<Line> lines = terminalBaseService.getLineById(generalDeviceDTO.getLineIndexes());
|
||||
List<String> lineIds = lines.stream().map(Line::getId).collect(Collectors.toList());
|
||||
List<LineDetail> lineDetailList = lineDetailMapper.selectBatchIds(lineIds);
|
||||
List<TerminalLedgerVO.ItemData> itemDataList = new ArrayList<>();
|
||||
if(monitorFlag == 2) {
|
||||
List<String> line1 = lineDetailList.stream().filter((item)->item.getMonitorFlag()==1).map(LineDetail::getId).collect(Collectors.toList());
|
||||
if (monitorFlag == 2) {
|
||||
List<String> line1 = lineDetailList.stream().filter((item) -> item.getMonitorFlag() == 1).map(LineDetail::getId).collect(Collectors.toList());
|
||||
SimpleDTO simpleDTO = new SimpleDTO();
|
||||
simpleDTO.setName("灿能上报");
|
||||
GeneralDeviceDTO general = assembleDataByLine(simpleDTO, lines, line1, LineBaseEnum.LINE_LEVEL.getCode());
|
||||
toCountMod(itemDataList,general,2);
|
||||
toCountMod(itemDataList, general, 2);
|
||||
|
||||
List<String> line2 = lineDetailList.stream().filter((item)->item.getMonitorFlag()==0).map(LineDetail::getId).collect(Collectors.toList());
|
||||
List<String> line2 = lineDetailList.stream().filter((item) -> item.getMonitorFlag() == 0).map(LineDetail::getId).collect(Collectors.toList());
|
||||
SimpleDTO simpleDTO2 = new SimpleDTO();
|
||||
simpleDTO2.setName("非灿能上报");
|
||||
GeneralDeviceDTO general2 = assembleDataByLine(simpleDTO2, lines, line2, LineBaseEnum.LINE_LEVEL.getCode());
|
||||
toCountMod(itemDataList,general2,2);
|
||||
toCountMod(itemDataList, general2, 2);
|
||||
|
||||
|
||||
}else if(monitorFlag == 1){
|
||||
} else if (monitorFlag == 1) {
|
||||
SimpleDTO simpleDTO = new SimpleDTO();
|
||||
simpleDTO.setName("灿能上报");
|
||||
GeneralDeviceDTO general = assembleDataByLine(simpleDTO, lines, generalDeviceDTO.getLineIndexes(), LineBaseEnum.LINE_LEVEL.getCode());
|
||||
toCountMod(itemDataList,general,2);
|
||||
toCountMod(itemDataList, general, 2);
|
||||
|
||||
}else if(monitorFlag == 0){
|
||||
} else if (monitorFlag == 0) {
|
||||
SimpleDTO simpleDTO = new SimpleDTO();
|
||||
simpleDTO.setName("非灿能上报");
|
||||
GeneralDeviceDTO general = assembleDataByLine(simpleDTO, lines, generalDeviceDTO.getLineIndexes(), LineBaseEnum.LINE_LEVEL.getCode());
|
||||
toCountMod(itemDataList,general,2);
|
||||
toCountMod(itemDataList, general, 2);
|
||||
}
|
||||
temData.setList(itemDataList);
|
||||
return temData;
|
||||
@@ -413,12 +341,12 @@ public class RunManageServiceImpl implements RunManageService {
|
||||
/**
|
||||
* 数据组装
|
||||
*/
|
||||
private void toCountMod(List<TerminalLedgerVO.ItemData> itemDataList,GeneralDeviceDTO general,int type){
|
||||
if(general.getLineIndexes().size()!=0 || general.getDeviceIndexes().size()!=0 || general.getSubIndexes().size()!=0){
|
||||
private void toCountMod(List<TerminalLedgerVO.ItemData> itemDataList, GeneralDeviceDTO general, int type) {
|
||||
if (general.getLineIndexes().size() != 0 || general.getDeviceIndexes().size() != 0 || general.getSubIndexes().size() != 0) {
|
||||
TerminalLedgerVO.ItemData itemData = new TerminalLedgerVO.ItemData();
|
||||
if(type == 1){
|
||||
if (type == 1) {
|
||||
//电压时候进行排序处理
|
||||
itemData.setVoltage(Float.parseFloat(general.getName().substring(0,general.getName().indexOf("k"))));
|
||||
itemData.setVoltage(Float.parseFloat(general.getName().substring(0, general.getName().indexOf("k"))));
|
||||
}
|
||||
itemData.setLineCount(general.getLineIndexes().size());
|
||||
itemData.setDevCount(general.getDeviceIndexes().size());
|
||||
|
||||
@@ -119,14 +119,14 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
List<TerminalTree> subList = treeMapper.getSubList(generalDeviceDTO.getSubIndexes());
|
||||
List<TerminalTree> lineList = treeMapper.getLineList(generalDeviceDTO.getLineIndexes());
|
||||
//处理变电站
|
||||
dealChildrenData(subList,lineList,true);
|
||||
dealChildrenData(subList, lineList, true);
|
||||
//处理供电公司
|
||||
dealChildrenData(gdList,subList,false);
|
||||
dealChildrenData(gdList, subList, false);
|
||||
if (deviceInfoParam.getStatisticalType().getCode().equalsIgnoreCase(StatisticsEnum.POWER_NETWORK.getCode())) {
|
||||
terminalTree.setChildren(gdList);
|
||||
} else {
|
||||
//还需要额外处理省会
|
||||
dealChildrenData(proList,gdList,false);
|
||||
dealChildrenData(proList, gdList, false);
|
||||
terminalTree.setChildren(proList);
|
||||
}
|
||||
terminalTree.setId(generalDeviceDTO.getIndex());
|
||||
@@ -141,16 +141,16 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
}
|
||||
|
||||
private void dealChildrenData(List<TerminalTree> targetData, List<TerminalTree> childrenData, boolean isLine) {
|
||||
Map<String,List<TerminalTree>> groupLine;
|
||||
if(isLine){
|
||||
Map<String, List<TerminalTree>> groupLine;
|
||||
if (isLine) {
|
||||
groupLine = childrenData.stream().collect(Collectors.groupingBy(terminalTree -> {
|
||||
String[] pid = terminalTree.getPids().split(",");
|
||||
return pid[LineBaseEnum.SUB_LEVEL.getCode()];
|
||||
}));
|
||||
}else{
|
||||
} else {
|
||||
groupLine = childrenData.stream().collect(Collectors.groupingBy(TerminalTree::getPid));
|
||||
}
|
||||
targetData=targetData.stream().peek(terminalTree -> {
|
||||
targetData = targetData.stream().peek(terminalTree -> {
|
||||
terminalTree.setChildren(groupLine.get(terminalTree.getId()));
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
@@ -207,7 +207,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
String areaId = areaDetail.getId();
|
||||
|
||||
if (CollectionUtil.isNotEmpty(allList)) {
|
||||
List<TerminalTree> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && item.getId().equals(lineMapper.selectProject(areaId))).collect(Collectors.toList());
|
||||
List<TerminalTree> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList());
|
||||
List<TerminalTree> provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList());
|
||||
for (TerminalTree terminalTree : provinceList) {
|
||||
terminalTree.setName(lineMapper.getProviceName(terminalTree.getName()));
|
||||
@@ -282,7 +282,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
String areaId = areaDetail.getId();
|
||||
|
||||
if (CollectionUtil.isNotEmpty(allList)) {
|
||||
List<TerminalTree> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && item.getId().equals(lineMapper.selectProject(areaId))).collect(Collectors.toList());
|
||||
List<TerminalTree> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList());
|
||||
List<TerminalTree> provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList());
|
||||
for (TerminalTree terminalTree : provinceList) {
|
||||
terminalTree.setName(lineMapper.getProviceName(terminalTree.getName()));
|
||||
@@ -348,7 +348,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
String areaId = areaDetail.getId();
|
||||
|
||||
if (CollectionUtil.isNotEmpty(allList)) {
|
||||
List<TerminalTree> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && item.getId().equals(lineMapper.selectProject(areaId))).collect(Collectors.toList());
|
||||
List<TerminalTree> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList());
|
||||
List<TerminalTree> provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList());
|
||||
for (TerminalTree terminalTree : provinceList) {
|
||||
terminalTree.setName(lineMapper.getProviceName(terminalTree.getName()));
|
||||
@@ -422,7 +422,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
String areaId = areaDetail.getId();
|
||||
|
||||
if (CollectionUtil.isNotEmpty(allList)) {
|
||||
List<TerminalTree> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && item.getId().equals(lineMapper.selectProject(areaId))).collect(Collectors.toList());
|
||||
List<TerminalTree> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode()) && lineMapper.selectProject(areaId).contains(item.getId())).collect(Collectors.toList());
|
||||
List<TerminalTree> provinceList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode()) && item.getName().equals(areaId)).collect(Collectors.toList());
|
||||
for (TerminalTree terminalTree : provinceList) {
|
||||
terminalTree.setName(lineMapper.getProviceName(terminalTree.getName()));
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.harmonic.pojo.param;
|
||||
|
||||
import com.njcn.device.pojo.param.PulicTimeParam;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -10,7 +11,7 @@ import lombok.Data;
|
||||
* @date 2022/3/17
|
||||
*/
|
||||
@Data
|
||||
public class HarmInHarmParam extends PulicTimeParam{
|
||||
public class HarmInHarmParam extends PulicTimeParam {
|
||||
|
||||
@ApiModelProperty("0--谐波电压含有率;1--谐波电流幅值")
|
||||
private Integer harmState;
|
||||
|
||||
@@ -5,7 +5,7 @@ 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.harmonic.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.device.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.harmonic.pojo.vo.AssesVO;
|
||||
import com.njcn.harmonic.service.AssesService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
|
||||
@@ -16,11 +16,9 @@ import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,7 +5,7 @@ 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.harmonic.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.device.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.harmonic.pojo.vo.SteadyInfoData;
|
||||
import com.njcn.harmonic.service.SteadyDataService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.njcn.harmonic.service;
|
||||
|
||||
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.device.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.harmonic.pojo.vo.AssesVO;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
package com.njcn.harmonic.service;
|
||||
|
||||
import com.njcn.device.pojo.vo.CommunicateVO;
|
||||
import com.njcn.harmonic.pojo.param.PulicTimeParam;
|
||||
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.harmonic.pojo.vo.CommunicateStatisticsVO;
|
||||
|
||||
/**
|
||||
* @author denghuajun
|
||||
* @date 2022/2/28
|
||||
*
|
||||
*/
|
||||
public interface CommunicateService {
|
||||
|
||||
CommunicateVO getComFlagInfoData(PulicTimeParam pulicTimeParam);
|
||||
|
||||
CommunicateStatisticsVO getRunInfoData(PulicTimeStatisParam pulicTimeStatisParam);
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.njcn.harmonic.service;
|
||||
|
||||
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.device.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.harmonic.pojo.vo.SteadyInfoData;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package com.njcn.harmonic.service.impl;
|
||||
|
||||
import com.njcn.device.pojo.po.Communicate;
|
||||
import com.njcn.harmonic.constant.Param;
|
||||
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.device.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.harmonic.pojo.vo.AssesVO;
|
||||
import com.njcn.harmonic.service.AssesService;
|
||||
import com.njcn.influxdb.param.InfluxDBPublicParam;
|
||||
@@ -16,7 +14,6 @@ import org.influxdb.impl.InfluxDBResultMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@@ -1,96 +0,0 @@
|
||||
package com.njcn.harmonic.service.impl;
|
||||
|
||||
import com.njcn.device.api.LineFeignClient;
|
||||
import com.njcn.device.pojo.vo.CommunicateVO;
|
||||
import com.njcn.harmonic.pojo.param.PulicTimeParam;
|
||||
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.harmonic.pojo.vo.CommunicateStatisticsVO;
|
||||
import com.njcn.harmonic.service.CommunicateService;
|
||||
import com.njcn.influxdb.utils.InfluxDbUtils;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.influxdb.dto.QueryResult;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static com.njcn.influxdb.param.InfluxDBPublicParam.*;
|
||||
|
||||
/**
|
||||
* @author denghuajun
|
||||
* @date 2022/2/28
|
||||
*
|
||||
*/
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
public class CommunicateServiceImpl implements CommunicateService {
|
||||
|
||||
private final LineFeignClient lineFeignClient;
|
||||
|
||||
private final InfluxDbUtils influxDbUtils;
|
||||
|
||||
@Override
|
||||
public CommunicateVO getComFlagInfoData(PulicTimeParam pulicTimeParam) {
|
||||
//根据监测点id获取终端状态信息
|
||||
return lineFeignClient.getComFlagInfoData(pulicTimeParam.getId(), pulicTimeParam.getSearchBeginTime(), pulicTimeParam.getSearchEndTime()).getData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommunicateStatisticsVO getRunInfoData(PulicTimeStatisParam pulicTimeStatisParam) {
|
||||
CommunicateStatisticsVO communicateStatisticsVO = new CommunicateStatisticsVO();
|
||||
//根据监测点id获取终端id
|
||||
String devId = lineFeignClient.getLineIdByDevId(pulicTimeStatisParam.getId()).getData();
|
||||
List<Float> floatList = new ArrayList<>();
|
||||
List<Float> floats = new ArrayList<>();
|
||||
floatList.add(getCondition(pulicTimeStatisParam.getId(), pulicTimeStatisParam.getSearchBeginTime(), pulicTimeStatisParam.getSearchEndTime(),0) * 100);
|
||||
floats.add(getCondition(devId, pulicTimeStatisParam.getSearchBeginTime(), pulicTimeStatisParam.getSearchEndTime(),1) * 100);
|
||||
if (StringUtils.isNotBlank(pulicTimeStatisParam.getPeriodBeginTime())&& StringUtils.isNotBlank(pulicTimeStatisParam.getPeriodEndTime())){
|
||||
floatList.add(getCondition(pulicTimeStatisParam.getId(), pulicTimeStatisParam.getPeriodBeginTime(), pulicTimeStatisParam.getPeriodEndTime(),0)*100);
|
||||
floats.add(getCondition(devId, pulicTimeStatisParam.getPeriodBeginTime(), pulicTimeStatisParam.getPeriodEndTime(),1)*100);
|
||||
}
|
||||
communicateStatisticsVO.setOnlineRateData(floats);
|
||||
communicateStatisticsVO.setIntegrityData(floatList);
|
||||
return communicateStatisticsVO;
|
||||
}
|
||||
|
||||
/**
|
||||
* influxDB相关操作
|
||||
* 查询监测点的数据完整性
|
||||
*/
|
||||
private Float getCondition(String lineList, String startTime, String endTime,Integer state) {
|
||||
final Float[] resultList = {0.0f};
|
||||
//组装sql语句
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append(TIME + " >= '").append(startTime).append(START_TIME).append("' and ").append(TIME).append(" <= '").append(endTime).append(END_TIME).append("' and (");
|
||||
//sql语句
|
||||
String sql = "";
|
||||
if (state == 0) {
|
||||
stringBuilder.append(LINE_ID + "='").append(lineList).append("')");
|
||||
sql = "SELECT SUM(" + REAL+ ")/SUM(" + DUE + ") AS integrity FROM pqs_integrity WHERE " + stringBuilder.toString() + " group by " + LINE_ID;
|
||||
} else {
|
||||
stringBuilder.append(DEV_INDEX + "='").append(lineList).append("')");
|
||||
sql = "SELECT SUM(" + ONLINE_MIN + ")/(SUM(" + OFFLINE_MIN + ")+SUM(" + ONLINE_MIN + ")) AS onlineRate FROM pqs_onlinerate WHERE " + stringBuilder.toString() + " group by " + DEV_INDEX;
|
||||
}
|
||||
stringBuilder.append(TIME_ZONE);
|
||||
//结果集
|
||||
QueryResult result = influxDbUtils.query(sql);
|
||||
//处理结果集
|
||||
List<QueryResult.Series> list = result.getResults().get(0).getSeries();
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
list.forEach(po -> {
|
||||
List<List<Object>> valueList = po.getValues();
|
||||
if (!CollectionUtils.isEmpty(valueList)) {
|
||||
for (List<Object> value : valueList) {
|
||||
//数据完整性 保留四位小数
|
||||
resultList[0] = value.get(1) == null ? null : BigDecimal.valueOf(Float.parseFloat(value.get(1).toString())).setScale(4, BigDecimal.ROUND_HALF_UP).floatValue();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return resultList[0];
|
||||
}
|
||||
}
|
||||
@@ -202,10 +202,10 @@ public class HistoryResultServiceImpl implements HistoryResultService {
|
||||
valueTypeName = "AVG";
|
||||
break;
|
||||
case 2:
|
||||
valueTypeName = "MAX";
|
||||
valueTypeName = "MIN";
|
||||
break;
|
||||
case 3:
|
||||
valueTypeName = "MIN";
|
||||
valueTypeName = "MAX";
|
||||
break;
|
||||
case 4:
|
||||
valueTypeName = "CP95";
|
||||
@@ -271,7 +271,7 @@ public class HistoryResultServiceImpl implements HistoryResultService {
|
||||
case 14:
|
||||
//电压不平衡
|
||||
sql = "SELECT time as time, v_zero as aValue FROM data_v WHERE " + stringBuilder.toString() +
|
||||
" and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc tz('Asia/Shanghai');";
|
||||
" and (phasic_type ='T') group by phasic_type order by time asc tz('Asia/Shanghai');";
|
||||
phasicType.add("零序电压");
|
||||
phasicType.add("正序电压");
|
||||
phasicType.add("负序电压");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.njcn.harmonic.service.impl;
|
||||
|
||||
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.device.pojo.param.PulicTimeStatisParam;
|
||||
import com.njcn.harmonic.pojo.vo.SteadyInfoData;
|
||||
import com.njcn.harmonic.service.SteadyDataService;
|
||||
import com.njcn.influxdb.param.InfluxDBPublicParam;
|
||||
|
||||
@@ -277,7 +277,7 @@ public class DeptController extends BaseController {
|
||||
*/
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||
@GetMapping("/getDeptById")
|
||||
@ApiOperation("获取所有单位")
|
||||
@ApiOperation("根据部门Id获取部门信息")
|
||||
public HttpResult<Dept> getDeptById(@RequestParam("deptId")String deptId) {
|
||||
String methodDescribe = getMethodDescribe("getDeptById");
|
||||
Dept result = deptService.getDeptById(deptId);
|
||||
|
||||
@@ -58,6 +58,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
|
||||
private final UserMapper userMapper;
|
||||
|
||||
|
||||
@Override
|
||||
public Page<DeptVO> listDept(DeptParam.QueryParam queryParam) {
|
||||
QueryWrapper<DeptVO> queryWrapper = new QueryWrapper<>();
|
||||
@@ -87,6 +88,9 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
checkDicDataCode(deptParam, false);
|
||||
Dept dept = new Dept();
|
||||
BeanUtil.copyProperties(deptParam, dept);
|
||||
//进行先解绑,再新增
|
||||
Integer httpResult=deptLineFeignClient.removeBind(deptParam.getPid());
|
||||
System.out.println(httpResult);
|
||||
if (deptParam.getPid().equals("-1")) {
|
||||
//上层节点
|
||||
dept.setPids("0");
|
||||
@@ -118,7 +122,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
List<String> allIds = new ArrayList<>();
|
||||
for (String id : ids) {
|
||||
for (Dept dept : deptList) {
|
||||
if (dept.getId().equalsIgnoreCase(id) || dept.getPids().indexOf(id) > 0){
|
||||
if (dept.getId().equalsIgnoreCase(id) || dept.getPids().indexOf(id) > 0) {
|
||||
allIds.add(dept.getId());
|
||||
}
|
||||
}
|
||||
@@ -145,7 +149,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
.peek(deptFirst -> {
|
||||
deptFirst.setChildren(getChildren(deptFirst, deptList));
|
||||
if (deptFirst.getType() == 0) {
|
||||
deptFirst.setName(deptFirst.getAreaName());
|
||||
deptFirst.setName(deptFirst.getName());
|
||||
}
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
@@ -206,7 +210,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
*/
|
||||
List<User> userList = userMapper.selectDeptsId(ids, DataStateEnum.ENABLE.getCode());
|
||||
|
||||
if (dept.size() > 0 || deptLineVOHttpResult.getData() || userList.size() > 0) {
|
||||
if (dept.size() > 0 || deptLineVOHttpResult.getData() != null || userList.size() > 0) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -248,21 +252,20 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
|
||||
@Override
|
||||
public String getTopDeptId() {
|
||||
return this.lambdaQuery().eq(Dept::getPid,"0").one().getId();
|
||||
return this.lambdaQuery().eq(Dept::getPid, "0").one().getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PvTerminalTreeVO> allDeptList(){
|
||||
public List<PvTerminalTreeVO> allDeptList() {
|
||||
return this.baseMapper.allDeptList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dept getDeptById(String id){
|
||||
public Dept getDeptById(String id) {
|
||||
return this.baseMapper.selectById(id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 校验参数,检查是否存在相同编码的部门
|
||||
*/
|
||||
@@ -312,7 +315,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
* 根据部门id获取部门详情
|
||||
*/
|
||||
@Override
|
||||
public List<String> getDepSonIdtByDeptId(String id){
|
||||
public List<String> getDepSonIdtByDeptId(String id) {
|
||||
return this.baseMapper.getDeptSonIds(id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user