刷新物料订单状态修改

This commit is contained in:
苏尹岚
2020-03-20 14:16:57 +08:00
parent 1e527a601b
commit 6c3e3ce0bc

View File

@@ -1244,14 +1244,15 @@ func RefreshAllMatterOrderStatus() (err error) {
err = dao.GetRows(db, &goodsList, sql, sqlParams) err = dao.GetRows(db, &goodsList, sql, sqlParams)
for _, v := range goodsList { for _, v := range goodsList {
var ( var (
goodsList2 []*model.GoodsOrder goodsList2 []*model.GoodsOrder
finishedCount int cancelCount int
deliveringCount int
) )
sql2 := "SELECT * FROM goods_order WHERE vendor_order_id LIKE ? OR vendor_order_id LIKE ? AND vendor_id = ? AND eclp_out_id <> '' AND LENGTH(vendor_order_id) = 16" sql2 := "SELECT * FROM goods_order WHERE vendor_order_id LIKE ? OR vendor_order_id LIKE ? AND vendor_id = ? AND eclp_out_id <> '' AND LENGTH(vendor_order_id) = 16"
sqlParams2 := []interface{}{v.VendorOrderID + "0%", v.VendorOrderID + "1%", model.VendorIDJX} sqlParams2 := []interface{}{v.VendorOrderID + "0%", v.VendorOrderID + "1%", model.VendorIDJX}
err = dao.GetRows(db, &goodsList2, sql2, sqlParams2) err = dao.GetRows(db, &goodsList2, sql2, sqlParams2)
for _, vv := range goodsList2 { for _, vv := range goodsList2 {
if vv.Status != model.OrderStatusFinished { if vv.Status < model.OrderStatusFinished {
queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(vv.EclpOutID) queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(vv.EclpOutID)
if len(queryOrderStatus.OrderStatusList) > 0 { if len(queryOrderStatus.OrderStatusList) > 0 {
if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 {
@@ -1264,26 +1265,31 @@ func RefreshAllMatterOrderStatus() (err error) {
}() }()
vv.Status = model.OrderStatusFinished vv.Status = model.OrderStatusFinished
dao.UpdateEntity(db, vv, "Status") dao.UpdateEntity(db, vv, "Status")
finishedCount++
dao.Commit(db) dao.Commit(db)
} else {
deliveringCount++
} }
} }
} else { } else if vv.Status == model.OrderStatusCanceled {
finishedCount++ cancelCount++
} }
} }
if finishedCount == len(goodsList2) { dao.Begin(db)
dao.Begin(db) defer func() {
defer func() { if r := recover(); r != nil {
if r := recover(); r != nil { dao.Rollback(db)
dao.Rollback(db) panic(r)
panic(r) }
} }()
}() if deliveringCount == 0 {
v.Status = model.OrderStatusFinished v.Status = model.OrderStatusFinished
dao.UpdateEntity(db, v, "Status") } else {
dao.Commit(db) if cancelCount == len(goodsList2) {
v.Status = model.OrderStatusCanceled
}
} }
dao.UpdateEntity(db, v, "Status")
dao.Commit(db)
} }
return err return err
} }