from(Clear::tableName()); $query->where(['>', 'id', $autoId]); foreach ($query->batch(500) as $changeList) { $ids = array_column($changeList, 'id'); $relate = OrderCgClearClass::getAllByCondition(['clearId' => ['in', $ids]], null, '*', 'clearId'); $connection = Yii::$app->db; $transaction = $connection->beginTransaction(); try { foreach ($changeList as $clear) { $clearId = $clear['id'] ?? 0; $clearSn = $clear['orderSn'] ?? ''; $status = $clear['status'] ?? 1; $clearAmount = $clear['actPrice'] ?? 0; $purchaseIds = $clear['purchaseIds'] ?? ''; $saleIds = $clear['saleIds'] ?? ''; $clearStyle = $clear['clearStyle'] ?? 1; if (!isset($relate[$clearId])) { if ($clearStyle == 3) { if (!empty($purchaseIds)) { $purchaseIdList = explode(',', $purchaseIds); $purchaseInfo = PurchaseOrderClass::getAllByCondition(['id' => ['in', $purchaseIdList]], null, 'id,orderSn', 'id'); foreach ($purchaseInfo as $purchase) { $purchaseId = $purchase['id'] ?? 0; $purchaseOrderSn = $purchase['orderSn'] ?? 0; $addData = ['orderId' => 0, 'orderSn' => '', 'cgId' => $purchaseId, 'cgSn' => $purchaseOrderSn, 'clearId' => $clearId, 'clearSn' => $clearSn, 'amount' => $clearAmount, 'status' => $status]; OrderCgClearClass::add($addData); echo "ghs cg clearId {$clearId} OK ### \n"; } } else { echo "供货商采购 clearId {$clearId} 有缺数据 \n"; } } else { if (!empty($saleIds) && !empty($purchaseIds)) { $saleIdList = explode(',', $saleIds); $purchaseIdList = explode(',', $purchaseIds); $saleInfo = OrderClass::getAllByCondition(['id' => ['in', $saleIdList]], null, 'id,orderSn,purchaseId'); $purchaseInfo = PurchaseClass::getAllByCondition(['id' => ['in', $purchaseIdList]], null, 'id,orderSn', 'id'); if (!empty($saleInfo)) { foreach ($saleInfo as $sale) { $saleId = $sale['id'] ?? 0; $purchaseId = $sale['purchaseId'] ?? 0; $saleOrderSn = $sale['orderSn'] ?? ''; $purchase = $purchaseInfo[$purchaseId] ?? []; if (empty($purchase)) { echo "purchase {$purchaseId} 没有找到 \n"; exit(); } $purchaseOrderSn = $purchase['orderSn'] ?? ''; $addData = ['orderId' => $saleId, 'orderSn' => $saleOrderSn, 'cgId' => $purchaseId, 'cgSn' => $purchaseOrderSn, 'clearId' => $clearId, 'clearSn' => $clearSn, 'amount' => $clearAmount, 'status' => $status]; OrderCgClearClass::add($addData); } echo "hd cg clearId {$clearId} OK *** \n"; } } else { echo "花店采购 clearId {$clearId} 有缺数据 \n"; } } } else { echo "有记录 {$clearId} \n"; } } $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); $msg = $e->getMessage(); echo "报错了:" . $msg . "\n"; } } } public function actionGhsBalance() { ini_set('memory_limit', '2045M'); set_time_limit(0); $sql = "delete from xhGhsBack"; Yii::$app->db->createCommand($sql)->execute(); $query = new \yii\db\Query(); $query->from(Ghs::tableName()); $query->where(['ownPtStyle' => 1]); $query->andWhere(['>', 'balance', 0]); foreach ($query->batch(500) as $ghsList) { $connection = Yii::$app->db; $transaction = $connection->beginTransaction(); try { foreach ($ghsList as $ghs) { GhsBackClass::add($ghs); } $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); $msg = $e->getMessage(); echo "报错了:" . $msg . "\n"; } } } //将花店供货商的欠款迁到余额,同时保留欠款项为后面复查预留 public function actionGhs() { ini_set('memory_limit', '2045M'); set_time_limit(0); $sql = "UPDATE xhGhs SET balance=-debtAmount WHERE ownPtStyle=1;"; Yii::$app->db->createCommand($sql)->execute(); } public function actionGhsUp() { ini_set('memory_limit', '2045M'); set_time_limit(0); $query = new \yii\db\Query(); $query->from(Ghs::tableName()); $query->where(['ownPtStyle' => 2]); foreach ($query->batch(500) as $ghsList) { $connection = Yii::$app->db; $transaction = $connection->beginTransaction(); try { foreach ($ghsList as $ghs) { $ghsId = $ghs['id'] ?? 0; $balance = PurchaseOrderClass::sum(['ghsId' => $ghsId, 'debt' => 1], 'actPrice'); $debtNum = PurchaseOrderClass::getCount(['ghsId' => $ghsId, 'debt' => 1]); GhsClass::updateById($ghsId, ['balance' => -$balance, 'debtNum' => $debtNum]); } $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); $msg = $e->getMessage(); echo "报错了:" . $msg . "\n"; } } } }