- 修复OrderManager.OnWaybillStatusChanged中在收到接单消息时缺失运单处理的BUG
This commit is contained in:
@@ -103,13 +103,13 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) {
|
|||||||
existingBill, err2 := w.LoadWaybill(bill.VendorWaybillID, bill.WaybillVendorID)
|
existingBill, err2 := w.LoadWaybill(bill.VendorWaybillID, bill.WaybillVendorID)
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
if dao.IsNoRowsError(err2) || err2 == ErrCanNotFindWaybill {
|
if dao.IsNoRowsError(err2) || err2 == ErrCanNotFindWaybill {
|
||||||
if isDuplicated, err = w.onWaybillNew(bill, db); err != nil {
|
|
||||||
dao.Rollback(db)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
existingBill = bill
|
existingBill = bill
|
||||||
billCopy := *bill
|
billCopy := *bill
|
||||||
billCopy.Status = model.WaybillStatusNew
|
billCopy.Status = model.WaybillStatusNew
|
||||||
|
if isDuplicated, err = w.onWaybillNew(&billCopy, db); err != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
return err
|
||||||
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
// 进运单调度器OnWaybillStatusChanged之前要确保事务是提交了的,否则会导致死锁
|
// 进运单调度器OnWaybillStatusChanged之前要确保事务是提交了的,否则会导致死锁
|
||||||
scheduler.CurrentScheduler.OnWaybillStatusChanged(&billCopy, false)
|
scheduler.CurrentScheduler.OnWaybillStatusChanged(&billCopy, false)
|
||||||
|
|||||||
Reference in New Issue
Block a user