diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index d338f5d18..de411194d 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -959,37 +959,32 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result 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 - if len(getTrackMessagePlusByOrderResult.ResultData) > 0 { - for _, vv := range getTrackMessagePlusByOrderResult.ResultData { - time2 := utils.Str2Time(strings.ReplaceAll(vv.OpeTime, "/", "-")) - status2 := vv.OpeTitle - name2 := vv.OpeRemark - matter := &MatterOrderStatus{} - if time2.Unix() <= time1.Unix() { - matter.Time = time2 - matter.Status = status2 - matter.Name = name2 - result = append(result, matter) - } else { - matter.Time = time1 - matter.Status = status1 - matter.Name = name1 - result = append(result, matter) - break - } - } - } else { + matter := &MatterOrderStatus{} + matter.Time = utils.Str2Time(v.OperateTime) + matter.Status = v.SoStatusName + matter.Name = v.SoStatusName + matter.Sign = 1 + result = append(result, matter) + } + if len(getTrackMessagePlusByOrderResult.ResultData) > 0 { + for _, vv := range getTrackMessagePlusByOrderResult.ResultData { matter := &MatterOrderStatus{} - matter.Time = time1 - matter.Status = status1 - matter.Name = name1 + matter.Time = utils.Str2Time(strings.ReplaceAll(vv.OpeTime, "/", "-")) + matter.Status = vv.OpeTitle + matter.Name = vv.OpeRemark + matter.Sign = 2 result = append(result, matter) } } - + for i := 0; i < len(result)-1; i++ { + for j := 0; j < len(result)-i-1; j++ { + if result[j].Time.Unix() > result[j+1].Time.Unix() || (result[j].Time.Unix() == result[j+1].Time.Unix() && result[j].Sign > result[j+1].Sign) { + tmp := result[j] + result[j] = result[j+1] + result[j+1] = tmp + } + } + } if len(queryOrderStatus.OrderStatusList) > 0 { if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { dao.Begin(db)