Просмотр исходного кода

退货导出字段,超时
预约允许后台签到

Zhouzhendong 4 лет назад
Родитель
Сommit
1cfa3d1bd6

+ 16 - 0
app/Http/Controllers/DeliveryAppointmentController.php

@@ -562,6 +562,7 @@ html;
      */
     public function unloading()
     {
+        $this->gate("入库管理-入库预约-预约管理-卸货完成");
         if (!request("id"))$this->error("非法参数");
         /** @var DeliveryAppointmentCar|\stdClass $car */
         $car = DeliveryAppointmentCar::query()->find(request("id"));
@@ -572,6 +573,21 @@ html;
         $this->success();
     }
 
+    /**
+     * 管理员代替签到
+     */
+    public function signIn()
+    {
+        $this->gate("入库管理-入库预约-预约管理-签到");
+        if (!request("id"))$this->error("非法参数");
+        /** @var DeliveryAppointmentCar|\stdClass $car */
+        $car = DeliveryAppointmentCar::query()->find(request("id"));
+        if (!$car || !$car->deliveryAppointment)$this->error("单据不存在");
+        $car->update(["status"=>1]);
+        event(new DeliveryAppointmentEvent($car));
+        $this->success();
+    }
+
     /**
      * 产能维护
      * */

+ 2 - 2
app/Http/Controllers/RejectedController.php

@@ -418,9 +418,9 @@ class RejectedController extends Controller
             "owner_name"=>"客户名称","order_number"=>"订单号",
             "sender"=>"姓名","mobile_sender"=>"手机",
             "logistic_number"=>"原单单号","logistic_number_return"=>"退回单号","logistic_name"=>"退回公司",
-            "fee_collected"=>"到付费用","is_loaded"=>"是否入库",
+            "fee_collected"=>"到付费用","loaded"=>"是否入库",
             "item_barcode"=>"商品条码","item_name"=>"商品名称",
-            "item_amount"=>"商品数量","quality_label_name"=>"商品质量"
+            "item_amount"=>"商品数量","quality_label_name"=>"商品质量","operator_name"=>"录入人"
         ])->direct();
     }
 

+ 1 - 248
app/Http/Controllers/TestController.php

@@ -121,256 +121,9 @@ class TestController extends Controller
     {
         return call_user_func([$this, $method], $request);
     }
