diff --git a/dao/om/implments/WorkOrder.dao.impl.go b/dao/om/implments/WorkOrder.dao.impl.go index 6fbbd8a..da08aca 100644 --- a/dao/om/implments/WorkOrder.dao.impl.go +++ b/dao/om/implments/WorkOrder.dao.impl.go @@ -563,12 +563,13 @@ func (impl *WorkOrderDAOImplement) SelectLockWorkOrder(workLineId string) ([]mod meta.WorkOrderQty_WorkOrderId.ColumnName) session = session.Join("LEFT", meta.WorkOrderStatus.TableName, statusCondition) session = session.Join("LEFT", meta.WorkOrderQty.TableName, qtyCondition) - where := fmt.Sprintf("%s = ? and %s = ? and %s = ? and %s = ?", + where := fmt.Sprintf("%s = ? and %s = ? and %s = ? and %s >= ? and %s <= ?", meta.WorkOrder_PlantNr.ColumnName, meta.WorkOrder_PlanResourceId.ColumnName, + meta.WorkOrder_ProjectId.ColumnName, meta.WorkOrderStatus_Status.ColumnName, - meta.WorkOrder_ProjectId.ColumnName) - err := session.Where(where, impl.plantNr, workLineId, common.WO_STATUS_LOCKED, common.ProjectId).Asc(meta.WorkOrder_PlanStartTime.ColumnName).Find(&data) + meta.WorkOrderStatus_Status.ColumnName) + err := session.Where(where, impl.plantNr, workLineId, common.ProjectId, common.WO_STATUS_LOCKED, common.WO_STATUS_RUNNING).Asc(meta.WorkOrder_PlanStartTime.ColumnName).Find(&data) if err != nil { return nil, err } diff --git a/services/om/implments/OmToMes.serivce.impl.go b/services/om/implments/OmToMes.serivce.impl.go index a21e1ec..4fcc7d9 100644 --- a/services/om/implments/OmToMes.serivce.impl.go +++ b/services/om/implments/OmToMes.serivce.impl.go @@ -333,7 +333,6 @@ func (impl *OmToMesServiceImplement) FeedbackFromMes(plantNr int) { if workOrderStatus.Status != baseModel.WO_STATUS_FINISHED { statusRec := model.WorkOrderStatusRecLst{ WorkOrderId: workOrderStatus.WorkOrderId, - //Pos: maxPos + 1, PrevStatus: workOrderStatus.Status, Status: baseModel.WO_STATUS_FINISHED, StartTime: feedbackWorkOrder.STARTTIME, @@ -355,6 +354,31 @@ func (impl *OmToMesServiceImplement) FeedbackFromMes(plantNr int) { return } } + } else { + if workOrderQty.ActQty > 0 && workOrderStatus.Status != baseModel.WO_STATUS_RUNNING { + statusRec := model.WorkOrderStatusRecLst{ + WorkOrderId: workOrderStatus.WorkOrderId, + PrevStatus: workOrderStatus.Status, + Status: baseModel.WO_STATUS_RUNNING, + StartTime: feedbackWorkOrder.STARTTIME, + EndTime: feedbackWorkOrder.FINISHTIME, + } + err = workOrderStatusRecDao.InsertOne(&statusRec) + if err != nil { + log.Error("FeedbackFromMes insert workOrder status running rec failed, error:" + err.Error() + " workOrderId: " + mesWorkOrder.WONO, "feedback id:" + feedbackId) + _ = session.Rollback() + _ = mesSession.Rollback() + return + } + workOrderStatus.Status = baseModel.WO_STATUS_RUNNING + err = workOrderStatusDao.UpdateOne(&workOrderStatus) + if err != nil { + log.Error("FeedbackFromMes update workOrder status running failed, error:" + err.Error() + " workOrderId: " + mesWorkOrder.WONO, "feedback id:" + feedbackId) + _ = session.Rollback() + _ = mesSession.Rollback() + return + } + } } // 更新work order 的时间开始时间和时间结束时间 if workOrder.ActStartTime != feedbackWorkOrder.STARTTIME || workOrder.ActEndTime != feedbackWorkOrder.FINISHTIME {