| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- <?php
- namespace bizHd\work\classes;
- use bizHd\goods\classes\CategoryClass;
- use bizHd\goods\classes\GoodsCategoryClass;
- use bizHd\goods\classes\GoodsClass;
- use bizHd\goods\classes\GoodsItemClass;
- use bizHd\order\classes\OrderGoodsClass;
- use common\components\imgUtil;
- use common\components\orderSn;
- use common\components\util;
- use bizHd\base\classes\BaseClass;
- class WorkClass extends BaseClass
- {
- public static $baseFile = '\bizHd\work\models\Work';
- const STATUS_UN_COMPLETE = 0;
- const STATUS_COMPLETE = 1;
- const STATUS_CANCEL = 2;
- public static function goodsCreateFinish($data)
- {
- $goods = $data['goods'] ?? '';
- $remark = $data['remark'] ?? '';
- $sjId = $data['sjId'] ?? 0;
- $shopId = $data['shopId'] ?? 0;
- $mainId = $data['mainId'] ?? 0;
- $ids = array_column($goods, 'productId');
- $info = GoodsClass::getByIds($ids, null, 'id');
- foreach ($goods as $key => $val) {
- $goodsId = $val['productId'] ?? 0;
- $name = $info[$goodsId]['name'] ?? '';
- $goodsSn = $info[$goodsId]['sn'] ?? '';
- $workNum = $val['num'] ?? 0;
- $cover = isset($info[$goodsId]['cover']) && !empty($info[$goodsId]['cover']) ? $info[$goodsId]['cover'] : 'hhb_small.png';
- $product = [];
- $goodsItem = GoodsItemClass::getAllByCondition(['goodsId' => $goodsId], null, '*');
- if (!empty($goodsItem)) {
- foreach ($goodsItem as $one) {
- $itemId = $one['itemId'] ?? 0;
- $unitType = $one['unitType'] ?? 0;
- $num = $one['num'] ?? 0;
- $product[] = [
- 'productId' => $itemId,
- 'num' => $num,
- 'unitType' => $unitType,
- ];
- }
- }
- $goodsCat = GoodsCategoryClass::getByCondition(['gId' => $goodsId], true);
- $catId = $goodsCat->cId ?? 0;
- $catName = '';
- if (!empty($catId)) {
- $cat = CategoryClass::getById($catId, true);
- $catName = $cat->categoryName ?? '';
- }
- $workSn = orderSn::getWorkSn();
- $flowerNum = $info[$goodsId]['flowerNum'] ?? 0;
- $orderSn = $data['orderSn'] ?? '';
- $orderId = $data['orderId'] ?? 0;
- $current = [
- 'name' => $name,
- 'num' => $workNum,
- 'cover' => $cover,
- 'remark' => $remark,
- 'catId' => $catId,
- 'catName' => $catName,
- 'product' => $product,
- 'goodsId' => $goodsId,
- 'goodsSn' => $goodsSn,
- 'sjId' => $sjId,
- 'shopId' => $shopId,
- 'mainId' => $mainId,
- 'workSn' => $workSn,
- 'flowerNum' => $flowerNum,
- 'orderSn' => $orderSn,
- 'orderId' => $orderId,
- ];
- return self::createFinish($current);
- }
- }
- public static function createFinish($data)
- {
- $data['flowerNum'] = isset($data['flowerNum']) && is_numeric($data['flowerNum']) ? $data['flowerNum'] : 0;
- $work = WorkClass::add($data, true);
- $product = $data['product'] ?? [];
- if (!empty($product)) {
- //修改用材
- WorkItemClass::modifyItem($work, $product);
- //锁定库存
- WorkItemClass::lock($work);
- }
- $complete = $data['complete'] ?? 0;
- if ($complete == 1) {
- //直接完成
- WorkClass::finish($work);
- }
- return $work;
- }
- //锁定工单 ssh 20220320
- public static function lock($work)
- {
- $work->stockLock = 1;
- $work->save();
- WorkItemClass::lock($work);
- }
- //取消工单
- public static function cancel($work)
- {
- if ($work->status == self::STATUS_COMPLETE) {
- util::fail('工单已完成');
- }
- if ($work->status == self::STATUS_CANCEL) {
- util::fail('工单已取消');
- }
- if (isset($work->orderSn) && !empty($work->orderSn)) {
- util::fail('此工单有订单,请通过订单取消');
- }
- //取消锁定,释放库存
- WorkItemClass::cancelLock($work);
- $work->status = self::STATUS_CANCEL;
- $work->save();
- }
- //完成工单 ssh 20220320
- public static function finish($work)
- {
- $work->status = self::STATUS_COMPLETE;
- $work->save();
- WorkItemClass::wastage($work);
- $num = $work->num ?? 0;
- $mainId = $work->mainId ?? 0;
- $workSn = $work->workSn ?? '';
- $workId = $work->id ?? 0;
- $sjId = $work->sjId ?? 0;
- $shopId = $work->shopId ?? 0;
- $goodsId = $work->goodsId ?? 0;
- $bigNum = $work->bigNum ?? 0;
- $smallNum = $work->smallNum ?? 0;
- $flowerNum = $work->flowerNum ?? 0;
- //没有商品生成商品
- if (empty($goodsId)) {
- $name = $work->name ?? '';
- $catId = $work->catId ?? 0;
- $cover = $work->cover ?? '';
- $shopImg = [$cover];
- $date = date("Y-m-d H:i:s");
- $goodsData = [
- 'shopImg' => $shopImg,
- 'mainId' => $mainId,
- 'cover' => $cover,
- 'name' => $name,
- 'content' => '',
- 'createTime' => $date,
- 'sjId' => $sjId,
- 'mainId' => $mainId,
- 'shopId' => $shopId,
- 'bigNum' => $bigNum,
- 'smallNum' => $smallNum,
- 'workId' => $workId,
- 'workSn' => $workSn,
- 'flower' => 1,
- 'flowerNum' => $flowerNum,
- ];
- if (!empty($catId)) {
- $goodsData['catIds'] = [$catId];
- }
- $goods = GoodsClass::addGoods($goodsData, $work);
- $goodsId = $goods->id ?? 0;
- $sn = $goods->sn ?? '';
- $work->goodsSn = $sn;
- $work->goodsId = $goodsId;
- $work->save();
- }
- //库存增加
- $staffName = $work->staffName ?? '';
- OrderGoodsClass::addGoodsStockByMakeGoods($workSn, $sjId, $shopId, $mainId, $goodsId, $num, $staffName);
- }
- //验证工单 ssh 20220319
- public static function valid($work, $mainId)
- {
- if (empty($work)) {
- util::fail('没有找到工单');
- }
- if (isset($work->mainId) == false || $work->mainId != $mainId) {
- util::fail('没有权限');
- }
- return true;
- }
- public static function getWorkList($where)
- {
- $data = self::getList('*', $where, 'addTime DESC');
- $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
- if (empty($list)) {
- return $data;
- }
- $data['list'] = self::groupBaseInfo($list);
- return $data;
- }
- public static function groupBaseInfo($list)
- {
- if (empty($list)) {
- return $list;
- }
- foreach ($list as $key => $val) {
- $shortCover = $val['cover'] ?? '';
- $cover = imgUtil::getPrefix() . 'hhb_small.png';
- $bigCover = imgUtil::getPrefix() . 'hhb_small.png';
- if (!empty($shortCover)) {
- $parse = parse_url(self::groupImg($shortCover));
- if (empty($parse['query'])) {
- $cover = self::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_110,w_110";
- } else {
- $cover = self::groupImg($shortCover);
- }
- $bigCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_700,w_700";
- }
- $list[$key]['cover'] = $cover;
- $list[$key]['bigCover'] = $bigCover;
- $list[$key]['shortCover'] = $shortCover;
- }
- return $list;
- }
- }
|