修改线末大屏逻辑

tags/yfai-mes-ext-v2.3
臧学普 6 months ago
parent b16b0ed0bb
commit 748de5eeb9

@ -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<MesCimGmGepics> gmGepicsList = getlastDataList(1, jacInfoPoint, organizeCode, 20);
//2.获取最新的一条报文信息,取gmGepicsList的第一条
MesCimGmGepics lastCimGmGepics = gmGepicsList.get(0);
//3.获取最新一条报文信息
//3.获取最新客户上线的报文
List<MesCimGmGepics> 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<String> vehicleNoList = getCLWarning(sdf1.format(calendar1.getTime()), productCount,organizeCode);
// List<String> vehicleNoList = getCLWarning(sdf1.format(calendar1.getTime()), productCount,organizeCode);
List<String> 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<MesQueueOrder> queueOrderList = queueOrderRao.findByHqlTopWhere(queueOrderPackBean,20);
List<MesQueueOrder> queueOrderList = queueOrderRao.findByHqlTopWhere(queueOrderPackBean,1);
//过滤掉关闭和拆解的工单
List<String> 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<MesWorkOrder> 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<MesWorkOrder> 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<MesCimGmGepics> infoV107List,MesCimGmGepics infoDD, MesCimGmGepics infoKH, MesWorkOrder workOrder,MesWorkOrder workOrderLast,int workCount,List<String> vehicleNoList) {
private MesKanBanShowModel doGetSGMData(MesEarlyWarningKanBan kanBan,List<MesCimGmGepics> infoV107List,MesCimGmGepics infoDD, MesCimGmGepics infoKH, MesWorkOrder workOrder,MesWorkOrder workOrderLast,int workCount,List<String> 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);

Loading…
Cancel
Save