Merge remote-tracking branch 'origin/dev-wuhan' into dev-wuhan

tags/yfai-mes-ext-v2.3
jun 6 months ago
commit c7bbac33ab

@ -348,9 +348,9 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
//查询ptr总成 //查询ptr总成
DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(),"ptrId",detailPartPtr); DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(),"ptrId",detailPartPtr);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(),"partNo",detailPartPtr); DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(),"totalPartNo",detailPartPtr);
int detailPtrPartCount = partPtrDetailRao.findByHqlWhereCount(detailPartPtr); List<MesPartPtrDetail> ptrDetailList = partPtrDetailRao.findByHqlWhere(detailPartPtr);
if (detailPtrPartCount > 0){ if (!ptrDetailList.isEmpty()){
//根据mesPartPtr的目标零件号找到零件信息 //根据mesPartPtr的目标零件号找到零件信息
String destPartNo = mesPartPtr.getDestPartNo(); String destPartNo = mesPartPtr.getDestPartNo();
String srcPartNo = mesPartPtr.getSrcPartNo(); String srcPartNo = mesPartPtr.getSrcPartNo();
@ -358,6 +358,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
//更新物料清单 //更新物料清单
MesWorkOrderPart orderPart = orderPartMap.get(srcPartNo); MesWorkOrderPart orderPart = orderPartMap.get(srcPartNo);
if (orderPart != null) { if (orderPart != null) {
MesPartPtrDetail mesPartPtrDetail = ptrDetailList.get(0);
orderPart.setPartNo(mesPartSap.getPartNo()); orderPart.setPartNo(mesPartSap.getPartNo());
orderPart.setPartName(mesPartSap.getPartName()); orderPart.setPartName(mesPartSap.getPartName());
orderPart.setShippingPartNo(mesPartSap.getPartNo()); orderPart.setShippingPartNo(mesPartSap.getPartNo());
@ -365,20 +366,16 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
if (!isModifyPOrder){ if (!isModifyPOrder){
isModifyPOrder = true; isModifyPOrder = true;
} }
mesWorkOrder.setRemark(mesPartPtr.getRemark());
String ptrInfoStr = "INFO"+mesPartPtr.getId()+"|PART"+mesPartPtrDetail.getId();
mesWorkOrder.setPtrInfo(ptrInfoStr);
//更新mes_part_ptr的实际数量 + 1 //更新mes_part_ptr的实际数量 + 1
mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1); mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1);
ConvertBean.saveOrUpdate(mesPartPtr,"JOB"); ConvertBean.saveOrUpdate(mesPartPtr,"JOB");
partPtrRao.update(mesPartPtr); partPtrRao.update(mesPartPtr);
DdlPackBean partPtrDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode); mesPartPtrDetail.setQty(mesPartPtrDetail.getQty() + 1);
DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(),"ptrId",partPtrDetailPackBean); ConvertBean.saveOrUpdate(mesPartPtrDetail,"JOB");
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(),"totalPartNo",partPtrDetailPackBean); partPtrDetailRao.update(mesPartPtrDetail);
List<MesPartPtrDetail> partPtrDetailList = partPtrDetailRao.findByHqlWhere(partPtrDetailPackBean);
if (!partPtrDetailList.isEmpty()){
MesPartPtrDetail mesPartPtrDetail = partPtrDetailList.get(0);
mesPartPtrDetail.setQty(mesPartPtrDetail.getQty() + 1);
ConvertBean.saveOrUpdate(mesPartPtrDetail,"JOB");
partPtrDetailRao.update(mesPartPtrDetail);
}
//更新mes_part_ptr_detail 的workOrder.partNo 数量加 1 ;替换了几次还是什么 //更新mes_part_ptr_detail 的workOrder.partNo 数量加 1 ;替换了几次还是什么
} }
} }

