设备看板 完好率调整 - 每日看板

master
A0010407 1 year ago
parent 1d55861aa9
commit bf04c7bdcf

@ -1,6 +1,7 @@
package com.op.device.controller;
import com.op.common.core.web.domain.AjaxResult;
import com.op.device.domain.EquOperation;
import com.op.device.domain.EquOperationRecord;
import com.op.device.service.IDeviceInterfaceService;
import org.springframework.beans.factory.annotation.Autowired;
@ -53,23 +54,23 @@ public class DeviceInterfaceController {
/**
* -MTBF top10
* /
* @param equOperationRecord
* @param equOperation
* @return
*/
@GetMapping("/equipmentStability")
public AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord) {
return deviceInterfaceService.getEquipmentStabilityList(equOperationRecord);
public AjaxResult getEquipmentStabilityList(EquOperation equOperation) {
return deviceInterfaceService.getEquipmentStabilityList(equOperation);
}
/**
*
* /
* @param equOperationRecord
* @param equOperation
* @return
*/
@GetMapping("/equipmentIntactRate")
public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) {
return deviceInterfaceService.getEquipmentIntactRate(equOperationRecord);
public AjaxResult getEquipmentIntactRate(EquOperation equOperation) {
return deviceInterfaceService.getEquipmentIntactRate(equOperation);
}
/**
@ -77,8 +78,8 @@ public class DeviceInterfaceController {
*
*/
@GetMapping("/getDeviceRefreshTime")
public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord) {
return deviceInterfaceService.getDeviceRefreshTime(equOperationRecord);
public AjaxResult getDeviceRefreshTime(EquOperation equOperation) {
return deviceInterfaceService.getDeviceRefreshTime(equOperation);
}
}

@ -104,6 +104,26 @@ public class EquOperation extends BaseEntity {
// 创建日期结束
private String createTimeEnd;
//MTBF接口字段
//序号
private String serialNumber;
//开机时间
private String onTime;
//故障次数
private String shutDownNumber;
//mtbf
private String mtbf;
//IntactRate 完好设备占比字段
//运行设备
private String operationEquipment;
//故障设备
private String faultEquipment;
//总设备
private String totalEquipment;
//百分比
private String intactRate;
public String getCreateTimeStart() {
return createTimeStart;
}
@ -269,6 +289,70 @@ public class EquOperation extends BaseEntity {
return delFlag;
}
//虚拟字段 序号
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public String getSerialNumber() {
return serialNumber;
}
//开机时间
public void setOnTime(String onTime) {
this.onTime = onTime;
}
public String getOnTime() {
return onTime;
}
//故障次数
public void setShutDownNumber(String shutDownNumber) {
this.shutDownNumber = shutDownNumber;
}
public String getShutDownNumber() {
return shutDownNumber;
}
//mtbf
public void setMtbf(String mtbf) {
this.mtbf = mtbf;
}
public String getMtbf() {
return mtbf;
}
//运行设备
public void setOperationEquipment(String operationEquipment) {
this.operationEquipment = operationEquipment;
}
public String getOperationEquipment() {
return operationEquipment;
}
//故障设备
public void setFaultEquipment(String faultEquipment) {
this.faultEquipment = faultEquipment;
}
public String getFaultEquipment() {
return faultEquipment;
}
//总设备
public void setTotalEquipment(String totalEquipment) {
this.totalEquipment = totalEquipment;
}
public String getTotalEquipment() {
return totalEquipment;
}
//完好率
public void setIntactRate(String intactRate) {
this.intactRate = intactRate;
}
public String getIntactRate() {
return intactRate;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -1,5 +1,6 @@
package com.op.device.mapper;
import com.op.device.domain.EquOperation;
import com.op.device.domain.EquOperationRecord;
import com.op.device.domain.EquRepairWorkOrder;
import com.op.device.domain.MesReportWork;
@ -42,5 +43,11 @@ public interface DeviceInterfaceMapper {
*
* 5
*/
String getDeviceRefreshTime(EquOperationRecord equOperationRecord);
String getDeviceRefreshTime(EquOperation equOperation);
//设备稳定性 MTBF设备平均故障间隔
List<EquOperation> getMTBFList(EquOperation equOperation);
//设备完好率
EquOperation getEquipmentIntactRate(EquOperation equOperation);
}

@ -4,6 +4,7 @@ import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.device.domain.EquOperation;
import com.op.device.domain.EquOperationRecord;
import io.lettuce.core.dynamic.annotation.Param;
/**

@ -2,6 +2,7 @@ package com.op.device.mapper;
import java.util.List;
import com.op.device.domain.EquOperation;
import com.op.device.domain.EquOperationRecord;
import org.apache.ibatis.annotations.Param;
@ -67,12 +68,6 @@ public interface EquOperationRecordMapper {
*/
List<EquOperationRecord> selectEquOperationRecordByEquipmentCode(String equipmentCode);
//设备稳定性 MTBF设备平均故障间隔
List<EquOperationRecord> getMTBFList(EquOperationRecord equOperationRecord);
//设备完好率
EquOperationRecord getEquipmentIntactRate(EquOperationRecord equOperationRecord);
/**
*
* @param equipmentCode

@ -1,6 +1,7 @@
package com.op.device.service;
import com.op.common.core.web.domain.AjaxResult;
import com.op.device.domain.EquOperation;
import com.op.device.domain.EquOperationRecord;
/**
@ -30,19 +31,19 @@ public interface IDeviceInterfaceService {
* MTBF /
* @return
*/
AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord);
AjaxResult getEquipmentStabilityList(EquOperation equOperation);
/**
*
* /
* @param equOperationRecord
* @param equOperation
* @return
*/
AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord);
AjaxResult getEquipmentIntactRate(EquOperation equOperation);
/**
*
* 5
*/
public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord);
public AjaxResult getDeviceRefreshTime(EquOperation equOperation);
}

