orderSn ?? ''; if (!empty($orderSn)) { $order = OrderClass::getByCondition(['orderSn' => $orderSn], true); if (empty($order)) { util::fail('没有找到订单'); } OrderClass::onlinePrint($order); } else { $shopId = $shop->id ?? 0; $ext = ShopExtClass::getByCondition(['shopId' => $shopId], true); $printLabelSn = $ext->printLabelSn ?? ''; if (empty($printLabelSn)) { if ($mustPrint) { util::fail('请设置标签打印机'); } } else { $p = new printUtil($printLabelSn); $workSn = $work->workSn ?? ''; $workItemList = WorkClass::getAllByCondition(['workSn' => $workSn], null, '*', null, true); if (!empty($workItemList)) { foreach ($workItemList as $item) { $goodsSn = $item->goodsSn ?? ''; if (empty($goodsSn)) { continue; } $num = $item->num ?? 1; $name = $item->name ?? ''; $content = '' . $name . ''; $content .= '' . $goodsSn . ''; $p->times = $num; $p->printLabelMsg($content); } } } } } public static function goodsCreateFinish($data, $main) { $goods = $data['goods'] ?? ''; $remark = $data['remark'] ?? ''; $sjId = $data['sjId'] ?? 0; $shopId = $data['shopId'] ?? 0; $mainId = $data['mainId'] ?? 0; $hasReachTime = $data['hasReachTime'] ?? 0; $reachPeriod = $data['reachPeriod'] ?? 0; $reachDate = $data['reachDate'] ?? '0000-00-00'; $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, 'hasReachTime' => $hasReachTime, 'reachDate' => $reachDate, 'reachPeriod' => $reachPeriod, ]; self::createFinish($current, $main); } } public static function createFinish($data, $main) { $data['flowerNum'] = isset($data['flowerNum']) && is_numeric($data['flowerNum']) ? $data['flowerNum'] : 0; $data['sn'] = date("j") . StatWorkCountClass::addOrder($main); $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) { 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; } //工单列表 ssh 20220606 public static function getWorkList($where) { $data = self::getList('*', $where, 'hasReachTime DESC,reachDate ASC,reachPeriod ASC'); $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; } }