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