修复分账.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. # coding=utf-8
  2. from apps.web.user.models import ConsumeRecord
  3. from apps.web.dealer.proxy import DealerGroupStats
  4. def get_orders():
  5. import datetime
  6. from apps.web.dealer.proxy import DealerGroupStats
  7. from apps.web.user.models import ConsumeRecord
  8. r_orders = list()
  9. r_states = set()
  10. orders = ConsumeRecord.objects.filter(
  11. status="finished"
  12. )
  13. for order in orders: # type: ConsumeRecord
  14. if order.finishedTime:
  15. continue
  16. endTime = order.service.deviceEndTime
  17. finishedTime = datetime.datetime.strptime(endTime, "%Y-%m-%d %H:%M:%S")
  18. date = datetime.datetime(
  19. finishedTime.year,
  20. finishedTime.month,
  21. finishedTime.day
  22. )
  23. state = DealerGroupStats.update_group_stats(
  24. group=order.group,
  25. order=order,
  26. date=date
  27. ) # type: DealerGroupStats
  28. if state:
  29. order.link_state(state)
  30. order.description = "REPAIRED"
  31. order.finishedTime = finishedTime
  32. order.save()
  33. r_orders.append("{}\n".format(order.orderNo))
  34. r_states.add("{}\n".format(str(state.id)))
  35. print "success order = {}".format(order.orderNo)
  36. else:
  37. print "error order = {}".format(order.orderNo)
  38. with open("r_orders.txt", "w") as f1:
  39. f1.writelines(r_orders)
  40. with open("r_states.txt", "w") as f2:
  41. f2.writelines(r_states)
  42. def get_states():
  43. from apps.web.dealer.proxy import DealerGroupStats
  44. from apps.web.report.ledger import LedgerConsumeOrder
  45. orders = ConsumeRecord.objects.filter(
  46. description="REPAIRED"
  47. )
  48. states = set()
  49. for order in orders:
  50. states.add(str(order.dailyStats.id))
  51. for stateId in states:
  52. state = DealerGroupStats.objects.get(id=stateId) # type: DealerGroupStats
  53. if state.date == "2023-08-03":
  54. continue
  55. if state.is_ledgered:
  56. print(stateId)
  57. else:
  58. LedgerConsumeOrder(state).execute()