PurchaseController.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace console\controllers;
  3. use bizHd\purchase\classes\PurchaseClass;
  4. use bizHd\purchase\models\Purchase;
  5. use bizHd\purchase\services\PurchaseService;
  6. use common\components\dict;
  7. use common\components\noticeUtil;
  8. use yii\console\Controller;
  9. use Yii;
  10. class PurchaseController extends Controller
  11. {
  12. //采购订单过期变更 shish 2021.5.14
  13. // ./yii purchase/expire-order
  14. // /usr/local/nginx/html/huahuibao/yii purchase/expire-order
  15. public function actionExpireOrder()
  16. {
  17. $query = new \yii\db\Query();
  18. $query->from(Purchase::tableName());
  19. $date = date("Y-m-d H:i:s");
  20. $query->where(['status' => PurchaseClass::STATUS_UN_PAY])->andWhere(['<=', 'deadline', $date]);
  21. $query->orderBy('deadline ASC');
  22. Yii::$app->params['ptStyle'] = dict::getDict('ptStyle', 'hd');
  23. $arr = [];
  24. foreach ($query->batch() as $purchases) {
  25. foreach ($purchases as $purchase) {
  26. $connection = Yii::$app->db;//事务处理
  27. $transaction = $connection->beginTransaction();
  28. try {
  29. $id = $purchase['id'] ?? 0;
  30. $current = PurchaseClass::getById($id, true);
  31. PurchaseService::expire($current);
  32. $transaction->commit();
  33. noticeUtil::push("采购单过期库存回滚 orderSn:{$current->orderSn}", '15280215347');
  34. } catch (\Exception $e) {
  35. $transaction->rollBack();
  36. $msg = $e->getMessage();
  37. noticeUtil::push("采购单过期处理,报错:{$msg}", '15280215347');
  38. }
  39. $log = "过期的采购单:{$id} json:" . json_encode($purchase);
  40. $arr[] = $log;
  41. }
  42. }
  43. if (!empty($arr)) {
  44. foreach ($arr as $item) {
  45. Yii::info($item);
  46. }
  47. }
  48. }
  49. }