ClearController.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <?php
  2. namespace console\controllers;
  3. use biz\ghs\classes\GhsBackClass;
  4. use bizGhs\clear\classes\OrderCgClearClass;
  5. use bizGhs\clear\models\Clear;
  6. use bizGhs\ghs\classes\GhsClass;
  7. use bizGhs\ghs\models\Ghs;
  8. use bizGhs\order\classes\OrderClass;
  9. use bizGhs\order\classes\PurchaseOrderClass;
  10. use bizHd\purchase\classes\PurchaseClass;
  11. use yii\console\Controller;
  12. use Yii;
  13. class ClearController extends Controller
  14. {
  15. //补回 xhOrderCgClear
  16. public function actionBc()
  17. {
  18. ini_set('memory_limit', '2045M');
  19. set_time_limit(0);
  20. if (getenv('YII_ENV') == 'production') {
  21. $autoId = 817342;
  22. } else {
  23. $autoId = 1426;
  24. }
  25. $query = new \yii\db\Query();
  26. $query->from(Clear::tableName());
  27. $query->where(['>', 'id', $autoId]);
  28. foreach ($query->batch(500) as $changeList) {
  29. $ids = array_column($changeList, 'id');
  30. $relate = OrderCgClearClass::getAllByCondition(['clearId' => ['in', $ids]], null, '*', 'clearId');
  31. $connection = Yii::$app->db;
  32. $transaction = $connection->beginTransaction();
  33. try {
  34. foreach ($changeList as $clear) {
  35. $clearId = $clear['id'] ?? 0;
  36. $clearSn = $clear['orderSn'] ?? '';
  37. $status = $clear['status'] ?? 1;
  38. $clearAmount = $clear['actPrice'] ?? 0;
  39. $purchaseIds = $clear['purchaseIds'] ?? '';
  40. $saleIds = $clear['saleIds'] ?? '';
  41. $clearStyle = $clear['clearStyle'] ?? 1;
  42. if (!isset($relate[$clearId])) {
  43. if ($clearStyle == 3) {
  44. if (!empty($purchaseIds)) {
  45. $purchaseIdList = explode(',', $purchaseIds);
  46. $purchaseInfo = PurchaseOrderClass::getAllByCondition(['id' => ['in', $purchaseIdList]], null, 'id,orderSn', 'id');
  47. foreach ($purchaseInfo as $purchase) {
  48. $purchaseId = $purchase['id'] ?? 0;
  49. $purchaseOrderSn = $purchase['orderSn'] ?? 0;
  50. $addData = ['orderId' => 0, 'orderSn' => '', 'cgId' => $purchaseId, 'cgSn' => $purchaseOrderSn,
  51. 'clearId' => $clearId, 'clearSn' => $clearSn, 'amount' => $clearAmount, 'status' => $status];
  52. OrderCgClearClass::add($addData);
  53. echo "ghs cg clearId {$clearId} OK ### \n";
  54. }
  55. } else {
  56. echo "供货商采购 clearId {$clearId} 有缺数据 \n";
  57. }
  58. } else {
  59. if (!empty($saleIds) && !empty($purchaseIds)) {
  60. $saleIdList = explode(',', $saleIds);
  61. $purchaseIdList = explode(',', $purchaseIds);
  62. $saleInfo = OrderClass::getAllByCondition(['id' => ['in', $saleIdList]], null, 'id,orderSn,purchaseId');
  63. $purchaseInfo = PurchaseClass::getAllByCondition(['id' => ['in', $purchaseIdList]], null, 'id,orderSn', 'id');
  64. if (!empty($saleInfo)) {
  65. foreach ($saleInfo as $sale) {
  66. $saleId = $sale['id'] ?? 0;
  67. $purchaseId = $sale['purchaseId'] ?? 0;
  68. $saleOrderSn = $sale['orderSn'] ?? '';
  69. $purchase = $purchaseInfo[$purchaseId] ?? [];
  70. if (empty($purchase)) {
  71. echo "purchase {$purchaseId} 没有找到 \n";
  72. exit();
  73. }
  74. $purchaseOrderSn = $purchase['orderSn'] ?? '';
  75. $addData = ['orderId' => $saleId, 'orderSn' => $saleOrderSn, 'cgId' => $purchaseId, 'cgSn' => $purchaseOrderSn,
  76. 'clearId' => $clearId, 'clearSn' => $clearSn, 'amount' => $clearAmount, 'status' => $status];
  77. OrderCgClearClass::add($addData);
  78. }
  79. echo "hd cg clearId {$clearId} OK *** \n";
  80. }
  81. } else {
  82. echo "花店采购 clearId {$clearId} 有缺数据 \n";
  83. }
  84. }
  85. } else {
  86. echo "有记录 {$clearId} \n";
  87. }
  88. }
  89. $transaction->commit();
  90. } catch (\Exception $e) {
  91. $transaction->rollBack();
  92. $msg = $e->getMessage();
  93. echo "报错了:" . $msg . "\n";
  94. }
  95. }
  96. }
  97. public function actionGhsBalance()
  98. {
  99. ini_set('memory_limit', '2045M');
  100. set_time_limit(0);
  101. $sql = "delete from xhGhsBack";
  102. Yii::$app->db->createCommand($sql)->execute();
  103. $query = new \yii\db\Query();
  104. $query->from(Ghs::tableName());
  105. $query->where(['ownPtStyle' => 1]);
  106. $query->andWhere(['>', 'balance', 0]);
  107. foreach ($query->batch(500) as $ghsList) {
  108. $connection = Yii::$app->db;
  109. $transaction = $connection->beginTransaction();
  110. try {
  111. foreach ($ghsList as $ghs) {
  112. GhsBackClass::add($ghs);
  113. }
  114. $transaction->commit();
  115. } catch (\Exception $e) {
  116. $transaction->rollBack();
  117. $msg = $e->getMessage();
  118. echo "报错了:" . $msg . "\n";
  119. }
  120. }
  121. }
  122. //将花店供货商的欠款迁到余额,同时保留欠款项为后面复查预留
  123. public function actionGhs()
  124. {
  125. ini_set('memory_limit', '2045M');
  126. set_time_limit(0);
  127. $sql = "UPDATE xhGhs SET balance=-debtAmount WHERE ownPtStyle=1;";
  128. Yii::$app->db->createCommand($sql)->execute();
  129. }
  130. public function actionGhsUp()
  131. {
  132. ini_set('memory_limit', '2045M');
  133. set_time_limit(0);
  134. $query = new \yii\db\Query();
  135. $query->from(Ghs::tableName());
  136. $query->where(['ownPtStyle' => 2]);
  137. foreach ($query->batch(500) as $ghsList) {
  138. $connection = Yii::$app->db;
  139. $transaction = $connection->beginTransaction();
  140. try {
  141. foreach ($ghsList as $ghs) {
  142. $ghsId = $ghs['id'] ?? 0;
  143. $balance = PurchaseOrderClass::sum(['ghsId' => $ghsId, 'debt' => 1], 'actPrice');
  144. $debtNum = PurchaseOrderClass::getCount(['ghsId' => $ghsId, 'debt' => 1]);
  145. GhsClass::updateById($ghsId, ['balance' => -$balance, 'debtNum' => $debtNum]);
  146. }
  147. $transaction->commit();
  148. } catch (\Exception $e) {
  149. $transaction->rollBack();
  150. $msg = $e->getMessage();
  151. echo "报错了:" . $msg . "\n";
  152. }
  153. }
  154. }
  155. }