InitController.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. <?php
  2. namespace console\controllers;
  3. use biz\product\classes\ProductClass;
  4. use biz\shop\classes\ShopClass;
  5. use bizGhs\custom\classes\CustomClass;
  6. use bizGhs\ghs\classes\GhsClass;
  7. use bizGhs\order\classes\PurchaseOrderClass;
  8. use bizGhs\order\classes\PurchaseOrderItemClass;
  9. use bizGhs\order\classes\StockInOrderClass;
  10. use bizGhs\order\classes\StockOutOrderClass;
  11. use bizGhs\order\classes\StockOutOrderItemClass;
  12. use bizGhs\stock\classes\OnStockRecordClass;
  13. use bizHd\purchase\classes\PurchaseClass;
  14. use bizHd\purchase\classes\PurchaseItemClass;
  15. use yii\console\Controller;
  16. use bizGhs\custom\models\Custom;
  17. use bizGhs\order\classes\OrderClass;
  18. use common\components\noticeUtil;
  19. use common\components\util;
  20. use Yii;
  21. class InitController extends Controller
  22. {
  23. public function actionAdjustDebt()
  24. {
  25. $shopList = ShopClass::getAllByCondition(['id' => 11094], null, '*', null, true);
  26. if (empty($shopList)) {
  27. return false;
  28. }
  29. foreach ($shopList as $key => $shop) {
  30. $shopId = $shop->id ?? 0;
  31. $query = new \yii\db\Query();
  32. $query->from(Custom::tableName());
  33. $query->where(['ownShopId' => $shopId]);
  34. $query->orderBy('addTime ASC');
  35. foreach ($query->batch(50) as $customList) {
  36. if (!empty($customList)) {
  37. foreach ($customList as $custom) {
  38. $customId = $custom['id'] ?? 0;
  39. $where = ['customId' => $customId, 'debt' => 1];
  40. $orderList = OrderClass::getAllByCondition($where, 'addTime DESC', '*');
  41. $ghsOrderDebtAmount = 0;
  42. if (!empty($orderList)) {
  43. foreach ($orderList as $order) {
  44. $actPrice = $order['remainDebtPrice'] ?? 0;
  45. $ghsOrderDebtAmount = bcadd($ghsOrderDebtAmount, $actPrice, 2);
  46. }
  47. }
  48. $ghsId = $custom['ghsId'] ?? 0;
  49. $ghs = \bizHd\ghs\classes\GhsClass::getById($ghsId);
  50. $where = ['ghsId' => $ghsId, 'debt' => PurchaseClass::DEBT_YES];
  51. $cgList = PurchaseClass::getAllByCondition($where, 'addTime DESC', '*');
  52. $hdCgOrderDebtAmount = 0;
  53. if (!empty($cgList)) {
  54. foreach ($cgList as $cg) {
  55. $actPrice = $cg['remainDebtPrice'] ?? 0;
  56. $hdCgOrderDebtAmount = bcadd($hdCgOrderDebtAmount, $actPrice, 2);
  57. }
  58. }
  59. if ($ghsOrderDebtAmount < 0 || $hdCgOrderDebtAmount < 0) {
  60. noticeUtil::push("!!!!!!!供货商 {$ghsId} 客户id {$customId} 出现负数 $ghsOrderDebtAmount $hdCgOrderDebtAmount", '15280215347');
  61. echo "@@@@@@@@@@@@@供货商 {$ghsId} 客户id {$customId} 出现负数 $ghsOrderDebtAmount $hdCgOrderDebtAmount \n";
  62. }
  63. $ghsOrderDebtAmount = floatval($ghsOrderDebtAmount);
  64. $hdCgOrderDebtAmount = floatval($hdCgOrderDebtAmount);
  65. if ($ghsOrderDebtAmount != $hdCgOrderDebtAmount) {
  66. noticeUtil::push("!!!!!!!供货商 {$ghsId} 客户id {$customId} 二边欠款单总金额不一致", '15280215347');
  67. echo "---------供货商 {$ghsId} 客户id {$customId} 二边 欠款单 总金额 不一致 {$ghsOrderDebtAmount} {$hdCgOrderDebtAmount} \n";
  68. continue;
  69. }
  70. $customSaveDebtAmount = $custom['debtAmount'] ? floatval($custom['debtAmount']) : 0;
  71. $ghsSaveDebtAmount = $ghs['debtAmount'] ? floatval($ghs['debtAmount']) : 0;
  72. if ($customSaveDebtAmount != $ghsOrderDebtAmount) {
  73. echo "*********客户 {$customId} 欠款 和 订单总额 不一致 $customSaveDebtAmount $ghsOrderDebtAmount \n";
  74. noticeUtil::push("*********客户 {$customId} 欠款总金额 和 订单总合 不一致 $customSaveDebtAmount $ghsOrderDebtAmount ", '15280215347');
  75. continue;
  76. }
  77. if ($ghsSaveDebtAmount != $hdCgOrderDebtAmount) {
  78. echo "#########欠供货商 {$ghsId} 和 订单总额 不一致 $ghsSaveDebtAmount $hdCgOrderDebtAmount \n";
  79. noticeUtil::push("#########欠供货商 {$ghsId} 金额 和 订单总合 不一致 $ghsSaveDebtAmount $hdCgOrderDebtAmount ", '15280215347');
  80. continue;
  81. }
  82. }
  83. }
  84. }
  85. }
  86. }
  87. //在路上库存 ssh 20231218
  88. public function actionOnStock()
  89. {
  90. ini_set('memory_limit', '2045M');
  91. set_time_limit(0);
  92. $sql = 'UPDATE xhGhsItem SET onStock=0;';
  93. Yii::$app->db->createCommand($sql)->execute();
  94. $sql = 'truncate xhGhsOnStockRecord;';
  95. Yii::$app->db->createCommand($sql)->execute();
  96. $cgList = PurchaseOrderClass::getAllByCondition(['status' => 3], null, '*', null, true);
  97. if (!empty($cgList)) {
  98. foreach ($cgList as $key => $cg) {
  99. $orderSn = $cg->orderSn ?? '';
  100. $sjId = $cg->sjId ?? 0;
  101. $shopId = $cg->shopId ?? 0;
  102. $mainId = $cg->mainId ?? 0;
  103. $ghsName = $cg->ghsName ?? '';
  104. $itemList = PurchaseOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
  105. if (!empty($itemList)) {
  106. foreach ($itemList as $info) {
  107. $productId = $info->productId ?? 0;
  108. $itemId = $info->itemId ?? 0;
  109. $num = $info->itemNum ?? 0;
  110. $product = ProductClass::getLockById($productId);
  111. //增加路上库存
  112. $onRecord = [];
  113. $onRecord['sjId'] = $sjId;
  114. $onRecord['shopId'] = $shopId;
  115. $onRecord['mainId'] = $mainId;
  116. $onRecord['orderSn'] = $orderSn;
  117. $onRecord['productId'] = $productId;
  118. $onRecord['itemId'] = $itemId;
  119. $onRecord['relateName'] = $ghsName;
  120. $onRecord['itemNum'] = $num;
  121. $oldOnStock = $product->onStock ?? 0;
  122. $onRecord['oldStock'] = $oldOnStock;
  123. $newOnStock = bcadd($oldOnStock, $num);
  124. $onRecord['newStock'] = $newOnStock;
  125. $onRecord['ptStyle'] = 2;
  126. OnStockRecordClass::addPurchaseOrderRecord($onRecord);
  127. \bizGhs\product\classes\ProductClass::addOnStockByItemNum($productId, $num);
  128. }
  129. }
  130. }
  131. }
  132. }
  133. public function actionLsOnStock()
  134. {
  135. ini_set('memory_limit', '2045M');
  136. set_time_limit(0);
  137. $cgList = PurchaseClass::getAllByCondition(['status' => 3], null, '*', null, true);
  138. if (!empty($cgList)) {
  139. foreach ($cgList as $key => $cg) {
  140. $orderSn = $cg->orderSn ?? '';
  141. $sjId = $cg->sjId ?? 0;
  142. $shopId = $cg->shopId ?? 0;
  143. $mainId = $cg->mainId ?? 0;
  144. $ghsName = $cg->ghsName ?? '';
  145. $itemList = PurchaseItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
  146. if (!empty($itemList)) {
  147. foreach ($itemList as $val) {
  148. $productId = $val->productId ?? 0;
  149. $itemId = $val->itemId ?? 0;
  150. $num = $val->xhNum ?? 0;
  151. $product = ProductClass::getLockById($productId);
  152. if (empty($product)) {
  153. util::fail('没有找到花材呢');
  154. }
  155. //增加路上库存
  156. $onRecord = [];
  157. $onRecord['sjId'] = $sjId;
  158. $onRecord['shopId'] = $shopId;
  159. $onRecord['mainId'] = $mainId;
  160. $onRecord['orderSn'] = $orderSn;
  161. $onRecord['productId'] = $productId;
  162. $onRecord['itemId'] = $itemId;
  163. $onRecord['relateName'] = $ghsName;
  164. $onRecord['itemNum'] = $num;
  165. $oldOnStock = $product->onStock ?? 0;
  166. $onRecord['oldStock'] = $oldOnStock;
  167. $newOnStock = bcadd($oldOnStock, $num);
  168. $onRecord['newStock'] = $newOnStock;
  169. $onRecord['ptStyle'] = 1;
  170. OnStockRecordClass::addPurchaseOrderRecord($onRecord);
  171. \bizGhs\product\classes\ProductClass::addOnStockByItemNum($productId, $num);
  172. }
  173. }
  174. }
  175. }
  176. }
  177. public function actionCustom()
  178. {
  179. $list = CustomClass::getAllByCondition(['isHd' => 0], null, '*', null, true);
  180. if (!empty($list)) {
  181. foreach ($list as $custom) {
  182. $custom->level = 0;
  183. $custom->save();
  184. $ghsId = $custom->ghsId;
  185. $ghs = GhsClass::getById($ghsId, true);
  186. if (!empty($ghs)) {
  187. $ghs->giveLevel = 0;
  188. $ghs->save();
  189. echo 'customId:' . $custom->id . ' ghsId:' . $ghsId . "\n";
  190. }
  191. }
  192. }
  193. }
  194. public function actionOut()
  195. {
  196. ini_set('memory_limit', '2045M');
  197. set_time_limit(0);
  198. $list = StockOutOrderClass::getAllByCondition(['addTime>' => '2022-11-10 00:00:00'], null, '*', null, true);
  199. if (empty($list)) {
  200. return false;
  201. }
  202. foreach ($list as $out) {
  203. $orderSn = $out->orderSn ?? '';
  204. $inOrderSn = $out->inOrderSn ?? '';
  205. $in = StockInOrderClass::getByCondition(['orderSn' => $inOrderSn], true);
  206. if (empty($in)) {
  207. echo $orderSn . " 没有找到入库记录\n";
  208. }
  209. $itemList = StockOutOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
  210. $totalCost = 0;
  211. if (!empty($itemList)) {
  212. foreach ($itemList as $item) {
  213. $itemNum = $item->itemNum ?? 0;
  214. $itemPrice = $item->itemPrice ?? 0;
  215. $current = bcmul($itemNum, $itemPrice, 2);
  216. $totalCost = bcadd($totalCost, $current, 2);
  217. }
  218. }
  219. $in->price = $totalCost;
  220. $in->save();
  221. $out->price = $totalCost;
  222. $out->save();
  223. echo $orderSn . " 总成本{$totalCost}\n";
  224. }
  225. }
  226. }