-    public function createCacheRack()
-    {
-        $stations = [
-            "HAIB1-01-02","HAIB1-01-03",
-            "HAIB1-02-01","HAIB1-02-03",
-            "HAIB1-03-01","HAIB1-03-02","HAIB1-03-03"
-        ];
-        foreach ($stations as $station){
-            Station::query()->create([
-                "parent_id" => 6,
-                "name" => $station,
-                "code" => $station,
-                "station_type_id" => 5,
-            ]);
-        }
-        dd("OK");
-    }
-    /**
-     * @param Integer[] $nums
-     * @param Integer $target
-     * @return Integer[]|null
-     */
-    function twoSum($nums, $target) {
-        $map=[];
-        for($i=0;$i<count($nums);$i++){
-            $complement=$target-$nums[$i];
-            if(array_key_exists($complement,$map)){
-                return [$map[$complement],$i];
-            }
-            $map[$nums[$i]]=$i;
-        }
-        return null;
-    }
-    /**
-     * @param $wave
-     * @return string
-     */
-    private function wms_status($wave): string
-    {
-        switch ($wave->wavestatus) {
-            case 00:
-                $wms_status = '创建';
-                break;
-            case 40:
-                $wms_status = '部分收货';
-                break;
-            case 90:
-                $wms_status = '取消';
-                break;
-            case 99:
-                $wms_status = '完成';
-                break;
-            case 62:
-                $wms_status = '部分装箱';
-                break;
-            default:
-                $wms_status = (string)$wave->wavestatus;
-        }
-        return $wms_status;
-    }
-    /** @var DocWaveHeaderService $service */
-    private $service;
-    /** @var BatchService $batchService */
-    private $batchService;
-
-    private function detailExe($details)
-    {
-        $this->service = app(DocWaveHeaderService::class);
-        $this->batchService = app(BatchService::class);
-        if (count($details) < 1)return;
-        $map = [];
-        $nos = [];
-        $orderCodes = [];
-        $seqnos = [];
-        $batchMapping = [];
-        foreach ($details as $detail){
-            if (isset($map[$detail->waveno]))$map[$detail->waveno][] = $detail->orderno;
-            else {
-                $map[$detail->waveno] = [$detail->orderno];
-                $nos[] = $detail->waveno;
-            }
-            $orderCodes[] = $detail->orderno;
-            $seqnos[$detail->orderno] = $detail->seqno;
-            $batchMapping[$detail->orderno] = $detail->waveno;
-        }
-        $orders = Order::query()->select("id","batch_id","code")->whereIn("code",$orderCodes)->get();
-        if (count($orderCodes) != count($orders))LogService::log(__CLASS__,"格口号-订单存在差异",json_encode($orderCodes));
-        if ($orders){
-            $orderIds = [];
-            $orderMap = [];
-            $existOrder = [];
-            foreach ($orders as $order){
-                $orderIds[] = $order->id;
-                $orderMap[$order->id] = $seqnos[$order->code];
-                $existOrder[$order->code] = $order->batch_id;
-            }
-            $updateBin = [["id","number"]];
-            $insertBin = [];
-            $deleteBin = [];
-            $orderBins = OrderBin::query()->select("id","order_id","number")->whereIn("order_id",$orderIds)->get();
-            foreach ($orderBins as $orderBin){
-                if (!isset($orderMap[$orderBin->order_id])){
-                    $deleteBin[] = $orderBin->id;
-                    continue;
-                }
-                if ($orderBin->number != $orderMap[$orderBin->order_id])$updateBin[]=["id"=>$orderBin->id,"number"=>$orderMap[$orderBin->order_id]];
-                unset($orderMap[$orderBin->order_id]);
-            }
-            $d = date('Y-m-d H:i:s');
-            foreach ($orderMap as $orderId=>$binNumber){
-                $insertBin[]=[
-                    "order_id"=>$orderId,
-                    "number"=>$binNumber,
-                    'created_at' => $d
-                ];
-            }
-            if (count($updateBin)>1){
-                app(BatchUpdateService::class)->batchUpdate("order_bins",$updateBin);
-                LogService::log(__METHOD__,"波次同步-更新订单格口号",json_encode($updateBin));
-            }
-            if ($insertBin){
-                OrderBin::query()->insert($insertBin);
-                LogService::log(__METHOD__,"波次同步-录入订单格口号",json_encode($insertBin));
-            }
-            if ($deleteBin){
-                OrderBin::destroy($deleteBin);
-                LogService::log(__METHOD__,"波次同步-删除订单格口号",json_encode($deleteBin));
-            }
-        }
-        $batches = $this->batchService->get(["code"=>$nos]);
-        $batchDiff = array_keys(array_flip(array_diff($nos,array_column($batches->toArray(),"code"))));
-        if (count($batchDiff)>0){
-            $sql = <<<sql
-SELECT * FROM DOC_WAVE_HEADER WHERE WAVENO IN (''
-sql;
-            foreach ($batchDiff as $bd)$sql .= ",'".$bd."'";
-            $sql .= ')';
-            $wmsBatches = DB::connection("oracle")->select(DB::raw($sql));
-            $this->headerExe($wmsBatches);
-            $batches = $this->batchService->get(["code"=>$nos]);
-        }
-        $updateOrder = [["code","batch_id"]];
-        $updatingBatches = [];
-        foreach ($batches as $batch){
-            $mark = false;
-            foreach ($map[$batch->code] as $on){
-                if ((!isset($existOrder[$on])) || $existOrder[$on]!=$batch->id){
-                    $updateOrder[] = [
-                        "code"=>$on,
-                        "batch_id"=>$batch->id
-                    ];
-                    $mark = true;
-                }
-            }
-            if ($mark)$updatingBatches[] = $batch;
-            unset($map[$batch->code]);
-        }
-        if (count($updateOrder)>1){
-            app("OrderService")->batchUpdate($updateOrder);//反向修改订单
-            LogService::log(__METHOD__,"波次同步-修改订单波次号",json_encode($updateOrder));
-            app("BatchService")->checkBatchOrderInfo($updatingBatches);
-           dump($updatingBatches);
-        }
-        if ($map){
-            $waveCodes = array_keys($map);
-            $waves = $this->service->get(["waveno"=>$waveCodes],["waveno"=>"in"]);
-            $insert = [];
-            foreach ($waves as $wave){
-                $owner = app("OwnerService")->codeGetOwner($wave->customerid);
-                $insert[] = [
-                    "code" => $wave->waveno,
-                    "status" => '未处理',
-                    "wms_status" => $this->wms_status($wave),
-                    "wms_type"=>$wave->descr,
-                    "created_at"=>$wave->addtime,
-                    "updated_at"=>$wave->edittime,
-                    "owner_id"=>$owner->id,
-                ];
-            }
-            if ($insert){
-                $this->batchService->insert($insert);
-                LogService::log(__METHOD__,"SUCCESS-同步插入波次成功",json_encode($insert));
-                $batches = $this->batchService->get(["code"=>$waveCodes]);
-                foreach ($batches as $batch){
-                    app("OrderService")->update(["code"=>$map[$batch->code]],["batch_id"=>$batch->id]);
-                }
-                app("BatchService")->checkBatchOrderInfo($batches);
-
-            }
-        }
-        ValueStore::query()->where("name","wave_detail_last_sync_date")->update(["value"=>$details[count($details)-1]->edittime]);
-    }
-    private function headerExe($waves)
-    {
-        if (count($waves) < 1)return;
-        //获取本地数据对比差异
-        $codes = [];
-        foreach ($waves as $wave){
-            $codes[] = $wave->waveno;
-        }
-        $map = [];
-        $batches = $this->batchService->get(["code"=>$codes]);
-        if ($batches){
-            foreach ($batches as $index=>$batch)$map[$batch->code] = $index;
-        }
-        $update = [["id","wms_status","wms_type","updated_at"]];
-        $insert = [];
-
-        foreach ($waves as $wave){
-            if (isset($map[$wave->waveno])){
-                $bat = $batches[$map[$wave->waveno]];
-                $wms_status = $this->wms_status($wave);
-                if ($bat->wms_status != $wms_status || $bat->wms_type != $wave->descr){
-                    $update[] = [
-                        "id" => $bat->id,
-                        "wms_status" => $this->wms_status($wave),
-                        "wms_type"=>$wave->descr,
-                        "updated_at"=>$wave->edittime,
-                    ];
-                }
-                continue;
-            }
-            $owner = app("OwnerService")->codeGetOwner($wave->customerid);
-            $insert[] = [
-                "code" => $wave->waveno,
-                "wms_type"=>$wave->descr,
-                "status" => '未处理',
-                "wms_status" => $this->wms_status($wave),
-                "created_at"=>$wave->addtime,
-                "updated_at"=>$wave->edittime,
-                "owner_id"=>$owner->id,
-            ];
-        }
-
-        //存在则更新
-        if (count($update)>1){
-            $bool = app(BatchUpdateService::class)->batchUpdate("batches",$update);
-            if ($bool!==false)LogService::log(__METHOD__,"SUCCESS-同步更新波次成功",json_encode($update));
-            else LogService::log(__METHOD__,"ERROR-同步更新波次失败",json_encode($update));
-        }
-
-        //不存在则录入
-        if ($insert){
-            $this->batchService->insert($insert);
-            LogService::log(__METHOD__,"SUCCESS-同步插入波次成功",json_encode($insert));
-        }
-        ValueStore::query()->where("name","wave_last_sync_date")->update(["value"=>$waves[count($waves)-1]->edittime]);
-    }
     public function test()
     {
+        dd();
         $sql = "SELECT ORDERNO,WAVENO,SEQNO,EDITTIME FROM DOC_WAVE_DETAILS WHERE WAVENO = 'W210526000315'";
         $details = DB::connection("oracle")->select(DB::raw($sql));
         $this->detailExe($details);

+ 2 - 1
app/Services/RejectedService.php

@@ -118,7 +118,8 @@ class RejectedService
         },config('cache.expirations.oftenChange'));
     }
     public function getSql(array $param){
-        $sql = $this->conditionQuery($param)->selectRaw('rejected_bills.*')->whereNull('rejected_bills.deleted_at')
+        $sql = $this->conditionQuery($param)->selectRaw("rejected_bills.*,CASE rejected_bills.is_loaded WHEN 0 THEN '否' WHEN 1 THEN '是' WHEN 2 THEN '待推单' WHEN 3 THEN '上传异常' WHEN 4 THEN '待确认' ELSE '无需入库' END loaded")
+            ->whereNull('rejected_bills.deleted_at')
             ->leftJoin('owners','rejected_bills.id_owner','=','owners.id')
             ->selectRaw('owners.name owner_name')
             ->leftJoin('logistics','rejected_bills.id_logistic_return','=','logistics.id')

+ 28 - 0
database/migrations/2021_06_01_102357_add_authority_delivery_appointment_table_sign_id_data.php

@@ -0,0 +1,28 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class AddAuthorityDeliveryAppointmentTableSignIdData extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        \App\Authority::query()->firstOrCreate(["name" => "入库管理-入库预约-预约管理-签到"],["name" => "入库管理-入库预约-预约管理-签到","alias_name"=>"入库管理-入库预约-预约管理-签到"]);
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        \App\Authority::query()->where('name', '入库管理-入库预约-预约管理-签到')->delete();
+    }
+}