@ -1,25 +1,21 @@
package com.op.device.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.web.domain.AjaxResult;
import com.op.device.domain.EquOperation;
import com.op.device.domain.EquOperationRecord;
import com.op.device.domain.EquRepairWorkOrder;
import com.op.device.domain.MesReportWork;
import com.op.device.mapper.EquEquipmentMapper;
import com.op.device.mapper.*;
import com.op.device.domain.vo.IEquipmentVO;
import com.op.device.domain.vo.IRepairWorkOrderVO;
import com.op.device.mapper.DeviceInterfaceMapper;
import com.op.device.mapper.EquOperationRecordMapper;
import com.op.device.mapper.EquRepairWorkOrderMapper;
import com.op.device.service.IDeviceInterfaceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Random;
import java.util.*;
import java.util.stream.Collectors;
import static com.op.common.core.web.domain.AjaxResult.success;
@ -37,6 +33,10 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService {
@Autowired
private EquOperationRecordMapper equOperationRecordMapper;
@Autowired
private EquOperationMapper equOperationMapper;
/**
*
*
@ -189,9 +189,13 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService {
*/
@Override
@DS("#header.poolName")
public AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord) {
public AjaxResult getEquipmentStabilityList(EquOperation equOperation) {
//查询所有设备(设备停用的除外)
List<EquOperationRecord> equipmentList = equOperationRecordMapper.getMTBFList(equOperationRecord);
//判断查询年/月/日
//需要加逻辑
//当日时间
equOperation.setCreateTime(DateUtils.getNowDate());
List<EquOperation> equipmentList = deviceInterfaceMapper.getMTBFList(equOperation);
return success(equipmentList);
}
@ -202,9 +206,9 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService {
*/
@Override
@DS("#header.poolName")
public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) {
public AjaxResult getEquipmentIntactRate(EquOperation equOperation) {
//查询所有设备(设备停用的除外)
EquOperationRecord equipmentIntactRate = equOperationRecordMapper.getEquipmentIntactRate(equOperationRecord);
EquOperation equipmentIntactRate = deviceInterfaceMapper.getEquipmentIntactRate(equOperation);
return success(equipmentIntactRate);
}
@ -213,8 +217,8 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService {
*/
@Override
@DS("master")
public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord) {
String refreshTime = deviceInterfaceMapper.getDeviceRefreshTime(equOperationRecord);
public AjaxResult getDeviceRefreshTime(EquOperation equOperation) {
String refreshTime = deviceInterfaceMapper.getDeviceRefreshTime(equOperation);
int time = Integer.parseInt(refreshTime);
return success(time);
}

@ -64,4 +64,26 @@
where dict_label = 'device_refresh_time'
</select>
<!--设备稳定性 MTBF 每日-->
<select id="getMTBFList" parameterType="EquOperation" resultType="com.op.device.domain.EquOperation">
select
row_number() over (order by cast(eo.actual_operation_time as decimal(6, 2))/2 desc) as serialNumber,
eo.equipment_code as equipmentCode,
cast(cast(eo.actual_operation_time as decimal(18,2))/(SELECT count(*) from equ_repair_work_order erwo where erwo.equipment_code = eo.equipment_code and erwo.work_status = '1' and erwo.work_down_machine = '1') as decimal(18,2)) AS mtbf
from equ_operation eo
where day(eo.create_time) = day(getdate())
and cast(eo.fault_time as decimal(6, 0)) > 0
</select>
<!--完好设备占比-->
<select id="getEquipmentIntactRate" parameterType="EquOperation" resultType="com.op.device.domain.EquOperation">
SELECT
SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END) AS operationEquipment,
SUM(CASE WHEN equipment_status = '0' or equipment_status = '0' THEN 1 Else 0 END) AS faultEquipment,
COUNT(*) AS totalEquipment,
CAST(SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END)*100.00/COUNT(*) as decimal(18,2)) AS intactRate
FROM base_equipment
WHERE del_flag = '0' AND status = '1'
</select>
</mapper>

@ -151,34 +151,6 @@
</foreach>
</delete>
<!--设备稳定性 MTBF-->
<select id="getMTBFList" parameterType="EquOperationRecord" resultType="com.op.device.domain.EquOperationRecord">
select
row_number() over (ORDER BY sum(CASE WHEN eor.type = 'on' THEN cast(datediff(minute, eor.start_time,eor.end_time)*1.0/60 as decimal(10,2)) ELSE null END )/sum(CASE WHEN type = 'off' THEN 1 ELSE 0 END) DESC) AS serialNumber,
eor.equipment_code AS equipmentCode,
sum(CASE WHEN eor.type = 'on' THEN cast(datediff(minute, eor.start_time,eor.end_time)*1.0/60 as decimal(10,2)) ELSE null END ) AS onTime,
sum(CASE WHEN eor.type = 'off' THEN 1 ELSE 0 END) AS shutDownNumber,
cast(sum(CASE WHEN eor.type = 'on' THEN datediff(minute, eor.start_time,eor.end_time)*1.0/60 ELSE null END )/sum(CASE WHEN type = 'off' THEN 1 ELSE 0 END)as decimal(10,2)) as mtbf
from equ_operation_record eor
left join base_equipment be on eor.equipment_code = be.equipment_code
where be.status = '1'
and be.del_flag = '0'
and eor.start_time is not null
and eor.end_time is not null
GROUP BY eor.equipment_code
ORDER BY onTime desc
</select>
<!--完好设备占比-->
<select id="getEquipmentIntactRate" parameterType="EquOperationRecord" resultType="com.op.device.domain.EquOperationRecord">
SELECT
SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END) AS operationEquipment,
SUM(CASE WHEN equipment_status = '0' or equipment_status = '0' THEN 1 Else 0 END) AS faultEquipment,
COUNT(*) AS totalEquipment,
CAST(SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END)*100.00/COUNT(*) as decimal(18,2)) AS intactRate
FROM base_equipment
WHERE del_flag = '0' AND status = '1'
</select>
<select id="selectLastOperationRecordByEquipmentCode" resultType="com.op.device.domain.EquOperationRecord">
select id AS 'id',

Loading…
Cancel
Save