diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index da8fba1c..13d84288 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -78,14 +78,14 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /* 停机故障率逻辑 */ - long totalTime = 0L;// 运行总时间 - long downTime = 0L;// 停机时间 + double totalTime = 0;// 运行总时间 + double downTime = 0;// 停机时间 // 通过设备编码获取运行记录中的运行记录List List operationRecordList = equOperationRecordMapper.selectEquOperationRecordByEquipmentCode(equipmentVO.getEquipmentCode()); if (operationRecordList.size() != 0) { for (EquOperationRecord operationRecord : operationRecordList) { // 运行时间差值 - long diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime(); + double diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime(); // 开机运行时间运行总时间累加 if (operationRecord.getType().equals("on")) { totalTime += diffTime; @@ -103,6 +103,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { } else { // 计算故障停机率(设备停机时间总和/一定时间内运行总时间(年)) double failureRate = downTime / totalTime; + System.out.println(failureRate); equipmentVO.setFailureRate(failureRate); } @@ -145,7 +146,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { // 通过该设备code获取设备维修记录(只获取开始时间、结束时间) List workOrderList = deviceInterfaceMapper.selectRepairRecordByEquipmentCode(equipmentVO.getEquipmentCode()); if (workOrderList.size() != 0) { - Long runTime = 0l; + double runTime = 0; for (EquRepairWorkOrder workOrder : workOrderList) { // 维修时间差值 long diffTime = workOrder.getWorkEndTime().getTime() - workOrder.getWorkStartTime().getTime(); @@ -153,7 +154,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { runTime += diffTime; } // 计算维修质量(故障时间(小时)/故障次数) - long rapairQuantity = runTime / 3600000 / workOrderList.size(); + double rapairQuantity = runTime / 3600000 / workOrderList.size(); equipmentVO.setRapairQuantity(Double.valueOf(rapairQuantity)); } else { // 没有该记录则默认为0 diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml index 7e34a4db..2b38ed9d 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml @@ -73,6 +73,7 @@ where eor.del_flag = '0' and eor.end_time is not null and eor.equipment_code = #{equipmentCode} + and eor.create_time >= DATEADD(year,-1, GETDATE())