+ 2 - 1
resources/views/order/index/delivering.blade.php

@@ -140,7 +140,8 @@
                 </table>
                 <button type="button" @click="pageUp()" :readonly="page>1?false:true" class="btn btn-sm " :class="page>1?'btn-outline-info':''">上一页</button>
                 <button type="button" @click="pageDown()" :readonly="maxPage == 0 ? false : (page<maxPage?false:true)" class="btn btn-sm m-3" :class="maxPage == 0 ? 'btn-outline-info' : (page<maxPage?'btn-outline-info':'')">下一页</button>
-                <input  @keyup.enter="pageSkip($event)" class="form-control-sm ml-3 tooltipTarget" :placeholder="pagePlaceholder" title="去往指定页">
+                <input  @keyup.enter="pageSkip($event)" class="form-control-sm ml-3 tooltipTarget" placeholder="此处输入页数" title="去往指定页">
+                <span class="text-muted m-1">@{{ pagePlaceholder }}</span>
                 <span class="text-muted m-1" v-if="maxPage != 0">共 @{{ sum }} 条</span>
 
 

+ 9 - 0
resources/views/store/deliveryAppointment/list.blade.php

@@ -128,6 +128,7 @@
                                 <div class="col-2 text-secondary">@{{ car.driver_phone }}</div>
                                 <div class="col-3">
                                     @can("入库管理-入库预约-预约管理-卸货完成")<button class="btn btn-sm btn-outline-success" @click="unloading(i,j)" v-if="car.status==1">卸货完成</button>@endcan