@ -27,6 +27,9 @@ import javax.persistence.Query;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@ -120,7 +123,7 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
List<MesCimGmGepics> gmGepicsList = getlastDataList(1, jacInfoPoint, organizeCode, 20); List<MesCimGmGepics> gmGepicsList = getlastDataList(1, jacInfoPoint, organizeCode, 20);
//2.获取最新的一条报文信息,取gmGepicsList的第一条 //2.获取最新的一条报文信息,取gmGepicsList的第一条
MesCimGmGepics lastCimGmGepics = gmGepicsList.get(0); MesCimGmGepics lastCimGmGepics = gmGepicsList.get(0);
//3.获取最新一条报文信息 //3.获取最新客户上线的报文
List<MesCimGmGepics> gmGepicsListOne = getlastDataList(custOnlineInfo, jacInfoPoint, organizeCode, 1); List<MesCimGmGepics> gmGepicsListOne = getlastDataList(custOnlineInfo, jacInfoPoint, organizeCode, 1);
MesCimGmGepics lastOne = !gmGepicsListOne.isEmpty() ?gmGepicsListOne.get(0) : null; MesCimGmGepics lastOne = !gmGepicsListOne.isEmpty() ?gmGepicsListOne.get(0) : null;
if (lastOne==null){ if (lastOne==null){
@ -132,10 +135,7 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
MesWorkOrder lastWorkOrder = getLastWorkOrder(workCenterCode, workCellCode, organizeCode); MesWorkOrder lastWorkOrder = getLastWorkOrder(workCenterCode, workCellCode, organizeCode);
//5.获取最新下线工单 //5.获取最新下线工单
MesWorkOrder lastOfflineOrder = getLastOfflineOrder(workCenterCode, organizeCode); MesWorkOrder lastOfflineOrder = getLastOfflineOrder(workCenterCode, organizeCode);
// if (lastWorkOrder == null){
// //todo 暂时
// lastWorkOrder = lastOfflineOrder;
// }
//6.查询报警产量 & 获取开班起始时间 //6.查询报警产量 & 获取开班起始时间
Date now = new Date(); Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@ -162,7 +162,8 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
int productCount = kanBan.getProductCount(); int productCount = kanBan.getProductCount();
int productDay = kanBan.getProductDay(); int productDay = kanBan.getProductDay();
calendar1.add(Calendar.DATE,-productDay); 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.汇总数据 //9.汇总数据
return doGetSGMData(kanBan, gmGepicsList, lastCimGmGepics, lastOne, lastWorkOrder, lastOfflineOrder, workCounts, vehicleNoList); return doGetSGMData(kanBan, gmGepicsList, lastCimGmGepics, lastOne, lastWorkOrder, lastOfflineOrder, workCounts, vehicleNoList);
} }
@ -181,7 +182,7 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
/** /**
* 20 * 20
* @param type 1 * @param type
* @param gaRule * @param gaRule
* @return * @return
*/ */
@ -232,18 +233,18 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
// DdlPreparedPack.getInPackList(workOrderNoList,"workOrderNo",queueOrderPackBean); // DdlPreparedPack.getInPackList(workOrderNoList,"workOrderNo",queueOrderPackBean);
DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",queueOrderPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",queueOrderPackBean);
DdlPreparedPack.getStringEqualPack(workCellCode,"workCellCode",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.getNotInPack(orderFlagList,"orderFlag",queueOrderPackBean);
DdlPreparedPack.getStringNotBlanklPack("custOrderNo",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()); List<String> workOrderNoQueueList = queueOrderList.stream().map(MesQueueOrder::getWorkOrderNo).distinct().collect(Collectors.toList());
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(workOrderNoQueueList,"workOrderNo",orderPackBean); DdlPreparedPack.getInPackList(workOrderNoQueueList,"workOrderNo",orderPackBean);
DdlPreparedPack.getNotInPackList(orderStatusList,"workOrderStatus",orderPackBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(),"workOrderStatus",orderPackBean);
DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), orderPackBean); DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), orderPackBean);
List<MesWorkOrder> workOrderList = workOrderRao.findByHqlTopWhere(orderPackBean, 1); List<MesWorkOrder> workOrderList = workOrderRao.findByHqlTopWhere(orderPackBean, 1);
return !workOrderList.isEmpty() ? workOrderList.get(0) : null; 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.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.SORT.getValue(),"workOrderType",workOrderPackBean);
DdlPreparedPack.getNotInPack(sortFlagList,"orderFlag",workOrderPackBean); DdlPreparedPack.getNotInPack(sortFlagList,"orderFlag",workOrderPackBean);
DdlPreparedPack.getStringNotBlanklPack("custOrderNo",workOrderPackBean); DdlPreparedPack.getStringNotBlanklPack("custOrderNo",workOrderPackBean);
DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), workOrderPackBean);
List<MesWorkOrder> mesWorkOrders = workOrderRao.findByHqlTopWhere(workOrderPackBean, 1); List<MesWorkOrder> mesWorkOrders = workOrderRao.findByHqlTopWhere(workOrderPackBean, 1);
return mesWorkOrders.get(0); return mesWorkOrders.get(0);
} }
@ -318,7 +320,7 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
* @param workCount * @param workCount
* @param vehicleNoList * @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(); MesKanBanShowModel mesKanBanShowModel = new MesKanBanShowModel();
//是否截图 //是否截图
boolean shortCut = false; boolean shortCut = false;
@ -342,18 +344,26 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
} }
mesKanBanShowModel.setErrorMsg(errorMsg.toString()); mesKanBanShowModel.setErrorMsg(errorMsg.toString());
// if (infoDD == null){ if (infoDD == null){
// return mesKanBanShowModel; return mesKanBanShowModel;
// } }
// if (infoKH == null){ if (infoKH == null){
// return mesKanBanShowModel; return mesKanBanShowModel;
// } }
// if (workOrder == null){ if (workOrder == null){
// return mesKanBanShowModel; return mesKanBanShowModel;
// } }
// if (workOrderLast == null){ if (workOrderLast == null){
// return mesKanBanShowModel; 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信息 //最新v107信息
String v107Msg = infoDD.getCsnNo() + "@" + infoDD.getDate() + " " + infoDD.getTime(); String v107Msg = infoDD.getCsnNo() + "@" + infoDD.getDate() + " " + infoDD.getTime();
mesKanBanShowModel.setV107Msg(v107Msg); mesKanBanShowModel.setV107Msg(v107Msg);

Loading…
Cancel
Save