From 3ff9fbc14090cb6884a166102ddde7cfe2b65769 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 12 Dec 2019 16:43:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E7=81=AF=E5=9B=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/andon/model/AndonBoardModel.java | 17 ++++++- .../pojo/andon/model/AndonMenuInterfaceModel.java | 55 +++++++++++++++++----- .../i3plus/pojo/andon/sqlpack/AndonHqlPack.java | 9 ++++ .../i3plus/pojo/base/enumutil/AndonEnumUtil.java | 33 +++++++++---- 4 files changed, 91 insertions(+), 23 deletions(-) diff --git a/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/model/AndonBoardModel.java b/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/model/AndonBoardModel.java index 819fdd7..6c8ff91 100644 --- a/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/model/AndonBoardModel.java +++ b/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/model/AndonBoardModel.java @@ -21,6 +21,12 @@ public class AndonBoardModel { @ApiParam("工作单元名称") private String workCellName; + @ApiParam("生产线代码") + private String workCenterCode; + + @ApiParam("生产线名称") + private String workCenterName; + @ApiParam("安灯任务编号") private String andonOrderNo; @@ -36,9 +42,12 @@ public class AndonBoardModel { @ApiParam("响应时长 单位:分钟") private Long responseTimeCount = 0L; - @ApiParam("解决时长 单位:分钟") + @ApiParam("响应时长 单位:分钟") private Long resetTimeCount = 0L; + @ApiParam("响应时长/响应时长(通用) 单位:分钟") + private Long commonTimeCount = 0L; + @ApiParam("安灯正常处理的次数") private Integer inTime = 0; @@ -60,6 +69,8 @@ public class AndonBoardModel { @ApiParam("工位运行状态") private String cellStatus; + @ApiParam("图表类型颜色") + private String color; public int getTotalTimeVal() { return totalTime == null ? 0 : totalTime; @@ -85,6 +96,8 @@ public class AndonBoardModel { return resetTimeCount == null ? 0 : resetTimeCount; } - + public double getCommonTimeCountVal() { + return commonTimeCount == null ? 0 : commonTimeCount; + } } diff --git a/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/model/AndonMenuInterfaceModel.java b/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/model/AndonMenuInterfaceModel.java index cad9398..79813f6 100644 --- a/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/model/AndonMenuInterfaceModel.java +++ b/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/model/AndonMenuInterfaceModel.java @@ -1,6 +1,8 @@ package cn.estsh.i3plus.pojo.andon.model; import cn.estsh.i3plus.pojo.andon.bean.AndonManageQueue; +import cn.estsh.i3plus.pojo.andon.bean.MesWorkCenter; +import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.Data; @@ -40,27 +42,54 @@ public class AndonMenuInterfaceModel{ @ApiParam("当前安灯类型故障比例") private Double proportion = 0D; - @ApiParam("当前工厂的产线故障统计") - private List andonWorkcenterList; + @ApiParam("图表类型颜色") + private String color; - @ApiParam("当前产线的所有故障统计") - private List alarmBrokenInfoList; + @ApiParam("安灯状态") + private Integer actionCode; - @ApiParam("当前产线的未解决故障统计") - private List pendingSolveBrokenInfoList; + @ApiParam("安灯状态名称") + private String actionName; + + @ApiParam("mes微服调用-故障次数占比") + private List mesBrokenRatioList; - @ApiParam("当前产线的响应时长top10") - private List responseInfoList; + @ApiParam("故障时长类型占比 / 故障次数占比 / 工厂故障信息-产线故障时长-产线时长集合") + private List brokenRatioList; - @ApiParam("当前产线的解决时长top10") - private List solveInfoList; + @ApiParam("工厂故障信息-产线故障时长-安灯类型集合") + private List workcenterBrokenTimeList; - @ApiParam("当前产线的异常时长top10") - private List exceptionInfoList; + @ApiParam("工厂故障信息-产线故障时长-产线集合") + private List workCenterList; - @ApiParam("当前产线的站点状态统计") + @ApiParam("产线整体状态") + private List andonWorkcenterList; + + @ApiParam("产品运行状态示意图") private List andonCellGroupStatusList; + @ApiParam("事件设备时长TOP10") + private List equTimeList; + + @ApiParam("事件设备时长TOP10-次数") + private List equInTimeList; + + @ApiParam("事件质量时长TOP10") + private List qualityTimeList; + + @ApiParam("事件质量时长TOP10-次数") + private List qualityInTimeList; + + @ApiParam("事件物料时长TOP10") + private List partTimeList; + + @ApiParam("事件物料时长TOP10-次数") + private List partInTimeList; + + @ApiParam("当前产线的未解决故障统计") + private List pendingSolveBrokenInfoList; + public double getExceptionTimeVal() { return exceptionTime == null ? 0 : exceptionTime; } diff --git a/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/sqlpack/AndonHqlPack.java b/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/sqlpack/AndonHqlPack.java index 1dfe741..74e3e2b 100644 --- a/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/sqlpack/AndonHqlPack.java +++ b/modules/i3plus-pojo-andon/src/main/java/cn/estsh/i3plus/pojo/andon/sqlpack/AndonHqlPack.java @@ -867,4 +867,13 @@ public class AndonHqlPack { return result; } + + public static DdlPackBean packHqlAndonMenu(String organizeCode, String workCenterCode, String startDateTime, String endDateTime) { + DdlPackBean result = DdlPackBean.getDdlPackBean(organizeCode); + if (!StringUtils.isEmpty(workCenterCode)) { + DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", result); + } + DdlPreparedPack.timeBuilder(startDateTime, endDateTime, "createDatetime", result, true); + return result; + } } diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/AndonEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/AndonEnumUtil.java index b8293b6..b05d85c 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/AndonEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/AndonEnumUtil.java @@ -947,24 +947,27 @@ public class AndonEnumUtil { */ @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum ALARM_TYPE { - PART("PART_ALARM", 110060104, "物料"), - QUALITY("QUALITY_ALARM", 110060105, "质量"), - EQUIP("EQUMENT_ALARM", 110060106, "设备"), - PROCESS("ROUTING_ALARM", 110060107, "工艺"), - CHECK("OTHER_ALARM", 110060108, "自处理"), - FIX_ERROR("FIX_ERROR", 110060109, "自动报警"); + //下面的顺序不要更改,packBrokenTimeTypeRatioList方法有用到此枚举的顺序 + EQUIP("EQUMENT_ALARM", 110060106, "设备", "#D06D6A"), + QUALITY("QUALITY_ALARM", 110060105, "质量", "#9084FF"), + PART("PART_ALARM", 110060104, "物料", "#24BDBA"), + PROCESS("ROUTING_ALARM", 110060107, "工艺", "#2B97F9"), + CHECK("OTHER_ALARM", 110060108, "自处理", "#EAA510"), + FIX_ERROR("FIX_ERROR", 110060109, "自动报警", "#797B7F"); private String value; private Integer code; private String description; + private String colour; - ALARM_TYPE(String value, Integer code, String description) { + ALARM_TYPE(String value, Integer code, String description, String colour) { this.value = value; this.code = code; this.description = description; + this.colour = colour; } - public String getValue() { + public String getValue() { return value; } @@ -976,6 +979,10 @@ public class AndonEnumUtil { return description; } + public String getColour() { + return colour; + } + public static String valueOfDescription(String val) { String tmp = null; for (int i = 0; i < values().length; i++) { @@ -995,6 +1002,16 @@ public class AndonEnumUtil { } return tmp; } + + public static String colourOfValue(String val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (StringUtils.equalsIgnoreCase(values()[i].value, val)) { + tmp = values()[i].colour; + } + } + return tmp; + } } /**