每晚刷新物料订单状态顺便刷新运单信息
This commit is contained in:
@@ -1261,6 +1261,8 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) {
|
||||
}
|
||||
dao.Commit(db)
|
||||
changeOrderStatus(vv.VendorOrderID, model.OrderStatusFinished, "")
|
||||
getTrackMessagePlusByOrderResult, _ := api.JdEclpAPI.GetTrackMessagePlusByOrder(vv.VendorOrderID)
|
||||
updateJdWayBillInfo(db, vv, getTrackMessagePlusByOrderResult)
|
||||
} else {
|
||||
deliveringCount++
|
||||
}
|
||||
@@ -1288,26 +1290,9 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) {
|
||||
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, "")
|
||||
}
|
||||
}
|
||||
getTrackMessagePlusByOrderResult, _ := api.JdEclpAPI.GetTrackMessagePlusByOrder(v.VendorOrderID)
|
||||
updateMatterOrderStatus(db, v, queryOrderStatus)
|
||||
updateJdWayBillInfo(db, v, getTrackMessagePlusByOrderResult)
|
||||
}
|
||||
}
|
||||
return err
|
||||
@@ -1357,54 +1342,63 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result
|
||||
}
|
||||
}
|
||||
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)
|
||||
}
|
||||
}()
|
||||
order.Status = model.OrderStatusFinished
|
||||
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)
|
||||
changeOrderStatus(vendorOrderID, model.OrderStatusFinished, "")
|
||||
}
|
||||
updateMatterOrderStatus(db, order, queryOrderStatus)
|
||||
}
|
||||
if len(getTrackMessagePlusByOrderResult.ResultData) > 0 {
|
||||
var (
|
||||
waybillCode = getTrackMessagePlusByOrderResult.ResultData[0].WaybillCode
|
||||
cName string
|
||||
cMobile string
|
||||
waybills []*model.Waybill
|
||||
)
|
||||
for _, vv := range getTrackMessagePlusByOrderResult.ResultData {
|
||||
if vv.OpeTitle == "配送员收货" {
|
||||
result := regexpCnameAndCmobile.FindAllStringSubmatch(vv.OpeRemark, -1)
|
||||
cName = result[0][1]
|
||||
cMobile = result[0][2]
|
||||
break
|
||||
}
|
||||
}
|
||||
waybills, err = dao.GetWaybills(db, vendorOrderID)
|
||||
if len(waybills) > 0 {
|
||||
waybills[0].VendorWaybillID = waybillCode
|
||||
waybills[0].CourierName = cName
|
||||
waybills[0].CourierMobile = cMobile
|
||||
order.VendorWaybillID = waybillCode
|
||||
order.WaybillVendorID = model.VendorIDJDWL
|
||||
dao.UpdateEntity(db, order, "VendorWaybillID", "WaybillVendorID")
|
||||
dao.UpdateEntity(db, waybills[0], "VendorWaybillID", "CourierName", "CourierMobile")
|
||||
}
|
||||
updateJdWayBillInfo(db, order, getTrackMessagePlusByOrderResult)
|
||||
}
|
||||
return result, err
|
||||
}
|
||||
|
||||
func updateMatterOrderStatus(db *dao.DaoDB, order *model.GoodsOrder, queryOrderStatus *jdeclpapi.QueryOrderStatusResult) {
|
||||
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)
|
||||
}
|
||||
}()
|
||||
order.Status = model.OrderStatusFinished
|
||||
dao.UpdateEntity(db, order, "Status")
|
||||
waybills, err := dao.GetWaybills(db, order.VendorOrderID)
|
||||
if err == nil && len(waybills) > 0 {
|
||||
waybills[0].Status = model.WaybillStatusDelivered
|
||||
dao.UpdateEntity(db, waybills[0], "Status")
|
||||
}
|
||||
dao.Commit(db)
|
||||
changeOrderStatus(order.VendorOrderID, model.OrderStatusFinished, "")
|
||||
}
|
||||
}
|
||||
|
||||
func updateJdWayBillInfo(db *dao.DaoDB, order *model.GoodsOrder, getTrackMessagePlusByOrderResult *jdeclpapi.GetTrackMessagePlusByOrderResult) (err error) {
|
||||
var (
|
||||
waybillCode = getTrackMessagePlusByOrderResult.ResultData[0].WaybillCode
|
||||
cName string
|
||||
cMobile string
|
||||
waybills []*model.Waybill
|
||||
)
|
||||
for _, vv := range getTrackMessagePlusByOrderResult.ResultData {
|
||||
if vv.OpeTitle == "配送员收货" {
|
||||
result := regexpCnameAndCmobile.FindAllStringSubmatch(vv.OpeRemark, -1)
|
||||
cName = result[0][1]
|
||||
cMobile = result[0][2]
|
||||
break
|
||||
}
|
||||
}
|
||||
waybills, err = dao.GetWaybills(db, order.VendorOrderID)
|
||||
if len(waybills) > 0 {
|
||||
waybills[0].VendorWaybillID = waybillCode
|
||||
waybills[0].CourierName = cName
|
||||
waybills[0].CourierMobile = cMobile
|
||||
order.VendorWaybillID = waybillCode
|
||||
order.WaybillVendorID = model.VendorIDJDWL
|
||||
dao.UpdateEntity(db, order, "VendorWaybillID", "WaybillVendorID")
|
||||
dao.UpdateEntity(db, waybills[0], "VendorWaybillID", "CourierName", "CourierMobile")
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int, err error) {
|
||||
var (
|
||||
skus = jxOrder.Skus
|
||||
|
||||
Reference in New Issue
Block a user