|
|
@ -32,7 +32,7 @@ import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
|
|
@Api(tags="设备状态") |
|
|
|
@Api(tags = "设备状态") |
|
|
|
@RestController |
|
|
|
@RequestMapping("/system/status") |
|
|
|
public class StatusController extends BaseController { |
|
|
@ -50,14 +50,16 @@ public class StatusController extends BaseController { |
|
|
|
|
|
|
|
//设备列表
|
|
|
|
@ApiOperation("设备状态列表按时间和类型") |
|
|
|
@GetMapping ("/tablist") |
|
|
|
public TableDataInfo getTabList(Status status) |
|
|
|
{ |
|
|
|
if (status.getDeviceName()!=null) { |
|
|
|
status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(),UniversalEnum.PLUS_SIGN.getValue())); |
|
|
|
@GetMapping("/tablist") |
|
|
|
public TableDataInfo getTabList(Status status) { |
|
|
|
if (status.getDeviceName() != null) { |
|
|
|
status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(), UniversalEnum.PLUS_SIGN.getValue())); |
|
|
|
} |
|
|
|
startPage(); |
|
|
|
status.setTypes(status.getType().split(UniversalEnum.COMMA.getValue())); |
|
|
|
String type = status.getType(); |
|
|
|
if (type != null) { |
|
|
|
status.setTypes(type.split(UniversalEnum.COMMA.getValue())); |
|
|
|
} |
|
|
|
List<Status> listStatus = statusService.listStatusByTypes(status); |
|
|
|
return getDataTable(listStatus); |
|
|
|
} |
|
|
@ -69,12 +71,14 @@ public class StatusController extends BaseController { |
|
|
|
@ApiOperation("设备状态导出") |
|
|
|
@Log(title = "【设备状态导出】", businessType = BusinessType.EXPORT) |
|
|
|
@PostMapping("/export") |
|
|
|
public void export(HttpServletResponse response, Status status) |
|
|
|
{ |
|
|
|
if (status.getDeviceName()!=null) { |
|
|
|
status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(),UniversalEnum.PLUS_SIGN.getValue())); |
|
|
|
public void export(HttpServletResponse response, Status status) { |
|
|
|
if (status.getDeviceName() != null) { |
|
|
|
status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(), UniversalEnum.PLUS_SIGN.getValue())); |
|
|
|
} |
|
|
|
String type = status.getType(); |
|
|
|
if (type != null) { |
|
|
|
status.setTypes(type.split(UniversalEnum.COMMA.getValue())); |
|
|
|
} |
|
|
|
status.setTypes(status.getType().split(UniversalEnum.COMMA.getValue())); |
|
|
|
List<Status> listStatus = statusService.export(status); |
|
|
|
ExcelUtil<Status> util = new ExcelUtil<>(Status.class); |
|
|
|
util.exportExcel(response, listStatus, UniversalEnum.DEVICE_STATUS_LIST.getValue()); |
|
|
@ -84,26 +88,33 @@ public class StatusController extends BaseController { |
|
|
|
@ApiOperation("设备状态柱状图按时间和类型") |
|
|
|
@GetMapping("/list") |
|
|
|
public AjaxResult getStatusList(Status status) { |
|
|
|
if (status.getDeviceName()!=null) { |
|
|
|
status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(),UniversalEnum.PLUS_SIGN.getValue())); |
|
|
|
if (status.getDeviceName() != null) { |
|
|
|
status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(), UniversalEnum.PLUS_SIGN.getValue())); |
|
|
|
} |
|
|
|
LocalDateTime todayStart = status.getStartTime().truncatedTo(ChronoUnit.DAYS); |
|
|
|
LocalDateTime currentTime = status.getTime().truncatedTo(ChronoUnit.DAYS).plusDays(UniversalEnum.ONE.getNumber()); |
|
|
|
status.setStartTime(todayStart); |
|
|
|
status.setTime(currentTime); |
|
|
|
String[] types = status.getType().split(UniversalEnum.COMMA.getValue()); |
|
|
|
status.setTypes(types); |
|
|
|
String statusType = status.getType(); |
|
|
|
String[] types = null; |
|
|
|
if (statusType != null) { |
|
|
|
|
|
|
|
types = statusType.split(UniversalEnum.COMMA.getValue()); |
|
|
|
status.setTypes(types); |
|
|
|
} |
|
|
|
|
|
|
|
Map<String, Map<String, String>> maps = new HashMap<>(); |
|
|
|
List<Status> statuses = statusService.getStatusList(status); |
|
|
|
|
|
|
|
for (String type : types) { |
|
|
|
Map<String, String> collect = statuses.stream().filter(item -> Objects.equals(item.getType(), type)) |
|
|
|
.collect(Collectors.toMap( |
|
|
|
item -> item.getTime().getYear() + UniversalEnum.SHORT_BAR.getValue() + item.getTime().getMonthValue() + UniversalEnum.SHORT_BAR.getValue() + item.getTime().getDayOfMonth(), |
|
|
|
Status::getSuccessRate |
|
|
|
)); |
|
|
|
maps.put(type, collect); |
|
|
|
if (types != null) { |
|
|
|
for (String type : types) { |
|
|
|
Map<String, String> collect = statuses.stream().filter(item -> Objects.equals(item.getType(), type)) |
|
|
|
.collect(Collectors.toMap( |
|
|
|
item -> item.getTime().getYear() + UniversalEnum.SHORT_BAR.getValue() + item.getTime().getMonthValue() + UniversalEnum.SHORT_BAR.getValue() + item.getTime().getDayOfMonth(), |
|
|
|
Status::getSuccessRate |
|
|
|
)); |
|
|
|
maps.put(type, collect); |
|
|
|
} |
|
|
|
} |
|
|
|
return AjaxResult.success(maps); |
|
|
|
} |
|
|
@ -111,10 +122,9 @@ public class StatusController extends BaseController { |
|
|
|
|
|
|
|
//按时间划分设备柱状图
|
|
|
|
@ApiOperation("更新缓存规则") |
|
|
|
@GetMapping ("/rule") |
|
|
|
public AjaxResult setRule(String rule) |
|
|
|
{ |
|
|
|
redisCache.setCacheObject(ORDERRULE,rule); |
|
|
|
@GetMapping("/rule") |
|
|
|
public AjaxResult setRule(String rule) { |
|
|
|
redisCache.setCacheObject(ORDERRULE, rule); |
|
|
|
return AjaxResult.success(); |
|
|
|
} |
|
|
|
|
|
|
@ -158,9 +168,8 @@ public class StatusController extends BaseController { |
|
|
|
|
|
|
|
//按类型划分设备
|
|
|
|
@ApiOperation("设备状态列表按类型") |
|
|
|
@GetMapping ("/type") |
|
|
|
public AjaxResult getTypeList() |
|
|
|
{ |
|
|
|
@GetMapping("/type") |
|
|
|
public AjaxResult getTypeList() { |
|
|
|
//DcDevice dcDevice = new DcDevice();
|
|
|
|
//dcDevice.setUseState(1);
|
|
|
|
//List<DcDevice> dcDeviceList = dcDeviceService.numberOfDevicesByType(dcDevice);
|
|
|
@ -352,32 +361,32 @@ public class StatusController extends BaseController { |
|
|
|
//
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
Map<Object, Object> maps=new HashMap<>(); |
|
|
|
Map<Object, Object> maps = new HashMap<>(); |
|
|
|
double lostRate = lastEntry.stream() |
|
|
|
.mapToDouble(Status -> Double.parseDouble(Status.getLostRate().replace(UniversalEnum.PER_CENT.getValue(), UniversalEnum.EMPTY_STRING.getValue()))) // 去掉%,并转换为double
|
|
|
|
.average().getAsDouble(); |
|
|
|
double sucessRate = lastEntry.stream() |
|
|
|
.mapToDouble(Status -> Double.parseDouble(Status.getSuccessRate().replace(UniversalEnum.PER_CENT.getValue(), UniversalEnum.EMPTY_STRING.getValue()))) // 去掉%,并转换为double
|
|
|
|
.average().getAsDouble(); |
|
|
|
String failRate=String.format("%.2f", (UniversalEnum.ONE_HUNDRED.getNumber()-sucessRate))+UniversalEnum.PER_CENT.getValue(); |
|
|
|
String failRate = String.format("%.2f", (UniversalEnum.ONE_HUNDRED.getNumber() - sucessRate)) + UniversalEnum.PER_CENT.getValue(); |
|
|
|
//丢包率
|
|
|
|
maps.put("lostRate",String.format("%.2f", lostRate)+UniversalEnum.PER_CENT.getValue()); |
|
|
|
maps.put("lostRate", String.format("%.2f", lostRate) + UniversalEnum.PER_CENT.getValue()); |
|
|
|
//在线率
|
|
|
|
maps.put("sucessRate",String.format("%.2f", sucessRate)+UniversalEnum.PER_CENT.getValue()); |
|
|
|
maps.put("sucessRate", String.format("%.2f", sucessRate) + UniversalEnum.PER_CENT.getValue()); |
|
|
|
//离线率
|
|
|
|
maps.put("failRate",failRate); |
|
|
|
maps.put("failRate", failRate); |
|
|
|
List<DcDevice> list = dcDeviceService.list(); |
|
|
|
//已使用数量
|
|
|
|
maps.put("sumUseState",String.valueOf(lastEntry.size())); |
|
|
|
maps.put("sumUseState", String.valueOf(lastEntry.size())); |
|
|
|
//总数
|
|
|
|
maps.put("sum",String.valueOf(list.size())); |
|
|
|
subMap.put("全部设备",maps); |
|
|
|
Map<Object, Object> ruleMap=new HashMap<>(); |
|
|
|
String orderRule=redisCache.getCacheObject(ORDERRULE); |
|
|
|
if(StringUtil.isNotEmpty(orderRule)){ |
|
|
|
ruleMap.put("rule",orderRule); |
|
|
|
subMap.put("排序规则",ruleMap); |
|
|
|
}else{ |
|
|
|
maps.put("sum", String.valueOf(list.size())); |
|
|
|
subMap.put("全部设备", maps); |
|
|
|
Map<Object, Object> ruleMap = new HashMap<>(); |
|
|
|
String orderRule = redisCache.getCacheObject(ORDERRULE); |
|
|
|
if (StringUtil.isNotEmpty(orderRule)) { |
|
|
|
ruleMap.put("rule", orderRule); |
|
|
|
subMap.put("排序规则", ruleMap); |
|
|
|
} else { |
|
|
|
String[] rules = {UniversalEnum.ALL_EQUIPMENT.getValue(), |
|
|
|
UniversalEnum.HD_NETWORK_GUN_TYPE_FIXED_CAMERA.getValue(), |
|
|
|
UniversalEnum.HD_NETWORK_SPHERICAL_CAMERA.getValue(), |
|
|
@ -400,9 +409,9 @@ public class StatusController extends BaseController { |
|
|
|
UniversalEnum.SOLAR_PANEL.getValue(), |
|
|
|
UniversalEnum.REMOTE_COMPUTER.getValue() |
|
|
|
}; |
|
|
|
orderRule= Arrays.toString(rules).replace(UniversalEnum.LEFT_CENTER_BRACKET.getValue(),UniversalEnum.EMPTY_STRING.getValue()).replace(UniversalEnum.CLOSE_CENTER_BRACKET.getValue(),UniversalEnum.EMPTY_STRING.getValue()).replace(UniversalEnum.BLANK_SPACE.getValue(),UniversalEnum.EMPTY_STRING.getValue()); |
|
|
|
ruleMap.put("rule",orderRule); |
|
|
|
subMap.put("排序规则",ruleMap); |
|
|
|
orderRule = Arrays.toString(rules).replace(UniversalEnum.LEFT_CENTER_BRACKET.getValue(), UniversalEnum.EMPTY_STRING.getValue()).replace(UniversalEnum.CLOSE_CENTER_BRACKET.getValue(), UniversalEnum.EMPTY_STRING.getValue()).replace(UniversalEnum.BLANK_SPACE.getValue(), UniversalEnum.EMPTY_STRING.getValue()); |
|
|
|
ruleMap.put("rule", orderRule); |
|
|
|
subMap.put("排序规则", ruleMap); |
|
|
|
} |
|
|
|
return AjaxResult.success(subMap); |
|
|
|
} |
|
|
|