WorkService.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace bizHd\work\services;
  3. use bizHd\base\services\BaseService;
  4. use bizHd\goods\classes\CategoryClass;
  5. use bizHd\goods\classes\GoodsCategoryClass;
  6. use bizHd\goods\classes\GoodsClass;
  7. use bizHd\goods\classes\GoodsItemClass;
  8. use bizHd\work\classes\WorkClass;
  9. use bizHd\work\classes\WorkItemClass;
  10. use common\components\orderSn;
  11. use common\components\util;
  12. use Yii;
  13. class WorkService extends BaseService
  14. {
  15. public static $baseFile = '\bizHd\work\classes\WorkClass';
  16. public static function GoodsCreateFinish($data)
  17. {
  18. $goods = $data['goods'] ?? '';
  19. $goods = json_decode($goods, true);
  20. if (empty($goods)) {
  21. util::fail('没有找到成品');
  22. }
  23. $remark = $data['remark'] ?? '';
  24. $sjId = $data['sjId'] ?? 0;
  25. $shopId = $data['shopId'] ?? 0;
  26. $mainId = $data['mainId'] ?? 0;
  27. $ids = array_column($goods, 'productId');
  28. $info = GoodsClass::getByIds($ids, null, 'id');
  29. foreach ($goods as $key => $val) {
  30. $goodsId = $val['productId'] ?? 0;
  31. $name = $info[$goodsId]['name'] ?? '';
  32. $goodsSn = $info[$goodsId]['goodsSn'] ?? '';
  33. $workNum = $val['num'] ?? 0;
  34. $cover = isset($info[$goodsId]['cover']) && !empty($info[$goodsId]['cover']) ? $info[$goodsId]['cover'] : 'hhb_small.png';
  35. $product = [];
  36. $goodsItem = GoodsItemClass::getAllByCondition(['goodsId' => $goodsId], null, '*');
  37. if (!empty($goodsItem)) {
  38. foreach ($goodsItem as $one) {
  39. $itemId = $one['itemId'] ?? 0;
  40. $unitType = $one['unitType'] ?? 0;
  41. $num = $one['num'] ?? 0;
  42. $product[] = [
  43. 'productId' => $itemId,
  44. 'num' => $num,
  45. 'unitType' => $unitType,
  46. ];
  47. }
  48. }
  49. $goodsCat = GoodsCategoryClass::getByCondition(['gId' => $goodsId], true);
  50. $catId = $goodsCat->cId ?? 0;
  51. $catName = '';
  52. if (!empty($catId)) {
  53. $cat = CategoryClass::getById($catId, true);
  54. $catName = $cat->categoryName ?? '';
  55. }
  56. $workSn = orderSn::getWorkSn();
  57. $flowerNum = $info[$goodsId]['flowerNum'] ?? 0;
  58. $current = [
  59. 'name' => $name,
  60. 'num' => $workNum,
  61. 'cover' => $cover,
  62. 'remark' => $remark,
  63. 'catId' => $catId,
  64. 'catName' => $catName,
  65. 'product' => $product,
  66. 'goodsId' => $goodsId,
  67. 'goodsSn' => $goodsSn,
  68. 'sjId' => $sjId,
  69. 'shopId' => $shopId,
  70. 'mainId' => $mainId,
  71. 'workSn' => $workSn,
  72. 'flowerNum' => $flowerNum,
  73. ];
  74. self::createFinish($current);
  75. }
  76. }
  77. public static function createFinish($data)
  78. {
  79. $data['flowerNum'] = isset($data['flowerNum']) && is_numeric($data['flowerNum']) ? $data['flowerNum'] : 0;
  80. $work = WorkClass::add($data, true);
  81. $product = $data['product'] ?? [];
  82. //有花材传入的情况是花艺师制作直接完成
  83. if (!empty($product)) {
  84. //修改用材
  85. WorkItemClass::modifyItem($work, $product);
  86. //锁定库存
  87. WorkItemClass::lock($work);
  88. }
  89. $complete = $data['complete'] ?? 0;
  90. if ($complete == 1) {
  91. //直接完成
  92. WorkClass::finish($work);
  93. }
  94. return $work;
  95. }
  96. }