物料订单刷新状态优化

This commit is contained in:
苏尹岚
2020-03-23 11:01:44 +08:00
parent 3a7a4ccce0
commit 4143d2acfd
2 changed files with 90 additions and 44 deletions

View File

@@ -1234,3 +1234,13 @@ func GetOrdersForJxPay(db *DaoDB, finishTimeBegin, finishTimeEnd time.Time) (goo
err = GetRows(db, &goods, sql, sqlParams...) err = GetRows(db, &goods, sql, sqlParams...)
return goods, err return goods, err
} }
func GetWaybills(db *DaoDB, vendorOrderID string) (waybills []*model.Waybill, err error) {
sql := `SELECT *
FROM waybill
WHERE vendor_order_id = ?
`
sqlParams := []interface{}{vendorOrderID}
err = GetRows(db, &waybills, sql, sqlParams)
return waybills, err
}

View File

@@ -1238,13 +1238,15 @@ func RefreshAllMatterOrderStatus() (err error) {
goodsList []*model.GoodsOrder goodsList []*model.GoodsOrder
realTime time.Time realTime time.Time
) )
realTime = time.Now().AddDate(0, 0, -3) realTime = time.Now().AddDate(0, 0, -7)
//有分包的主订单
sql := ` sql := `
SELECT * FROM goods_order WHERE store_id = 666666 AND order_created_at >= ? AND status <> ? AND vendor_id = ? AND eclp_out_id = '' AND LENGTH(vendor_order_id) = 14 SELECT * FROM goods_order WHERE store_id = 666666 AND order_created_at >= ? AND status <> ? AND vendor_id = ? AND LENGTH(vendor_order_id) = 14
` `
sqlParams := []interface{}{realTime, model.OrderStatusFinished, model.VendorIDJX} sqlParams := []interface{}{realTime, model.OrderStatusFinished, model.VendorIDJX}
err = dao.GetRows(db, &goodsList, sql, sqlParams) err = dao.GetRows(db, &goodsList, sql, sqlParams)
for _, v := range goodsList { for _, v := range goodsList {
if v.EclpOutID == "" {
var ( var (
goodsList2 []*model.GoodsOrder goodsList2 []*model.GoodsOrder
cancelCount int cancelCount int
@@ -1267,7 +1269,13 @@ func RefreshAllMatterOrderStatus() (err error) {
}() }()
vv.Status = model.OrderStatusFinished vv.Status = model.OrderStatusFinished
dao.UpdateEntity(db, vv, "Status") dao.UpdateEntity(db, vv, "Status")
waybills, err := dao.GetWaybills(db, vv.VendorOrderID)
if err == nil && len(waybills) > 0 {
waybills[0].Status = model.WaybillStatusDelivered
dao.UpdateEntity(db, waybills[0], "Status")
}
dao.Commit(db) dao.Commit(db)
changeOrderStatus(vv.VendorOrderID, model.OrderStatusFinished, "")
} else { } else {
deliveringCount++ deliveringCount++
} }
@@ -1292,6 +1300,30 @@ func RefreshAllMatterOrderStatus() (err error) {
} }
dao.UpdateEntity(db, v, "Status") dao.UpdateEntity(db, v, "Status")
dao.Commit(db) dao.Commit(db)
changeOrderStatus(v.VendorOrderID, v.Status, "")
} else {
queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(v.EclpOutID)
if len(queryOrderStatus.OrderStatusList) > 0 {
if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 {
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
v.Status = model.OrderStatusFinished
dao.UpdateEntity(db, v, "Status")
waybills, err := dao.GetWaybills(db, v.VendorOrderID)
if err == nil && len(waybills) > 0 {
waybills[0].Status = model.WaybillStatusDelivered
dao.UpdateEntity(db, waybills[0], "Status")
}
dao.Commit(db)
changeOrderStatus(v.VendorOrderID, model.OrderStatusFinished, "")
}
}
}
} }
return err return err
} }
@@ -1350,7 +1382,13 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result
}() }()
order.Status = model.OrderStatusFinished order.Status = model.OrderStatusFinished
dao.UpdateEntity(db, order, "Status") dao.UpdateEntity(db, order, "Status")
waybills, err := dao.GetWaybills(db, vendorOrderID)
if err == nil && len(waybills) > 0 {
waybills[0].Status = model.WaybillStatusDelivered
dao.UpdateEntity(db, waybills[0], "Status")
}
dao.Commit(db) dao.Commit(db)
changeOrderStatus(vendorOrderID, model.OrderStatusFinished, "")
} }
} }
if len(getTrackMessagePlusByOrderResult.ResultData) > 0 { if len(getTrackMessagePlusByOrderResult.ResultData) > 0 {
@@ -1368,9 +1406,7 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result
break break
} }
} }
sql := "SELECT * FROM waybill WHERE vendor_order_id = ?" waybills, err = dao.GetWaybills(db, vendorOrderID)
sqlParams := []interface{}{vendorOrderID}
err = dao.GetRows(db, &waybills, sql, sqlParams)
if len(waybills) > 0 { if len(waybills) > 0 {
waybills[0].VendorWaybillID = waybillCode waybills[0].VendorWaybillID = waybillCode
waybills[0].CourierName = cName waybills[0].CourierName = cName