Browse Source

修改变更workOrderStatus状态的逻辑

pull/356/head
zhangxin 3 years ago
parent
commit
e57bace3f0
2 changed files with 29 additions and 4 deletions
  1. +4
    -3
      dao/om/implments/WorkOrder.dao.impl.go
  2. +25
    -1
      services/om/implments/OmToMes.serivce.impl.go

+ 4
- 3
dao/om/implments/WorkOrder.dao.impl.go View File

@ -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
}


+ 25
- 1
services/om/implments/OmToMes.serivce.impl.go View File

@ -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 {


Loading…
Cancel
Save