InitController.php 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <?php
  2. namespace console\controllers;
  3. use biz\pt\classes\PtYeChangeClass;
  4. use biz\recharge\classes\RechargeClass;
  5. use biz\shop\classes\MainClass;
  6. use biz\shop\classes\ShopAdminClass;
  7. use biz\shop\classes\ShopCapitalClass;
  8. use biz\shop\classes\ShopClass;
  9. use biz\shop\classes\ShopYeChangeClass;
  10. use biz\sj\classes\CashClass;
  11. use biz\stat\classes\StatCgClass;
  12. use biz\stat\classes\StatCgGhsClass;
  13. use biz\stat\classes\StatCgGhsMonthClass;
  14. use biz\stat\classes\StatCgMonthClass;
  15. use biz\stat\classes\StatOrderCountClass;
  16. use biz\stat\classes\StatOutClass;
  17. use biz\stat\classes\StatOutMonthClass;
  18. use biz\stat\classes\StatSaleClass;
  19. use biz\stat\classes\StatSaleMonthClass;
  20. use bizGhs\item\classes\ItemClass;
  21. use bizGhs\item\classes\ItemClassClass;
  22. use bizGhs\order\classes\StockWastageOrderClass;
  23. use bizGhs\order\classes\StockWastageOrderItemClass;
  24. use bizGhs\stat\classes\StatYjClass;
  25. use bizGhs\stat\classes\StatYjMonthClass;
  26. use bizHd\goods\classes\CategoryClass;
  27. use bizHd\goods\classes\GoodsCategoryClass;
  28. use bizHd\goods\classes\GoodsClass;
  29. use bizHd\goods\classes\GoodsSettingClass;
  30. use bizHd\saas\classes\FestRiseClass;
  31. use bizHd\stat\classes\StatOrderClass;
  32. use bizHd\stat\classes\StatOrderMonthClass;
  33. use bizHd\stat\classes\StatUserClass;
  34. use bizHd\stat\classes\StatUserMonthClass;
  35. use bizHd\stat\classes\StatVisitClass;
  36. use bizHd\stat\classes\StatVisitMonthClass;
  37. use Yii;
  38. use yii\console\Controller;
  39. class InitController extends Controller
  40. {
  41. //执行供货商资产中央化 ./yii init/ghs-center
  42. // shish 20220313
  43. public function actionGhsCenter()
  44. {
  45. //todo 分店需要建立自己独立的分类 和 花材与分类关系 --待测试
  46. $shopList = ShopClass::getAllByCondition(['ptStyle' => 2], null, '*', null, true);
  47. if (empty($shopList)) {
  48. return false;
  49. }
  50. foreach ($shopList as $shop){
  51. $mainId = $shop->mainId ?? 0;
  52. $sjId = $shop->sjId;
  53. $shopId = $shop->id;
  54. if($mainId){
  55. //判断花材分类是否存在
  56. $itemClassResByMainId = ItemClassClass::getAllByCondition(['mainId'=>$mainId,'sjId'=>$sjId],null,"*");
  57. if(empty($itemClassResByMainId)){
  58. //无,则要新增花材分类,根据sjId
  59. $itemClassResBySjId = ItemClassClass::getAllByCondition(['sjId'=>$sjId],null,"*");
  60. if($itemClassResBySjId){
  61. foreach ($itemClassResBySjId as $itemClass){
  62. $data = $itemClass;
  63. $oldItemClassId = $data['id'];
  64. unset($data['id']);
  65. unset($data['addTime']);
  66. unset($data['updateTime']);
  67. $data['mainId'] = $mainId;
  68. $save = ItemClassClass::add($data);
  69. $newItemClassId = $save['id'];
  70. ItemClass::updateByCondition(['shopId' => $shopId,'classId'=>$oldItemClassId], ['mainId' => $mainId,'classId'=>$newItemClassId]);
  71. }
  72. }
  73. }
  74. }
  75. }
  76. /***分店需要建立自己独立的分类 和 花材与分类关系* end **/
  77. //批发
  78. $shopList = ShopClass::getAllByCondition(['ptStyle' => 2], null, '*', null, true);
  79. if (empty($shopList)) {
  80. return false;
  81. }
  82. foreach ($shopList as $shop) {
  83. $mainId = $shop->mainId ?? 0;
  84. if (empty($mainId)) {
  85. $main = MainClass::add(['id' => null], true);
  86. $mainId = $main->id ?? 0;
  87. if (empty($mainId)) {
  88. echo "mainId没有生成 \n";
  89. exit();
  90. }
  91. $shop->mainId = $mainId;
  92. $shop->save();
  93. }
  94. $shopId = $shop->id ?? 0;
  95. StatSaleClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  96. StatSaleMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  97. StatUserClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  98. StatUserMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  99. StatVisitClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  100. StatVisitMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  101. StatOutClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  102. StatOutMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  103. PtYeChangeClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  104. ShopYeChangeClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  105. CashClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  106. ShopCapitalClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  107. RechargeClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  108. StatYjClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  109. StatYjMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  110. ShopAdminClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  111. StatOrderClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  112. StatOrderMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  113. StatOrderCountClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  114. //采购统计的中央化
  115. StatCgClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  116. StatCgMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  117. StatCgGhsClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  118. StatCgGhsMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  119. /********琦海 start ************/
  120. //报损中央化
  121. StockWastageOrderClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  122. $wastageList = StockWastageOrderClass::getAllByCondition(['mainId' => $mainId], null, '*', null, true);
  123. if (!empty($wastageList)) {
  124. foreach ($wastageList as $wastage) {
  125. $wastageOrderSn = $wastage->orderSn ?? 0;
  126. StockWastageOrderItemClass::updateByCondition(['orderSn' => $wastageOrderSn], ['mainId' => $mainId]);
  127. }
  128. }
  129. //花材
  130. //todo 临时处理
  131. if($shop->default == 1){
  132. ItemClassClass::updateByCondition(['sjId' => $shop->sjId], ['mainId' => $mainId]);
  133. }
  134. /********琦海 end ************/
  135. }
  136. //零售
  137. $shopList = ShopClass::getAllByCondition(['ptStyle' => 1], null, '*', null, true);
  138. if (empty($shopList)) {
  139. return false;
  140. }
  141. foreach ($shopList as $shop) {
  142. $mainId = $shop->mainId ?? 0;
  143. if (empty($mainId)) {
  144. $main = MainClass::add(['id' => null], true);
  145. $mainId = $main->id ?? 0;
  146. if (empty($mainId)) {
  147. echo "mainId没有生成 \n";
  148. exit();
  149. }
  150. $shop->mainId = $mainId;
  151. $shop->save();
  152. }
  153. $sjId = $shop->sjId ?? 0;
  154. $shopId = $shop->id ?? 0;
  155. //商品
  156. GoodsClass::updateByCondition(['sjId' => $sjId], ['mainId' => $mainId]);
  157. GoodsCategoryClass::updateByCondition(['sjId' => $sjId], ['mainId' => $mainId]);
  158. //商品分类
  159. CategoryClass::updateByCondition(['sjId' => $sjId], ['mainId' => $mainId]);
  160. GoodsSettingClass::updateByCondition(['sjId' => $sjId], ['mainId' => $mainId]);
  161. FestRiseClass::updateByCondition(['sjId' => $sjId], ['mainId' => $mainId]);
  162. /********琦海 start ************/
  163. //花材
  164. ItemClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
  165. //花材分类
  166. ItemClassClass::updateByCondition(['sjId' => $shop->sjId], ['mainId' => $mainId]);
  167. /********琦海 end ************/
  168. }
  169. }
  170. }