orderSn ?? ''; if (!empty($orderSn)) { $order = OrderClass::getByCondition(['orderSn' => $orderSn], true); if (empty($order)) { util::fail('没有找到订单'); } OrderClass::onlinePrint($order, $mustPrint, 'make'); } else { $shopId = $shop->id ?? 0; $ext = ShopExtClass::getByCondition(['shopId' => $shopId], true); $printLabelSn = $work->fromType == 4 ? $ext->mtPrintLabelSn : $ext->makePrintLabelSn; 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; } $flag = []; if ($item->fromType == 2) { $flag[] = '商城'; } elseif ($item->fromType == 4) { $flag[] = '美团'; } elseif ($item->fromType == 1) { $flag[] = '门店'; } else { if (isset($item->staffName) && !empty($item->staffName)) { $flag[] = $item->staffName; } } if (isset($item->bookName) && !empty($item->bookName)) { $flag[] = $item->bookName; } if (isset($item->sn) && !empty($item->sn)) { $flag[] = $item->sn; } $flagString = implode(" ", $flag); $num = $item->num ?? 1; $name = $item->name ?? ''; $content = '' . $name . ''; $content .= '' . $goodsSn . ''; $content .= '' . $flagString . ''; $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'; $bookName = $data['bookName'] ?? ''; $staffName = $data['staffName'] ?? ''; $staffId = $data['staffId'] ?? 0; $orderPrice = $data['orderPrice'] ?? 0; $orderDebtPrice = $data['orderDebtPrice'] ?? 0; $sendType = $data['sendType'] ?? 0; $fromType = $data['fromType'] ?? 1; $thirdSn = $data['thirdSn'] ?? ''; $cardInfo = $data['cardInfo'] ?? ''; $anonymity = $data['anonymity'] ?? 0; $sh = $data['sh'] ?? 0; $manyType = $data['manyType'] ?? 0; $sendNum = $data['sendNum'] ?? ''; $ids = array_column($goods, 'productId'); $info = GoodsClass::getByIds($ids, null, 'id'); foreach ($goods as $val) { $goodsId = $val['productId'] ?? 0; $currentInfo = $info[$goodsId] ?? []; if (empty($currentInfo)) { util::fail('商品没有找到,编号3990,id:' . $goodsId); } $name = $currentInfo['name'] ?? ''; $goodsSn = $currentInfo['sn'] ?? ''; $kindId = $currentInfo['kindId'] ?? 0; $kindName = $currentInfo['kindName'] ?? ''; $setItemNum = $currentInfo['setItemNum'] ?? 0; $workNum = $val['num'] ?? 0; $cover = !empty($currentInfo['cover']) ? $currentInfo['cover'] : 'hhb_small.png'; $goodsCat = GoodsCategoryClass::getByCondition(['gId' => $goodsId], true); $catId = $goodsCat->cId ?? 0; if (empty($catId)) { util::fail('没有找到商品的分类呢,编号6225'); } $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, 'goodsId' => $goodsId, 'goodsSn' => $goodsSn, 'sjId' => $sjId, 'shopId' => $shopId, 'mainId' => $mainId, 'workSn' => $workSn, 'flowerNum' => $flowerNum, 'orderSn' => $orderSn, 'orderId' => $orderId, 'hasReachTime' => $hasReachTime, 'reachDate' => $reachDate, 'reachPeriod' => $reachPeriod, 'setItemNum' => $setItemNum, 'bookName' => $bookName, 'staffName' => $staffName, 'staffId' => $staffId, 'orderPrice' => $orderPrice, 'orderDebtPrice' => $orderDebtPrice, 'fromType' => $fromType, 'sendType' => $sendType, 'thirdSn' => $thirdSn, 'cardInfo' => $cardInfo, 'anonymity' => $anonymity, 'sh' => $sh, 'manyType' => $manyType, 'sendNum' => $sendNum, 'kindId' => $kindId, 'kindName' => $kindName, ]; self::createFinish($current, $main); } } public static function createFinish($data, $main) { unset($data['setItemNum']); $data['flowerNum'] = isset($data['flowerNum']) && is_numeric($data['flowerNum']) ? $data['flowerNum'] : 0; $data['sn'] = StatWorkCountClass::addOrder($main); $work = WorkClass::addWork($data, $main); $complete = $data['complete'] ?? 0; if ($complete == 1) { //直接完成 WorkClass::finish($work); } return $work; } //美团取消订单同时取消制作单 ssh 20220925 public static function removeWork($work, $num) { if (empty($work)) { return false; } if ($work->status != 0) { return false; } if ($work->num <= $num) { $work->status = 2; $work->save(); } else { $work->num = bcsub($work->num, $num); $work->save(); } } //取消制作单 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, $staff = null) { $work->status = self::STATUS_COMPLETE; $work->finishTime = date("Y-m-d H:i:s"); if (!empty($staff)) { $currentStaffId = $staff['staffId'] ?? 0; $currentStaffName = $staff['staffName'] ?? ''; } else { $currentStaffId = $work->staffId ?? 0; $currentStaffName = $work->staffName ?? ''; } $work->finishStaffId = $currentStaffId; $work->finishStaffName = $currentStaffName; $work->save(); WorkItemClass::wastage($work); $fromType = $work->fromType ?? 0; if ($fromType == dict::getDict('fromType', 'mt')) { $currentTime = time(); $addTime = $work->addTime; $createTime = strtotime($addTime); $diffTime = bcsub($currentTime, $createTime); if ($diffTime < 60) { util::fail('美团单请1分钟后开始制作'); } } $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, 'shopId' => $shopId, 'bigNum' => $bigNum, 'smallNum' => $smallNum, 'workId' => $workId, 'workSn' => $workSn, 'flower' => 1, 'flowerNum' => $flowerNum, 'status' => 0, ]; 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) { $order = 'addTime DESC'; if (isset($where['status'])) { if ($where['status'] == 0) { $order = 'hasReachTime DESC,reachDate ASC,reachPeriod ASC,addTime ASC'; } if ($where['status'] == 1) { $order = 'hasReachTime DESC,reachDate DESC,reachPeriod DESC,addTime ASC'; } } $data = self::getList('*', $where, $order); $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; } $today = date("Y-m-d"); $tomorrow = date("Y-m-d", strtotime('+1 day')); 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; $list[$key]['today'] = $today; $list[$key]['tomorrow'] = $tomorrow; } return $list; } public static function needWork($order, $main, $params = []) { $mainId = $main->id; $sjId = $order->sjId ?? 0; $orderSn = $order->orderSn ?? ''; $orderId = $order->id ?? 0; $shopId = $order->shopId ?? 0; $orderPrice = $order->orderPrice ?? 0; $fromType = $order->fromType ?? 1; $remark = $order->remark ?? ''; $orderDebtPrice = $order->orderDebtPrice ?? 0; $sendType = $order->sendType ?? 0; $thirdSn = $order->thirdSn ?? ''; $cardInfo = $order->cardInfo ?? ''; $anonymity = $order->anonymity ?? 0; $manyType = $order->manyType ?? 0; $sendNum = $order->sendNum ?? ''; $hasReachTime = 0; $reachDate = $order->reachDate ?? ''; if (!empty($reachDate) && $reachDate != '0000-00-00') { $hasReachTime = 1; } $reachPeriod = $order->reachPeriod ?? 0; $staffName = $order->shopAdminName ?? ''; $staffId = $order->shopAdminId ?? ''; $bookName = $order->bookName ?? ''; $list = OrderGoodsClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true); if (!empty($list)) { foreach ($list as $goodsInfo) { $goodsId = $goodsInfo->goodsId ?? 0; $num = $goodsInfo->num ?? 0; $params = [ 'goods' => [['productId' => $goodsId, 'num' => abs($num)]], 'sjId' => $sjId, 'mainId' => $mainId, 'orderSn' => $orderSn, 'orderId' => $orderId, 'hasReachTime' => $hasReachTime, 'reachPeriod' => $reachPeriod, 'reachDate' => $reachDate, 'shopId' => $shopId, 'staffName' => $staffName, 'staffId' => $staffId, 'bookName' => $bookName, 'orderPrice' => $orderPrice, 'orderDebtPrice' => $orderDebtPrice, 'fromType' => $fromType, 'sendType' => $sendType, 'remark' => $remark, 'thirdSn' => $thirdSn, 'cardInfo' => $cardInfo, 'anonymity' => $anonymity, 'sh' => 0,//是否散花作品 'manyType' => $manyType, 'sendNum' => $sendNum, ]; WorkClass::goodsCreateFinish($params, $main); } } } }