ClearController.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace console\controllers;
  3. use bizGhs\clear\classes\OrderCgClearClass;
  4. use bizGhs\clear\models\Clear;
  5. use bizGhs\order\classes\OrderClass;
  6. use bizGhs\order\classes\PurchaseOrderClass;
  7. use bizHd\purchase\classes\PurchaseClass;
  8. use yii\console\Controller;
  9. use Yii;
  10. class ClearController extends Controller
  11. {
  12. public function actionBc()
  13. {
  14. ini_set('memory_limit', '2045M');
  15. set_time_limit(0);
  16. if (getenv('YII_ENV') == 'production') {
  17. $autoId = 817342;
  18. } else {
  19. $autoId = 1426;
  20. }
  21. $query = new \yii\db\Query();
  22. $query->from(Clear::tableName());
  23. $query->where(['>', 'id', $autoId]);
  24. foreach ($query->batch(500) as $changeList) {
  25. $ids = array_column($changeList, 'id');
  26. $relate = OrderCgClearClass::getAllByCondition(['clearId' => ['in', $ids]], null, '*', 'clearId');
  27. $connection = Yii::$app->db;
  28. $transaction = $connection->beginTransaction();
  29. try {
  30. foreach ($changeList as $clear) {
  31. $clearId = $clear['id'] ?? 0;
  32. $clearSn = $clear['orderSn'] ?? '';
  33. $status = $clear['status'] ?? 1;
  34. $clearAmount = $clear['actPrice'] ?? 0;
  35. $purchaseIds = $clear['purchaseIds'] ?? '';
  36. $saleIds = $clear['saleIds'] ?? '';
  37. $clearStyle = $clear['clearStyle'] ?? 1;
  38. if (!isset($relate[$clearId])) {
  39. if ($clearStyle == 3) {
  40. if (!empty($purchaseIds)) {
  41. $purchaseIdList = explode(',', $purchaseIds);
  42. $purchaseInfo = PurchaseOrderClass::getAllByCondition(['id' => ['in', $purchaseIdList]], null, 'id,orderSn', 'id');
  43. foreach ($purchaseInfo as $purchase) {
  44. $purchaseId = $purchase['id']??0;
  45. $purchaseOrderSn = $purchase['orderSn']??0;
  46. $addData = ['orderId' => 0, 'orderSn' => '', 'cgId' => $purchaseId, 'cgSn' => $purchaseOrderSn,
  47. 'clearId' => $clearId, 'clearSn' => $clearSn, 'amount' => $clearAmount, 'status' => $status];
  48. OrderCgClearClass::add($addData);
  49. echo "ghs cg clearId {$clearId} OK ### \n";
  50. }
  51. } else {
  52. echo "供货商采购 clearId {$clearId} 有缺数据 \n";
  53. }
  54. } else {
  55. if (!empty($saleIds) && !empty($purchaseIds)) {
  56. $saleIdList = explode(',', $saleIds);
  57. $purchaseIdList = explode(',', $purchaseIds);
  58. $saleInfo = OrderClass::getAllByCondition(['id' => ['in', $saleIdList]], null, 'id,orderSn,purchaseId');
  59. $purchaseInfo = PurchaseClass::getAllByCondition(['id' => ['in', $purchaseIdList]], null, 'id,orderSn', 'id');
  60. if (!empty($saleInfo)) {
  61. foreach ($saleInfo as $sale) {
  62. $saleId = $sale['id'] ?? 0;
  63. $purchaseId = $sale['purchaseId'] ?? 0;
  64. $saleOrderSn = $sale['orderSn'] ?? '';
  65. $purchase = $purchaseInfo[$purchaseId] ?? [];
  66. if (empty($purchase)) {
  67. echo "purchase {$purchaseId} 没有找到 \n";
  68. exit();
  69. }
  70. $purchaseOrderSn = $purchase['orderSn'] ?? '';
  71. $addData = ['orderId' => $saleId, 'orderSn' => $saleOrderSn, 'cgId' => $purchaseId, 'cgSn' => $purchaseOrderSn,
  72. 'clearId' => $clearId, 'clearSn' => $clearSn, 'amount' => $clearAmount, 'status' => $status];
  73. OrderCgClearClass::add($addData);
  74. }
  75. echo "hd cg clearId {$clearId} OK *** \n";
  76. }
  77. } else {
  78. echo "花店采购 clearId {$clearId} 有缺数据 \n";
  79. }
  80. }
  81. } else {
  82. echo "有记录 {$clearId} \n";
  83. }
  84. }
  85. $transaction->commit();
  86. } catch (\Exception $e) {
  87. $transaction->rollBack();
  88. $msg = $e->getMessage();
  89. echo "报错了:" . $msg . "\n";
  90. }
  91. }
  92. }
  93. }