Browse Source

修改根绝duration生产派工的逻辑

pull/230/head
zhangxin 3 years ago
parent
commit
d00c55334f
1 changed files with 20 additions and 17 deletions
  1. +20
    -17
      services/schedule/Scheduler.Ctrl.go

+ 20
- 17
services/schedule/Scheduler.Ctrl.go View File

@ -576,11 +576,10 @@ func (schedsrv *SchedulerSrv) ReleaseSchedule(worklineid string) (err error) {
}
}()
innerLog, err := logger.NewLogger("scheduler", "scheduler")
fmt.Println("error:", err)
var (
ok bool
dura time.Duration
i, j, wipqty, totalrelqty, relqty int
i, wipqty, totalrelqty, relqty int
PlanEndDate, PlanEndTime time.Time
)
@ -639,7 +638,6 @@ func (schedsrv *SchedulerSrv) ReleaseSchedule(worklineid string) (err error) {
if err != nil {
return err
}
// 按照已下达的批次订单的排序号,依次获取未下达的序列订单
// 比较序列订单计划结束时间和要求交期的差值,满足则下达
// 为每一个下达的序列订单生成订单消息,用于接口服务处理
@ -650,20 +648,26 @@ func (schedsrv *SchedulerSrv) ReleaseSchedule(worklineid string) (err error) {
if dura > wlsrv.RelCtrlDura {
continue
}
// 比较每一个序列订单的计划结束事件
for j = 0; j < len(schedsrv.LockedTaskArray[i].SerialTaskArray); j++ {
PlanEndDate = schedsrv.LockedTaskArray[i].Wotab.PlanEndDate.Restore()
PlanEndTime = schedsrv.LockedTaskArray[i].Wotab.PlanEndDate.Restore()
dura = PlanEndDate.Sub(PlanEndTime)
if dura > wlsrv.RelCtrlDura {
continue
}
// 下达序列订单
if err = schedsrv.LockedTaskArray[i].SerialTaskArray[j].Release(); err != nil {
err = errors.New(fmt.Sprintf("下达工单%s的序列工单%s出错%v!", schedsrv.LockedTaskArray[i].TaskId, schedsrv.LockedTaskArray[i].SerialTaskArray[j].TaskId, err))
return
}
//err = schedsrv.LockedTaskArray[i].LoadSerialOrders()
relqty = int(schedsrv.LockedTaskArray[i].WorkOrderQty.PlanQty - schedsrv.LockedTaskArray[i].WorkOrderQty.ReleasedQty)
if err = schedsrv.LockedTaskArray[i].ReleaseSerialOrder(relqty); err != nil {
err = errors.New(fmt.Sprintf("下达工单%s出错%v!", schedsrv.LockedTaskArray[i].TaskId, err))
return
}
// 比较每一个序列订单的计划结束事件
//for j = 0; j < len(schedsrv.LockedTaskArray[i].SerialTaskArray); j++ {
// PlanEndDate = schedsrv.LockedTaskArray[i].Wotab.PlanEndDate.Restore()
// PlanEndTime = schedsrv.LockedTaskArray[i].Wotab.PlanEndDate.Restore()
// dura = PlanEndDate.Sub(PlanEndTime)
// if dura > wlsrv.RelCtrlDura {
// continue
// }
// // 下达序列订单
// if err = schedsrv.LockedTaskArray[i].SerialTaskArray[j].Release(); err != nil {
// err = errors.New(fmt.Sprintf("下达工单%s的序列工单%s出错%v!", schedsrv.LockedTaskArray[i].TaskId, schedsrv.LockedTaskArray[i].SerialTaskArray[j].TaskId, err))
// return
// }
//}
}
default:
@ -677,7 +681,6 @@ func (schedsrv *SchedulerSrv) GetWipQty(worklineid string) (wipqty int, err erro
session := engine.NewSession()
defer session.Close()
dao := wotab.NewSerialOrderDAO(session, common.PlantNr, "scheduler")
fmt.Println("worklineid:", worklineid)
if wipqty, err = dao.GetLineWIPQty(worklineid); err != nil {
err = errors.New(fmt.Sprintf("获取产线%sWIP数量失败%v!", worklineid, err))
return


Loading…
Cancel
Save