<?php /** * Created by 2020/4/28. * User: Joneq * Info: 2020/4/28 * Time: 下午4:35 */ namespace App\Http\Model\Logic; use App\Http\Model\BoxModel; use App\Http\Model\GoodsModel; use App\Http\Model\OutStoreDetailModel; use App\Http\Model\OutStoreModel; use App\Http\Model\PalletModel; use App\Http\Model\PickTaskDetailModel; use App\Http\Model\PickTaskModel; class PackCheckLogic { static public $statusCn = [ 1=>'未打包复核', 2=>'部份打包复核', 3=>'完全打包复核', ]; static public function getStatus($status) { if (empty($status)){ return '暂无该种状态'; } return array_get(self::$statusCn,$status,'状态异常!!'); } //获取出库仓号 static public function getPackCheckSn() { //CK+年后两位+月两位+日两位+10000 $beginTime = strtotime(date('Y-m-d')); $endTime = $beginTime +86400; $todayNum = $outStoreSn = OutStoreModel::where('add_time','>=',$beginTime)->where('add_time','<=',$endTime)->count('out_store_id'); if (empty($todayNum)){ $todayNum = 10000; }else{ $todayNum += 100001; } return 'DB'.substr(date('Ymd'),2,6).$todayNum; } public function right_pack_check($data) { //获取所有的out_store_detail_id $goodsType = substr($data['goods_name_box_id'],0,2); $pickTaskId = PickTaskModel::where('pick_task_sn',$data['pick_task_sn'])->value('pick_task_id'); switch ($goodsType){ case 'KB': $outStoreDetailIdArr = PalletModel::getWhereObj([])->where('pallet_sn',$data['goods_name_box_id'])->value('pallet_id'); $outStoreDetailIdArr = OutStoreDetailModel::where('pick_task_id',$pickTaskId)->where('pallet_id',$outStoreDetailIdArr)->pluck('out_store_detail_id'); break; case 'XB': $outStoreDetailIdArr = BoxModel::where('box_sn',$data['goods_name_box_id'])->value('box_id'); $outStoreDetailIdArr = OutStoreDetailModel::where('pick_task_id',$pickTaskId)->where('box_id',$outStoreDetailIdArr)->pluck('out_store_detail_id'); break; case 'FH': $fh = substr($data['goods_name_box_id'],2); $outStoreDetailIdArr = [$fh]; break; default: $outStoreDetailIdArr = OutStoreDetailModel::where('goods_name',$data['goods_name_box_id'])->pluck('out_store_detail_id'); break; } if (empty($outStoreDetailIdArr)){ throw new \Exception('该拣货任务下没找到该型号'); } //判断是否是未复核状态 $packStatus = PickTaskDetailModel::whereIn('out_store_detail_id',$outStoreDetailIdArr)->value('pack_status'); if ($packStatus !== 1 ){ throw new \Exception('该型号没有在未复核状态中'); } PickTaskDetailModel::whereIn('out_store_detail_id',$outStoreDetailIdArr)->update(['pack_status'=>2]); return []; } public function left_pack_check($data) { //获取所有的out_store_detail_id $goodsType = substr($data['goods_name_box_id'],0,2); $pickTaskId = PickTaskModel::where('pick_task_sn',$data['pick_task_sn'])->value('pick_task_id'); switch ($goodsType){ case 'KB': $outStoreDetailIdArr = PalletModel::getWhereObj([])->where('pallet_sn',$data['goods_name_box_id'])->value('pallet_id'); $outStoreDetailIdArr = OutStoreDetailModel::where('pick_task_id',$pickTaskId)->where('pallet_id',$outStoreDetailIdArr)->pluck('out_store_detail_id'); break; case 'XB': $outStoreDetailIdArr = BoxModel::where('box_sn',$data['goods_name_box_id'])->value('box_id'); $outStoreDetailIdArr = OutStoreDetailModel::where('pick_task_id',$pickTaskId)->where('box_id',$outStoreDetailIdArr)->pluck('out_store_detail_id'); break; case 'FH': $fh = substr($data['goods_name_box_id'],2); $outStoreDetailIdArr = [$fh]; break; default: $outStoreDetailIdArr = OutStoreDetailModel::where('goods_name',$data['goods_name_box_id'])->pluck('out_store_detail_id'); break; } if (empty($outStoreDetailIdArr)){ throw new \Exception('该拣货任务下没找到该型号'); } //判断是否是未复核状态 $packStatus = PickTaskDetailModel::whereIn('out_store_detail_id',$outStoreDetailIdArr)->value('pack_status'); if ($packStatus !== 2 ){ throw new \Exception('该型号没有在复核状态中'); } PickTaskDetailModel::whereIn('out_store_detail_id',$outStoreDetailIdArr)->update(['pack_status'=>1]); return []; } }