+                                    @can("入库管理-入库预约-预约管理-签到")<button class="btn btn-sm btn-outline-success" @click="signIn(i,j)" v-if="car.status==0">签到</button>@endcan
                                     <div v-if="car.status==2">@{{ car.delivery_time }}</div>
                                 </div>
                             </div>
@@ -317,6 +318,14 @@
                         })
                     })
                 },
+                signIn(i,j){
+                    window.tempTip.confirm("确定为司机签到?",()=>{
+                        window.tempTip.postBasicRequest("{{url('store/deliveryAppointment/signIn')}}",{id:this.list[i].cars[j].id},()=>{
+                            this.list[i].cars[j].status = 1;
+                            return "成功签到";
+                        })
+                    })
+                },
                 cancel(id,index){
                     window.tempTip.confirm("确定要取消该次预约吗?此操作不可逆,请谨慎选择",()=>{
                         window.tempTip.postBasicRequest("{{url('store/deliveryAppointment/cancel')}}",{id:id},res=>{

+ 1 - 0
routes/web.php

@@ -458,6 +458,7 @@ Route::group(['prefix'=>'store'],function(){
         Route::post('delivery','DeliveryAppointmentController@checkAppointment');
         Route::post('cancel','DeliveryAppointmentController@cancel');
         Route::post('unloading','DeliveryAppointmentController@unloading');
+        Route::post('signIn','DeliveryAppointmentController@signIn');
         Route::any('export','DeliveryAppointmentController@export');
         Route::post('getExhibitionList','DeliveryAppointmentController@getExhibitionList');
         Route::post('getKey','DeliveryAppointmentController@getKey');