소스 검색

一些需求改进

Zhouzhendong 4 년 전
부모
커밋
8dbfb94784

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

@@ -212,7 +212,7 @@ SQL;
         $batch = null;
         if (!$code || !$batch = Batch::query()->select("id","split_size")->where("code",$code)->first())$this->error("无记录");
         $sql = <<<SQL
-SELECT a.ORDERNO,a.QTY,s.ALTERNATE_SKU1 FROM ACT_ALLOCATION_DETAILS a
+SELECT a.ORDERNO,a.QTY,s.ALTERNATE_SKU1,a.LOCATION FROM ACT_ALLOCATION_DETAILS a
     LEFT JOIN DOC_ORDER_HEADER o ON a.ORDERNO = o.ORDERNO
     LEFT JOIN DOC_WAVE_DETAILS w ON o.ORDERNO = w.ORDERNO
     LEFT JOIN BAS_SKU s ON a.SKU = s.SKU
@@ -233,7 +233,7 @@ SQL;
                 $slowPointer++;
                 $nodeSign = $order->orderno;
             }
-            $currentList[] = ["barcode"=>$order->alternate_sku1,"qty"=>$order->qty];
+            $currentList[] = ["barcode"=>$order->alternate_sku1,"qty"=>$order->qty,"location"=>$order->location];
         }
         if ($currentList)$result[] = $currentList;
         $this->success($result);

+ 2 - 2
resources/views/order/wave/_printBody.blade.php

@@ -1,7 +1,7 @@
-<div class="container" style="min-width: 400px;min-height: 600px" id="printContent" v-show="infoShow">
+<div class="container"  id="printContent" v-show="infoShow">
     <div class="card">
         <div class="card-body mt-4 text-center" v-for="(value, key) in splitGroupBySize">
-            <div v-for="index in value"><img class="mt-1" :id="key+'-'+index" alt="#" src="#"></div>
+            <div v-for="index in value" style="width: 100vw;height: 100vh"><img class="mt-1" style="width: 100vw" :id="key+'-'+index" alt="#" src="#"></div>
         </div>
     </div>
 </div>

+ 39 - 19
resources/views/order/wave/picking.blade.php

@@ -3,7 +3,7 @@
 @section('content')
     <div id="container" class="d-none container-fluid mt-2">
         <div class="card">
-            <div class="card-header">
+            <div class="card-header m-0">
                 <b>波次信息</b>
                 <button  class="btn text-white btn-sm btn-info pull-right" @click="isShow=!isShow" data-toggle="collapse" data-target="#body">@{{ isShow ? '隐藏' : '显示' }}</button>
             </div>
@@ -19,18 +19,19 @@
                 </div>
             </div>
             <div class="card mt-2">
-                <div class="card-header row m-0">
+                <div class="card-header row m-0 p-0">
                     <b class="col-4">分拣信息</b>
-                    <input id="barcode" v-model="barcode" @keydown.enter="searchBarcode()" class="form-control form-control-sm rounded-pill col-6 offset-2" placeholder="条码"></input>
+                    <input id="barcode" v-model="barcode" @keydown.13="searchBarcode()" class="form-control form-control-sm rounded-pill col-6 offset-2" placeholder="条码"></input>
                 </div>
                 <div class="card-body">
-                    <div class="row border-info p-0" style="height:60vh;overflow-y: auto">
-                        <div class="col-4 m-0" style="height: 50px;border: 1px solid #aaaaaa;z-index:100;position:relative;" v-for="index in waves.length"
-                             :style="[waveQtyMap['_'+(index-1)] && waveQtyMap['_'+(index-1)]>0 ? {boxShadow: 'rgba(19,193,137) 0 0 5px 5px inset'} : '']">
-                            <div class="text-center small font-weight-bold text-secondary">@{{ 'W-'+index }}</div>
+                    <div class="row border-info p-0" style="height:65vh;overflow-y: auto">
+                        <div class="col-4 m-0 p-1" style="height: 55px;border: 1px solid #aaaaaa;z-index:100;position:relative;" v-for="index in waves.length"
+                             :style="[waveQtyMap['_'+(index-1)] && waveQtyMap['_'+(index-1)].sum>0 ? {boxShadow: colorPool[colorIndex]+' 0 0 5px 5px inset'} : '']">
+                            <div class="text-center small font-weight-bold h-25 text-secondary">@{{ 'W-'+index }}</div>
                             <div style="display:flex;align-items:center;justify-content:center;" class="w-100 h-50 text-primary font-weight-bold">
