From 4d76e6e8289791220c897e69e0a6cc4b05e39734 Mon Sep 17 00:00:00 2001 From: zengchenxi Date: Fri, 10 May 2024 15:49:48 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E3=80=90=E9=9C=80=E6=B1=82=E3=80=91?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=A4=A7=E5=B1=8F=E8=AE=BE=E5=A4=87=E5=88=A9?= =?UTF-8?q?=E7=94=A8=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mysql/scequipment/ScEquipmentMapper.java | 2 +- .../biz/service/screen/ScreenServiceImpl.java | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/scequipment/ScEquipmentMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/scequipment/ScEquipmentMapper.java index 83c44f27..338fc727 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/scequipment/ScEquipmentMapper.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/scequipment/ScEquipmentMapper.java @@ -31,7 +31,7 @@ public interface ScEquipmentMapper extends BaseMapperX { .betweenIfPresent(ScEquipmentDO::getShutdownTime, reqVO.getShutdownTime()) .eqIfPresent(ScEquipmentDO::getNum, reqVO.getNum()) .eqIfPresent(ScEquipmentDO::getStatuss, reqVO.getStatuss()) - .orderByDesc(ScEquipmentDO::getId)); + .orderByAsc(ScEquipmentDO::getId)); } @Select("CALL Down_Time(#{id}, #{startTime}, #{endTime})") diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java index 809c0668..58fcba58 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java @@ -15,6 +15,7 @@ import com.chanko.yunxi.mes.module.biz.dal.dataobject.plansub.PlanSubDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.processdesign.ProcessDesignDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderSubDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.scequipment.ScEquipmentDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.screen.ScreenDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDetailDO; @@ -24,6 +25,7 @@ import com.chanko.yunxi.mes.module.biz.dal.mysql.plansub.PlanSubMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.processdesign.ProcessDesignMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.projectorder.ProjectOrderMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.projectorder.ProjectOrderSubMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.scequipment.ScEquipmentMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.screen.ScreenMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.taskdispatch.TaskDispatchDetailMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.taskdispatch.TaskDispatchMapper; @@ -79,6 +81,8 @@ public class ScreenServiceImpl implements ScreenService { private ProcessDesignMapper processDesignMapper; @Resource private PlanSubMapper planSubMapper; + @Resource + private ScEquipmentMapper scEquipmentMapper; @Override public Long createScreen(ScreenSaveReqVO createReqVO) { @@ -180,6 +184,9 @@ public class ScreenServiceImpl implements ScreenService { case QuantityOfEachProductProduced: buildQuantityOfEachProductProduced(screenDO); break; + case UtilizationRateOfEquipment: + buildUtilizationRateOfEquipment(screenDO); + break; } }); @@ -193,6 +200,30 @@ public class ScreenServiceImpl implements ScreenService { return todayDataList; } + /** + * 包装设备利用率 + * "1D": ["equipmentNo","utilizationRate"] + * [["1#","2#","3#"],[45,35,60]] + * + * @param screenDO + */ + private void buildUtilizationRateOfEquipment(ScreenDO screenDO) { + LinkedList resultData = new LinkedList<>(); + + LinkedList equipmentNo = new LinkedList<>(); + LinkedList utilizationRate = new LinkedList<>(); + resultData.add(equipmentNo); + resultData.add(utilizationRate); + List scEquipmentDOList = scEquipmentMapper.selectList(new LambdaQueryWrapper(){{ + orderByAsc(ScEquipmentDO::getId); + }}); + for (ScEquipmentDO scEquipmentDO : scEquipmentDOList) { + equipmentNo.add(scEquipmentDO.getNmae()); + utilizationRate.add(scEquipmentDO.getUtilizationRate()); + } + screenDO.setData(JSON.toJSONString(resultData)); + } + /** * 包装各产品生产数量 * "1D": ["product","sixDaysAgo","fiveDaysAgo","fourDaysAgo","threeDaysAgo","twoDaysAgo","oneDayAgo","today"] From a60fb9ebaf133b480e7947a5ebcb264c361e52e2 Mon Sep 17 00:00:00 2001 From: zengchenxi Date: Fri, 10 May 2024 16:29:07 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E3=80=90=E9=9C=80=E6=B1=82=E3=80=91?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=A4=A7=E5=B1=8F=E5=90=84=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=90=88=E6=A0=BC=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...qualifiedNotificationAuditOpinionEnum.java | 24 ++++++ .../UnqualifiedNotificationStatusEnum.java | 2 +- .../projectorder/ProjectOrderSubDO.java | 6 ++ .../biz/service/screen/ScreenServiceImpl.java | 76 +++++++++++++------ 4 files changed, 85 insertions(+), 23 deletions(-) create mode 100644 mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/UnqualifiedNotificationAuditOpinionEnum.java diff --git a/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/UnqualifiedNotificationAuditOpinionEnum.java b/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/UnqualifiedNotificationAuditOpinionEnum.java new file mode 100644 index 00000000..aad81065 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/UnqualifiedNotificationAuditOpinionEnum.java @@ -0,0 +1,24 @@ +package com.chanko.yunxi.mes.module.biz.enums; + +import lombok.Getter; + +/** + * 品质异常单审核意见枚举 + * @author chenxi + * @date 2024-02-26 11:25 + */ +@Getter +public enum UnqualifiedNotificationAuditOpinionEnum { + + REPAIR(1, "返修"), + CONCESSION(2, "让步接收"), + SCRAP(3, "报废"); + + private int code; + private String description; + + UnqualifiedNotificationAuditOpinionEnum(int code, String description) { + this.code = code; + this.description = description; + } +} diff --git a/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/UnqualifiedNotificationStatusEnum.java b/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/UnqualifiedNotificationStatusEnum.java index c01baa42..d6f897c2 100644 --- a/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/UnqualifiedNotificationStatusEnum.java +++ b/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/UnqualifiedNotificationStatusEnum.java @@ -3,7 +3,7 @@ package com.chanko.yunxi.mes.module.biz.enums; import lombok.Getter; /** - * 派工单状态枚举 + * 品质异常单状态枚举 * @author chenxi * @date 2024-02-26 11:25 */ diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderSubDO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderSubDO.java index 7e33afb6..d317ea1d 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderSubDO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderSubDO.java @@ -158,4 +158,10 @@ public class ProjectOrderSubDO extends BaseDO { @TableField(exist = false) private String productionDate; + + @TableField(exist = false) + private Integer qualifiedQuantity; + + @TableField(exist = false) + private Integer unqualifiedQuantity; } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java index 58fcba58..0778c0e1 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java @@ -49,6 +49,7 @@ import java.util.stream.Collectors; import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.chanko.yunxi.mes.module.biz.enums.ErrorCodeConstants.SCREEN_NOT_EXISTS; import static com.chanko.yunxi.mes.module.biz.enums.ScreenTypeEnum.ProductionOrderState; +import static com.chanko.yunxi.mes.module.biz.enums.ScreenTypeEnum.QualifiedRateOfEachProduct; /** * 大屏数据 Service 实现类 @@ -174,12 +175,14 @@ public class ScreenServiceImpl implements ScreenService { } ScreenDO productionOrderState = todayDataList.stream().filter(screenDO -> ProductionOrderState.name().equals(screenDO.getType())).findFirst().get(); + ScreenDO qualifiedRateOfEachProduct = todayDataList.stream().filter(screenDO -> QualifiedRateOfEachProduct.name().equals(screenDO.getType())).findFirst().get(); // 设置今天数据 todayDataList.forEach(screenDO -> { switch (ScreenTypeEnum.valueOf(screenDO.getType())){ case ProductionStateList: // 同时设置 生产订单状态 - buildProductionStateList(screenDO, productionOrderState); + // 同时设置 各产品合格率 + buildProductionStateList(screenDO, productionOrderState, qualifiedRateOfEachProduct); break; case QuantityOfEachProductProduced: buildQuantityOfEachProductProduced(screenDO); @@ -200,6 +203,33 @@ public class ScreenServiceImpl implements ScreenService { return todayDataList; } + /** + * 包装各产品合格率 + *

+ * "1D": ["product","qualifiedRate"] + * [["门套","门扇"],[95,98]] + * + * @param screenDO + * @param doList + */ + private void buildQualifiedRateOfEachProduct(ScreenDO screenDO, List doList) { + LinkedList resultData = new LinkedList<>(); + + LinkedList productList = new LinkedList<>(); + LinkedList rateList = new LinkedList<>(); + resultData.add(productList); + resultData.add(rateList); + + for (ProjectOrderSubDO subDO : doList) { + productList.add(subDO.getProjectSubName()); + rateList.add(new BigDecimal(100) + .subtract(new BigDecimal(subDO.getUnqualifiedQuantity()*100).divide(new BigDecimal(subDO.getAmount()))) + .setScale(2, BigDecimal.ROUND_CEILING)); + } + + screenDO.setData(JSON.toJSONString(resultData)); + } + /** * 包装设备利用率 * "1D": ["equipmentNo","utilizationRate"] @@ -305,18 +335,18 @@ public class ScreenServiceImpl implements ScreenService { * * @param screenDO * @param productionOrderState + * @param qualifiedRateOfEachProduct */ - private void buildProductionStateList(ScreenDO screenDO, ScreenDO productionOrderState) { + private void buildProductionStateList(ScreenDO screenDO, ScreenDO productionOrderState, ScreenDO qualifiedRateOfEachProduct) { ArrayList resultData = new ArrayList<>(16); - MPJLambdaWrapper query = new MPJLambdaWrapper<>(); - query.selectAll(TaskDispatchDO.class) + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(ProjectOrderSubDO.class) .select("c.code as projectCode", "DateDiff(c.project_end_time,CURRENT_DATE) as restDays") - .select("d.name as projectSubName", "d.code as projectSubCode") - .select("b.amount", "d.unit") + .select("d.name as projectSubName", "d.code as projectSubCode", "d.unit") .select("COALESCE(sum(e.amount),0) as qualifiedQuantity") .select("COALESCE(sum(f.amount),0) as unqualifiedQuantity") .leftJoin(PlanDO.class, "a", PlanDO::getId, TaskDispatchDO::getPlanId) - .leftJoin(ProjectOrderSubDO.class, "b", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId) + .leftJoin(TaskDispatchDO.class, "b", TaskDispatchDO::getProjectSubId, ProjectOrderSubDO::getId) .leftJoin(ProjectOrderDO.class, "c", ProjectOrderDO::getId, ProcessDesignDO::getProjectId) .leftJoin(MaterialDO.class, "d", MaterialDO::getId, ProjectOrderSubDO::getMaterialId) .leftJoin(TaskReportDO.class, "e", Wrapper -> Wrapper.eq(TaskReportDO::getDispatchId, TaskDispatchDO::getId) @@ -324,34 +354,36 @@ public class ScreenServiceImpl implements ScreenService { .eq(TaskReportDO::getHasReport, YesOrNoEnum.Y.getCode()) ) .leftJoin(UnqualifiedNotificationDO.class, "f", Wrapper -> Wrapper.eq(UnqualifiedNotificationDO::getProjectSubId, TaskDispatchDO::getProjectSubId) - .eq(UnqualifiedNotificationDO::getNotificationStatus, UnqualifiedNotificationStatusEnum.AUDIT.getCode())) + .eq(UnqualifiedNotificationDO::getNotificationStatus, UnqualifiedNotificationStatusEnum.AUDIT.getCode()) + .eq(UnqualifiedNotificationDO::getAuditOpinion, UnqualifiedNotificationAuditOpinionEnum.SCRAP.getCode()) + ) .notIn(PlanDO::getStatus, Arrays.asList(ProjectPlanStatusEnum.COMPLETE.getCode(), ProjectPlanStatusEnum.TERMINATE.getCode())) - .orderByDesc(TaskDispatchDO::getId) - .groupBy(TaskDispatchDO::getId) + .orderByDesc(ProjectOrderSubDO::getId) + .groupBy(ProjectOrderSubDO::getId) .disableSubLogicDel(); BigDecimal sumProductionProgress = new BigDecimal(0); - List taskDispatchDOList = taskDispatchMapper.selectList(query); - taskDispatchDOList.forEach(taskDispatchDO -> { - - BigDecimal productionProgress = new BigDecimal(taskDispatchDO.getQualifiedQuantity() * 100).divide(new BigDecimal(taskDispatchDO.getAmount()), 2, BigDecimal.ROUND_CEILING); + List doList = projectOrderSubMapper.selectList(query); + for (ProjectOrderSubDO aDo : doList) { + BigDecimal productionProgress = new BigDecimal(aDo.getQualifiedQuantity() * 100).divide(new BigDecimal(aDo.getAmount()), 2, BigDecimal.ROUND_CEILING); resultData.add(new LinkedList(){{ - add(taskDispatchDO.getProjectSubCode()); - add(taskDispatchDO.getProjectSubName()); - add(taskDispatchDO.getAmount()); - add(taskDispatchDO.getQualifiedQuantity()); - add(taskDispatchDO.getRestDays()); + add(aDo.getProjectSubCode()); + add(aDo.getProjectSubName()); + add(aDo.getAmount()); + add(aDo.getQualifiedQuantity()); + add(aDo.getRestDays()); add(productionProgress); }}); - sumProductionProgress.add(sumProductionProgress); - }); + } screenDO.setData(JSON.toJSONString(resultData)); - BigDecimal completionRate = sumProductionProgress.divide(new BigDecimal(taskDispatchDOList.size()), 2, BigDecimal.ROUND_CEILING); + BigDecimal completionRate = sumProductionProgress.divide(new BigDecimal(doList.size()), 2, BigDecimal.ROUND_CEILING); BigDecimal deliveryRate = null; buildProductionOrderState(productionOrderState, completionRate, deliveryRate); + + buildQualifiedRateOfEachProduct(qualifiedRateOfEachProduct, doList); } From d787a1fa197319b6b78e638594831e010800b566 Mon Sep 17 00:00:00 2001 From: zengchenxi Date: Fri, 10 May 2024 17:15:54 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E3=80=90=E9=9C=80=E6=B1=82=E3=80=91?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=AE=BE=E5=A4=87=E8=BF=90=E8=A1=8C=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/service/screen/ScreenServiceImpl.java | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java index 0778c0e1..0617bc19 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/screen/ScreenServiceImpl.java @@ -190,6 +190,9 @@ public class ScreenServiceImpl implements ScreenService { case UtilizationRateOfEquipment: buildUtilizationRateOfEquipment(screenDO); break; + case EquipmentOperationState: + buildEquipmentOperationState(screenDO); + break; } }); @@ -203,9 +206,37 @@ public class ScreenServiceImpl implements ScreenService { return todayDataList; } + /** + * 包装设备运行状态 + * + * "2D": ["equipmentNo","qualifiedQuantity","qualifiedRate","overallEquipmentEffectiveness","shutdownTimes","operationState"] + * [["1#",22,33.33,44,0,"NORMAL"],["2#","门扇",44,55.55,66,2,"MALFUNCTION"],["3#","横头",66,77.77,77,4,"SHUTDOWN"]] + * + * @param screenDO + */ + private void buildEquipmentOperationState(ScreenDO screenDO) { + LinkedList resultData = new LinkedList<>(); + List scEquipmentDOList = scEquipmentMapper.selectList(new LambdaQueryWrapper(){{ + orderByAsc(ScEquipmentDO::getId); + }}); + + for (ScEquipmentDO scEquipmentDO : scEquipmentDOList) { + resultData.add(new LinkedList(){{ + add(scEquipmentDO.getNmae()); + add(scEquipmentDO.getNum()); + add(scEquipmentDO.getQualificationRate().multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_CEILING)); + add(scEquipmentDO.getOee()); + add(scEquipmentDO.getShutdownTime()); + add(scEquipmentDO.getUtilizationRate().multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_CEILING)); + }}); + } + + screenDO.setData(JSON.toJSONString(resultData)); + } + /** * 包装各产品合格率 - *

+ * * "1D": ["product","qualifiedRate"] * [["门套","门扇"],[95,98]] * From 634860899e738facbc4a878892da7c69dd095f5f Mon Sep 17 00:00:00 2001 From: qiuhongwu Date: Fri, 10 May 2024 17:18:02 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=95=85=E9=9A=9C=E7=9C=8B=E6=9D=BF?= =?UTF-8?q?=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/hlvuestyle/ScEquipmentSelect.vue | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/biz/hlvuestyle/ScEquipmentSelect.vue diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/hlvuestyle/ScEquipmentSelect.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/hlvuestyle/ScEquipmentSelect.vue new file mode 100644 index 00000000..570b4574 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/hlvuestyle/ScEquipmentSelect.vue @@ -0,0 +1,137 @@ + + + From 339e4c00db6b4f8216785e1e03d2837191f5e116 Mon Sep 17 00:00:00 2001 From: qiuhongwu Date: Fri, 10 May 2024 17:19:53 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=95=85=E9=9A=9C=E5=88=86=E6=9E=90?= =?UTF-8?q?=E7=9C=8B=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/spectaculars/malfunction.vue | 381 +++++++++--------- 1 file changed, 193 insertions(+), 188 deletions(-) diff --git a/mes-ui/mes-ui-admin-vue3/src/views/spectaculars/malfunction.vue b/mes-ui/mes-ui-admin-vue3/src/views/spectaculars/malfunction.vue index f8c3222b..9b10c131 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/spectaculars/malfunction.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/spectaculars/malfunction.vue @@ -2,172 +2,120 @@

- +   - 故障分析看板 - + 故障分析看板 + - {{ formatted_date }} + {{ formatted_date }} - - - - - - - + + + + - + + + - - - 查询 - + + 查询 - -
-
- MDK251数控门框据钻机停机时间 + +
+ MDK251数控门框据钻机停机时间
- -
+ +
- MDK251数控门框据钻机故障次数 + MDK251数控门框据钻机故障次数
-