From 748de5eeb938d74070c6593467466b754c3f47b3 Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Thu, 7 Nov 2024 20:28:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BA=BF=E6=9C=AB=E5=A4=A7?= =?UTF-8?q?=E5=B1=8F=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesEarlyWarningServiceImpl.java | 60 +++++++++++++--------- 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesEarlyWarningServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesEarlyWarningServiceImpl.java index b412ad8..752372d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesEarlyWarningServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesEarlyWarningServiceImpl.java @@ -27,6 +27,9 @@ import javax.persistence.Query; import java.lang.reflect.InvocationTargetException; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.Duration; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -120,7 +123,7 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService { List gmGepicsList = getlastDataList(1, jacInfoPoint, organizeCode, 20); //2.获取最新的一条报文信息,取gmGepicsList的第一条 MesCimGmGepics lastCimGmGepics = gmGepicsList.get(0); - //3.获取最新的一条报文信息 + //3.获取最新客户上线的报文 List gmGepicsListOne = getlastDataList(custOnlineInfo, jacInfoPoint, organizeCode, 1); MesCimGmGepics lastOne = !gmGepicsListOne.isEmpty() ?gmGepicsListOne.get(0) : null; if (lastOne==null){ @@ -132,10 +135,7 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService { MesWorkOrder lastWorkOrder = getLastWorkOrder(workCenterCode, workCellCode, organizeCode); //5.获取最新下线工单 MesWorkOrder lastOfflineOrder = getLastOfflineOrder(workCenterCode, organizeCode); -// if (lastWorkOrder == null){ -// //todo 暂时 -// lastWorkOrder = lastOfflineOrder; -// } + //6.查询报警产量 & 获取开班起始时间 Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @@ -162,7 +162,8 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService { int productCount = kanBan.getProductCount(); int productDay = kanBan.getProductDay(); calendar1.add(Calendar.DATE,-productDay); - List vehicleNoList = getCLWarning(sdf1.format(calendar1.getTime()), productCount,organizeCode); +// List vehicleNoList = getCLWarning(sdf1.format(calendar1.getTime()), productCount,organizeCode); + List vehicleNoList = new ArrayList<>(); //9.汇总数据 return doGetSGMData(kanBan, gmGepicsList, lastCimGmGepics, lastOne, lastWorkOrder, lastOfflineOrder, workCounts, vehicleNoList); } @@ -181,7 +182,7 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService { /** * 获取最新20条数据 - * @param type 固定 1 + * @param type * @param gaRule 信息点 * @return */ @@ -232,18 +233,18 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService { // DdlPreparedPack.getInPackList(workOrderNoList,"workOrderNo",queueOrderPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",queueOrderPackBean); DdlPreparedPack.getStringEqualPack(workCellCode,"workCellCode",queueOrderPackBean); - DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.QUEUE_ORDER_STATUS.FINISH.getValue(),"status",queueOrderPackBean); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.QUEUE_ORDER_STATUS.CREATE.getValue(),"status",queueOrderPackBean); DdlPreparedPack.getNotInPack(orderFlagList,"orderFlag",queueOrderPackBean); DdlPreparedPack.getStringNotBlanklPack("custOrderNo",queueOrderPackBean); - DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), queueOrderPackBean); + DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), queueOrderPackBean); //先查对列表,找到对应产线工位的工单 - List queueOrderList = queueOrderRao.findByHqlTopWhere(queueOrderPackBean,20); + List queueOrderList = queueOrderRao.findByHqlTopWhere(queueOrderPackBean,1); //过滤掉关闭和拆解的工单 List workOrderNoQueueList = queueOrderList.stream().map(MesQueueOrder::getWorkOrderNo).distinct().collect(Collectors.toList()); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getInPackList(workOrderNoQueueList,"workOrderNo",orderPackBean); - DdlPreparedPack.getNotInPackList(orderStatusList,"workOrderStatus",orderPackBean); - DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), orderPackBean); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(),"workOrderStatus",orderPackBean); + DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), orderPackBean); List workOrderList = workOrderRao.findByHqlTopWhere(orderPackBean, 1); return !workOrderList.isEmpty() ? workOrderList.get(0) : null; } @@ -263,6 +264,7 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService { DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.SORT.getValue(),"workOrderType",workOrderPackBean); DdlPreparedPack.getNotInPack(sortFlagList,"orderFlag",workOrderPackBean); DdlPreparedPack.getStringNotBlanklPack("custOrderNo",workOrderPackBean); + DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), workOrderPackBean); List mesWorkOrders = workOrderRao.findByHqlTopWhere(workOrderPackBean, 1); return mesWorkOrders.get(0); } @@ -318,7 +320,7 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService { * @param workCount 工单数量 * @param vehicleNoList 报警 */ - private MesKanBanShowModel doGetSGMData(MesEarlyWarningKanBan kanBan,List infoV107List,MesCimGmGepics infoDD, MesCimGmGepics infoKH, MesWorkOrder workOrder,MesWorkOrder workOrderLast,int workCount,List vehicleNoList) { + private MesKanBanShowModel doGetSGMData(MesEarlyWarningKanBan kanBan,List infoV107List,MesCimGmGepics infoDD, MesCimGmGepics infoKH, MesWorkOrder workOrder,MesWorkOrder workOrderLast,int workCount,List vehicleNoList) throws ParseException { MesKanBanShowModel mesKanBanShowModel = new MesKanBanShowModel(); //是否截图 boolean shortCut = false; @@ -342,18 +344,26 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService { } mesKanBanShowModel.setErrorMsg(errorMsg.toString()); -// if (infoDD == null){ -// return mesKanBanShowModel; -// } -// if (infoKH == null){ -// return mesKanBanShowModel; -// } -// if (workOrder == null){ -// return mesKanBanShowModel; -// } -// if (workOrderLast == null){ -// return mesKanBanShowModel; -// } + if (infoDD == null){ + return mesKanBanShowModel; + } + if (infoKH == null){ + return mesKanBanShowModel; + } + if (workOrder == null){ + return mesKanBanShowModel; + } + if (workOrderLast == null){ + return mesKanBanShowModel; + } + //据上次获取v107信息的时间 + String matchTime = infoDD.getCreateDatetime(); + + LocalDateTime now = LocalDateTime.now(); + LocalDateTime match = LocalDateTime.parse(matchTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + long minutes = Duration.between(match,now).toMinutes(); + mesKanBanShowModel.setMinutes(minutes); + //最新v107信息 String v107Msg = infoDD.getCsnNo() + "@" + infoDD.getDate() + " " + infoDD.getTime(); mesKanBanShowModel.setV107Msg(v107Msg);