|
|
@@ -275,21 +275,26 @@ def is_maintenance_tracking_signed(tracking_info):
|
275
|
275
|
def maintenance_tracking_info_update(maintenance, type_, tracking_info):
|
276
|
276
|
old_maintenance_status = maintenance.maintenance_status
|
277
|
277
|
is_tracking_signed = is_maintenance_tracking_signed(tracking_info)
|
|
278
|
+
|
|
279
|
+ # 状态流转,TRACKING_TO_DESPATCH -> TRACKING_SIGNED_FIXING -> TRACKING_FIXED_BACK -> TRACKING_BACK_SIGNED
|
|
280
|
+ # 需判断快递签收再更新维修状态
|
278
|
281
|
if type_ == 'tracking':
|
279
|
282
|
maintenance.tracking_info = tracking_info
|
280
|
283
|
maintenance.tracking_signed = is_tracking_signed
|
281
|
|
- if is_tracking_signed:
|
|
284
|
+ if is_tracking_signed and old_maintenance_status == MaintenaceInfo.TRACKING_TO_DESPATCH:
|
282
|
285
|
maintenance_status = MaintenaceInfo.TRACKING_SIGNED_FIXING
|
283
|
286
|
else:
|
284
|
287
|
maintenance.back_tracking_info = tracking_info
|
285
|
288
|
maintenance.back_tracking_signed = is_tracking_signed
|
286
|
|
- if is_tracking_signed:
|
|
289
|
+ if is_tracking_signed and old_maintenance_status == MaintenaceInfo.TRACKING_FIXED_BACK:
|
287
|
290
|
maintenance_status = MaintenaceInfo.TRACKING_BACK_SIGNED
|
288
|
|
- maintenance.maintenance_status = maintenance_status
|
289
|
|
- maintenance_status_at = maintenance.maintenance_status_at
|
290
|
|
- if maintenance_status not in maintenance_status_at:
|
291
|
|
- maintenance_status_at[maintenance_status] = tc.utc_datetime()
|
292
|
|
- maintenance.maintenance_status_at = maintenance_status_at
|
|
291
|
+
|
|
292
|
+ if maintenance_status:
|
|
293
|
+ maintenance.maintenance_status = maintenance_status
|
|
294
|
+ maintenance_status_at = maintenance.maintenance_status_at
|
|
295
|
+ if maintenance_status not in maintenance_status_at:
|
|
296
|
+ maintenance_status_at[maintenance_status] = tc.utc_datetime()
|
|
297
|
+ maintenance.maintenance_status_at = maintenance_status_at
|
293
|
298
|
maintenance.save()
|
294
|
299
|
|
295
|
300
|
if maintenance_status != old_maintenance_status:
|