-                                @{{ waveQtyMap['_'+(index-1)] ? waveQtyMap['_'+(index-1)] : '0' }}
+                                @{{ waveQtyMap['_'+(index-1)] ? waveQtyMap['_'+(index-1)].sum : '0' }}
                             </div>
+                            <div class="text-center small font-weight-bold h-25 text-muted mb-1">@{{ waveQtyMap['_'+(index-1)] ? waveQtyMap['_'+(index-1)].lot : '0' }}</div>
                         </div>
                     </div>
                 </div>
@@ -56,6 +57,10 @@
                 isShow:false,
                 waves:[],
                 waveQtyMap:{},
+                colorIndex:0,
+                colorPool:[
+                    "RGB(224,41,43)","rgba(19,193,137)","RGB(97,179,233)"
+                ]
             },
             mounted:function(){
                 this.pageInit();
@@ -91,18 +96,33 @@
                 },
                 searchBarcode(){
                     let waveQtyMap = {};
-                    this.waves.forEach((wave,i)=>{
-                        wave.forEach(order=>{
-                            if (order.barcode === this.barcode){
-                                if (waveQtyMap['_'+i]===undefined)waveQtyMap['_'+i] = 1;
-                                else waveQtyMap['_'+i]++;
-                            }
+                    try {
+                        this.waves.forEach((wave,i)=>{
+                            wave.forEach(order=>{
+                                if (order.barcode === this.barcode){
+                                    if (order.scanSign!==undefined){
+                                        throw new Error("unique");
+                                    }
+                                    order.scanSign = true;
+                                    if (waveQtyMap['_'+i]===undefined){
+                                        waveQtyMap['_'+i] = {"sum":order.qty,"lot":order.location};
+                                    } else waveQtyMap['_'+i].sum += order.qty;
+                                }
+                            })
                         })
-                    })
-                    this.waveQtyMap = waveQtyMap;
-                    let el = $("#barcode");
-                    el.focus();
-                    el.select();
+                    }catch (e){
+                        window.tempTip.setDuration(2000);
+                        window.tempTip.setIndex(999);
+                        window.tempTip.show("重复扫描");
+                        return;
+                    }finally {
+                        this.waveQtyMap = waveQtyMap;
+                        let el = $("#barcode");
+                        el.focus();
+                        el.select();
+                    }
+                    if (this.colorIndex===this.colorPool.length-1)this.colorIndex = 0;
+                    else this.colorIndex++;
                 },
             }
         });

+ 3 - 4
resources/views/order/wave/search.blade.php

@@ -309,17 +309,16 @@
                     }
                     window.tempTip.postBasicRequest("{{url('order/wave/printChild')}}",{codes:this.checkData},res=>{
                         this.splitGroupBySize = res;
-                        this.infoShow = true;
                         setTimeout(()=>{
                             for(let key  in this.splitGroupBySize){
                                 for (let i=1;i<=this.splitGroupBySize[key];i++){
-                                    window.setBarcode(key+'-'+i, "#"+key+"-"+i, 3, 70, true)
+                                    window.setBarcode(key+'-'+i, "#"+key+"-"+i, 2, 50, true)
                                 }
                             }
-                        },100);
+                        },10);
                         setTimeout(()=>{
                             exe();
-                        },200);
+                        },50);
                     })
                     let exe = ()=>{
                         let iframe=document.getElementById("print-iframe");