WorkClass.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. namespace bizHd\work\classes;
  3. use bizHd\goods\classes\GoodsClass;
  4. use bizHd\order\classes\OrderGoodsClass;
  5. use common\components\imgUtil;
  6. use common\components\util;
  7. use bizHd\base\classes\BaseClass;
  8. class WorkClass extends BaseClass
  9. {
  10. public static $baseFile = '\bizHd\work\models\Work';
  11. const STATUS_UN_COMPLETE = 0;
  12. const STATUS_COMPLETE = 1;
  13. const STATUS_CANCEL = 2;
  14. //锁定工单 ssh 20220320
  15. public static function lock($work)
  16. {
  17. $work->stockLock = 1;
  18. $work->save();
  19. WorkItemClass::lock($work);
  20. }
  21. //取消工单
  22. public static function cancel($work)
  23. {
  24. if ($work->status == self::STATUS_COMPLETE) {
  25. util::fail('工单已完成');
  26. }
  27. if ($work->status == self::STATUS_CANCEL) {
  28. util::fail('工单已取消');
  29. }
  30. if (isset($work->orderSn) && !empty($work->orderSn)) {
  31. util::fail('此工单有订单,请通过订单取消');
  32. }
  33. //取消锁定,释放库存
  34. WorkItemClass::cancelLock($work);
  35. $work->status = self::STATUS_CANCEL;
  36. $work->save();
  37. }
  38. //完成工单 ssh 20220320
  39. public static function finish($work)
  40. {
  41. $work->status = self::STATUS_COMPLETE;
  42. $work->save();
  43. WorkItemClass::wastage($work);
  44. $num = $work->num ?? 0;
  45. $mainId = $work->mainId ?? 0;
  46. $workSn = $work->workSn ?? '';
  47. $workId = $work->id ?? 0;
  48. $sjId = $work->sjId ?? 0;
  49. $shopId = $work->shopId ?? 0;
  50. $goodsId = $work->goodsId ?? 0;
  51. $bigNum = $work->bigNum ?? 0;
  52. $smallNum = $work->smallNum ?? 0;
  53. $flowerNum = $work->flowerNum ?? 0;
  54. //没有商品生成商品
  55. if (empty($goodsId)) {
  56. $name = $work->name ?? '';
  57. $catId = $work->catId ?? 0;
  58. $date = date("Y-m-d H:i:s");
  59. $goodsData = [
  60. 'mainId' => $mainId,
  61. 'name' => $name,
  62. 'content' => '',
  63. 'createTime' => $date,
  64. 'sjId' => $sjId,
  65. 'mainId' => $mainId,
  66. 'shopId' => $shopId,
  67. 'bigNum' => $bigNum,
  68. 'smallNum' => $smallNum,
  69. 'workId' => $workId,
  70. 'workSn' => $workSn,
  71. 'flower' => 1,
  72. 'flowerNum' => $flowerNum,
  73. ];
  74. if (!empty($catId)) {
  75. $goodsData['catIds'] = [$catId];
  76. }
  77. $goods = GoodsClass::addGoods($goodsData, $work);
  78. $goodsId = $goods->id ?? 0;
  79. $work->goodsId = $goodsId;
  80. $work->save();
  81. }
  82. //库存增加
  83. OrderGoodsClass::addGoodsStockByMakeGoods($workSn, $sjId, $shopId, $mainId, $goodsId, $num);
  84. }
  85. //验证工单 ssh 20220319
  86. public static function valid($work, $mainId)
  87. {
  88. if (empty($work)) {
  89. util::fail('没有找到工单');
  90. }
  91. if (isset($work->mainId) == false || $work->mainId != $mainId) {
  92. util::fail('没有权限');
  93. }
  94. return true;
  95. }
  96. public static function getWorkList($where)
  97. {
  98. $data = self::getList('*', $where);
  99. $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
  100. if (empty($list)) {
  101. return $data;
  102. }
  103. $data['list'] = self::groupBaseInfo($list);
  104. return $data;
  105. }
  106. public static function groupBaseInfo($list)
  107. {
  108. if (empty($list)) {
  109. return $list;
  110. }
  111. foreach ($list as $key => $val) {
  112. $shortCover = $val['cover'] ?? '';
  113. $cover = imgUtil::getPrefix() . 'hhb_small.png';
  114. $bigCover = imgUtil::getPrefix() . 'hhb_small.png';
  115. if (!empty($shortCover)) {
  116. $parse = parse_url(self::groupImg($shortCover));
  117. if (empty($parse['query'])) {
  118. $cover = self::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_110,w_110";
  119. } else {
  120. $cover = self::groupImg($shortCover);
  121. }
  122. $bigCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_700,w_700";
  123. }
  124. $list[$key]['cover'] = $cover;
  125. $list[$key]['bigCover'] = $bigCover;
  126. $list[$key]['shortCover'] = $shortCover;
  127. }
  128. return $list;
  129. }
  130. }