查询物料订单状态
This commit is contained in:
@@ -103,9 +103,10 @@ type DeliveryDayTimeInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type MatterOrderStatus struct {
|
type MatterOrderStatus struct {
|
||||||
Time string `json:"time"`
|
Time time.Time `json:"time"`
|
||||||
Status string `json:"status"`
|
Status string `json:"status"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
|
Sign int `sign`
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -951,22 +952,45 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result
|
|||||||
var (
|
var (
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
)
|
)
|
||||||
waybills, err := dao.GetWayBillByOrderID(db, -1, model.VendorIDJX, -1, vendorOrderID)
|
|
||||||
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDJX)
|
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDJX)
|
||||||
if len(waybills) > 0 {
|
if err != nil {
|
||||||
// queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(waybills[0].VendorWaybillID)
|
return nil, err
|
||||||
}
|
}
|
||||||
// getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID)
|
queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(order.EclpOutID)
|
||||||
dao.Begin(db)
|
getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID)
|
||||||
defer func() {
|
for _, v := range queryOrderStatus.OrderStatusList {
|
||||||
if r := recover(); r != nil {
|
time1 := utils.Str2Time(v.OperateTime)
|
||||||
dao.Rollback(db)
|
status1 := v.SoStatusName
|
||||||
panic(r)
|
name1 := v.SoStatusName
|
||||||
|
for _, vv := range getTrackMessagePlusByOrderResult.ResultData {
|
||||||
|
time2 := utils.Str2Time(strings.ReplaceAll(vv.OpeName, "/", "-"))
|
||||||
|
status2 := vv.OpeTitle
|
||||||
|
name2 := vv.OpeRemark
|
||||||
|
matter := &MatterOrderStatus{}
|
||||||
|
if time2.Unix() <= time1.Unix() {
|
||||||
|
matter.Time = time2
|
||||||
|
matter.Status = status2
|
||||||
|
matter.Name = name2
|
||||||
|
} else {
|
||||||
|
matter.Time = time1
|
||||||
|
matter.Status = status1
|
||||||
|
matter.Name = name1
|
||||||
|
break
|
||||||
|
}
|
||||||
|
result = append(result, matter)
|
||||||
}
|
}
|
||||||
}()
|
}
|
||||||
dao.UpdateEntity(db, order, "Status")
|
if getTrackMessagePlusByOrderResult.ResultData[len(getTrackMessagePlusByOrderResult.ResultData)-1].WaybillCode == jdeclpapi.SoStatusCode10034 {
|
||||||
waybills[0].StatusTime = time.Now()
|
dao.Begin(db)
|
||||||
dao.UpdateEntity(db, waybills[0], "Status", "StatusTime")
|
defer func() {
|
||||||
dao.Commit(db)
|
if r := recover(); r != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
order.Status = model.OrderStatusFinished
|
||||||
|
dao.UpdateEntity(db, order, "Status")
|
||||||
|
dao.Commit(db)
|
||||||
|
}
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user