ClearController.php 5.0 KB

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