diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java index 2c5082e3a..6626b11c3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java @@ -104,4 +104,13 @@ public class DeviceInterfaceController { public AjaxResult getFaultReasonList(EquFaultReason equFaultReason) { return deviceInterfaceService.selectEquFaultReasonList(equFaultReason); } + /** + * 首页-组线设备月故障数 + * @return + */ + @GetMapping("/getGroupLineEquInfo") + public AjaxResult getGroupLineEquInfo() { + return deviceInterfaceService.getGroupLineEquInfo(); + } + } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquFaultVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquFaultVO.java new file mode 100644 index 000000000..0cf7cf8b2 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquFaultVO.java @@ -0,0 +1,34 @@ +package com.op.device.domain.vo; + +import java.time.LocalDate; + +// 首页-组线设备月故障数 +public class IEquFaultVO { + private int[] data = new int[LocalDate.now().getMonthValue()]; + private String name; + private String code; + + public int[] getData() { + return data; + } + + public void setData(int[] data) { + this.data = data; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } +} diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java index 4d07dc6d5..2b61c79dd 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java @@ -4,10 +4,12 @@ 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.domain.vo.IEquFaultVO; import com.op.device.domain.vo.IEquipmentVO; import com.op.device.domain.vo.IRepairWorkOrderVO; import java.util.List; +import java.util.Map; public interface DeviceInterfaceMapper { @@ -50,4 +52,18 @@ public interface DeviceInterfaceMapper { //设备完好率 EquOperation getEquipmentIntactRate(EquOperation equOperation); + String getDeviceRefreshTime(EquOperationRecord equOperationRecord); + + /** + * 获取组线信息 + * @return + */ + List selectGroups(); + + /** + * 通过组线编码查询当年设备每月故障数 + * @param groupCode + * @return + */ + List> selectEquipmentFaultNumForMonth(String groupCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java index 73e26f554..3203e97b0 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java @@ -60,4 +60,11 @@ public interface IDeviceInterfaceService { * 故障维修措施 */ AjaxResult selectEquFaultReasonList(EquFaultReason equFaultReason); + public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord); + + /** + * 首页-组线设备月故障数 + * @return + */ + AjaxResult getGroupLineEquInfo(); } 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 3a1cfe05a..b2cd7b5bc 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 @@ -5,6 +5,11 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.*; import com.op.device.mapper.*; +import com.op.device.domain.EquOperationRecord; +import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.domain.MesReportWork; +import com.op.device.domain.vo.IEquFaultVO; +import com.op.device.mapper.EquEquipmentMapper; import com.op.device.domain.vo.IEquipmentVO; import com.op.device.domain.vo.IRepairWorkOrderVO; import com.op.device.service.IDeviceInterfaceService; @@ -262,4 +267,43 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { List list = equFaultReasonMapper.selectEquFaultReasonList(equFaultReason); return success(list); } + + /** + * 看板刷新时间 + */ + @Override + @DS("master") + public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord) { + String refreshTime = deviceInterfaceMapper.getDeviceRefreshTime(equOperationRecord); + int time = Integer.parseInt(refreshTime); + return success(time); + } + + /** + * 首页-组线设备月故障数 + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getGroupLineEquInfo() { + // 获取组线信息 + List faultVOList = deviceInterfaceMapper.selectGroups(); + // 初始化返回对象信息(获取当前月份,设置好数组长度) + for (IEquFaultVO faultVO : faultVOList) { + // 通过组线编码查询当年设备每月故障数 + List> monthFault = deviceInterfaceMapper.selectEquipmentFaultNumForMonth(faultVO.getCode()); + if (monthFault!=null) { + for (Map data : monthFault) { + int[] source = faultVO.getData(); + int index = data.get("month") - 1; + source[index] = data.get("count"); + faultVO.setData(source); + } + } + } + // 获取每个组线的故障信息 + // 处理信息,返回对象 + return success(faultVOList); + } + } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOperationServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOperationServiceImpl.java index b8dae86d5..634abadb1 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOperationServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOperationServiceImpl.java @@ -2,6 +2,7 @@ package com.op.device.service.impl; import java.math.BigDecimal; import java.math.RoundingMode; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.List; @@ -81,14 +82,15 @@ public class EquOperationServiceImpl implements IEquOperationService { @DS("#header.poolName") public int updateEquOperation(EquOperation equOperation) { // 实际运行时间(运行时间-故障时间) + DecimalFormat df = new DecimalFormat("#.##"); double result = Double.parseDouble(equOperation.getOperationTime()) - Double.parseDouble(equOperation.getFaultTime()); - equOperation.setActualOperationTime(String.valueOf(result)); + equOperation.setActualOperationTime(String.valueOf(df.format(result))); // 故障率计算(故障时间/运行时间) BigDecimal faultTimeBD = new BigDecimal(equOperation.getFaultTime());// 故障时间 BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());// 运行时间 // 将处理好的故障率置入故障率 - equOperation.setFailureRate(faultTimeBD.divide(operationTimeBD,2, RoundingMode.HALF_UP).toString()+"%"); + equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD,2, RoundingMode.HALF_UP).toString()+"%"); equOperation.setUpdateBy(SecurityUtils.getUsername()); equOperation.setUpdateTime(DateUtils.getNowDate()); diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index 7dbacc229..8732c1682 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -86,4 +86,23 @@ WHERE del_flag = '0' AND status = '1' + + + + \ No newline at end of file