Pārlūkot izejas kodu

Merge branch 'zzd' of ssh://was.baoshi56.com:10022/var/git/bswas

LD 4 gadi atpakaļ
vecāks
revīzija
a11fd2cdfd

+ 1 - 1
app/Http/Controllers/StorageController.php

@@ -174,7 +174,7 @@ class StorageController extends Controller
             if (!$box)$this->error("无可用料箱");
             $boxId = $box->id;
         }
-        if (!$boxId)$this->error("无可用料箱");
+        if (!$boxId || !app("MaterialBoxService")->checkUsableBox($boxId))$this->error("无可用料箱");
         //发起取箱任务
         DB::beginTransaction();
         $collection = new Collection();

+ 3 - 5
app/Http/Controllers/TestController.php

@@ -83,6 +83,7 @@ use App\Services\OrderTrackingService;
 use App\Services\OwnerLogisticFeeDetailService;
 use App\Services\OwnerLogisticFeeReportService;
 use App\Services\RejectedBillService;
+use App\Services\StorageService;
 use App\Services\StoreItemService;
 use App\Services\StoreService;
 use App\Services\SupplierService;
@@ -144,11 +145,8 @@ class TestController extends Controller
 
     public function test1()
     {
-        Unit::query()->get()->each(function ($unit){
-            dump($unit->name);
-            if ($unit->name == '日')return  false;
-            return true;
-        });
+        $box = app("MaterialBoxService")->getAnEmptyBox([],$modelId);
+        return view("test");
     }
 
     public function test2()

+ 14 - 14
app/Services/StorageService.php

@@ -125,7 +125,7 @@ class StorageService
             DB::beginTransaction();
             try{
                 //get flux
-                $asns = app("StorageService")->getFluxTask($task->doc_code,$task->bar_code,$task->amount);
+                $asns = $this->getFluxTask($task->doc_code,$task->bar_code,$task->amount);
                 if (!$asns)return false;
                 $ide = $task->materialBox->code;
                 DB::connection("oracle")->beginTransaction();
@@ -277,7 +277,7 @@ sql;
     }
 
     /**
-     * flux上架
+     * 将任务在flux上架
      *
      * @param $asn
      * @param $ide
@@ -290,19 +290,19 @@ sql;
         if (!$asn->taskid)return false;//ASN单无此入库信息,禁止上架
 
         $sql = <<<sql
-SELECT * FROM inv_lot_loc_id  WHERE lotnum = ? AND traceid = ? AND customerid= ?  and sku = ?
+SELECT * FROM inv_lot_loc_id  WHERE lotnum = ? AND traceid = ? AND customerid= ?  and sku = ? and qty = {$amount}
 sql;
-        $inv = DB::connection("oracle")->select(DB::raw($sql),[$asn->fmlotnum,$asn->plantoid,$asn->customerid,$asn->sku]);
-        if (count($inv)==0)return false;//余量与入库不符
+        $inv = DB::connection("oracle")->selectOne(DB::raw($sql),[$asn->fmlotnum,$asn->plantoid,$asn->customerid,$asn->sku]);
+        if (!$inv)return false;//余量与入库不符
         DB::connection("oracle")->transaction(function ()use($inv,$amount,$ide,$asn,&$who){
             $db = DB::connection("oracle");
-            $qty = $amount;
+            /*$qty = $amount;
             foreach ($inv as $in){
                 if ($qty==0)break;
                 if ($in->qty > $qty){
                     $db->update(DB::raw("update inv_lot_loc_id set qty = qty-?,qtymvout = qty-? where lotnum = ? and locationid = ? and traceid = ?"),[
                         $qty,$qty,$in->lotnum,$in->locationid,$in->traceid
-                    ]);//TODO 遗留问题:对应生成分配库位上架数量未被变更
+                    ]);
                     $in->qty = $in->qty-$qty;
                     $qty = 0;
                 }else{
@@ -311,19 +311,19 @@ sql;
                     ]);
                     $qty = $qty-$in->qty;
                 }
-            }
+            }*/
             $db->delete(DB::raw("DELETE FROM inv_lot_loc_id WHERE lotnum = ? AND traceid = ? AND traceid != '*'  AND qty = 0"),[
-                $inv[0]->lotnum,$inv[0]->traceid
+                $inv->lotnum,$inv->traceid
             ]);
             $invHistory = $db->selectOne(DB::raw("SELECT * FROM inv_lot_loc_id WHERE lotnum = ? AND locationid = ? AND customerid = ? AND sku = ? AND traceid = '*' FOR UPDATE"),[
-                $inv[0]->lotnum,$ide,$inv[0]->customerid,$inv[0]->sku
+                $inv->lotnum,$ide,$inv->customerid,$inv->sku
             ]);
             $who = 'WAS'.(Auth::user() ? '-'.Auth::user()["name"] : '');
             if ($invHistory)$db->update(DB::raw("UPDATE inv_lot_loc_id SET qty = qty+? WHERE lotnum = ? AND locationid = ? AND traceid = '*'"),[
-                (int)$amount,$inv[0]->lotnum,$ide
+                (int)$amount,$inv->lotnum,$ide
             ]);
             else $db->insert(DB::raw("INSERT INTO inv_lot_loc_id VALUES(?,?,'*',?,?,?,0,0,0,0,0,0,TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),?,TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),?,0,0,0,0,0,'*',0,null)"),[
-                $inv[0]->lotnum,$ide,$inv[0]->customerid,$inv[0]->sku,$amount,date("Y-m-d H:i:s"),$who,
+                $inv->lotnum,$ide,$inv->customerid,$inv->sku,$amount,date("Y-m-d H:i:s"),$who,
                 date("Y-m-d H:i:s"),$who
             ]);
             $sql = <<<sql
@@ -334,8 +334,8 @@ sql;
             list($trid,$max) = $this->getTrNumber();
             $db->insert(DB::raw($sql),[
                 $trid,$asn->customerid,$asn->sku,
-                $asn->asnno,$asn->asnlineno,$inv[0]->lotnum,$asn->fmlocation,$asn->plantoid,$asn->packid,$asn->uom,$amount,$amount,'99',date("Y-m-d H:i:s"),$who,
-                date("Y-m-d H:i:s"),$who,date("Y-m-d H:i:s"),$asn->customerid,$asn->sku,$ide,$who,$asn->packid,$asn->uom,$amount,$amount,$inv[0]->lotnum,
+                $asn->asnno,$asn->asnlineno,$inv->lotnum,$asn->fmlocation,$asn->plantoid,$asn->packid,$asn->uom,$amount,$amount,'99',date("Y-m-d H:i:s"),$who,
+                date("Y-m-d H:i:s"),$who,date("Y-m-d H:i:s"),$asn->customerid,$asn->sku,$ide,$who,$asn->packid,$asn->uom,$amount,$amount,$inv->lotnum,
                 '*','0','N','*',$asn->taskid_sequence,$asn->warehouseid,$asn->userdefine1,$asn->userdefine2,
                 $asn->userdefine3,$asn->userdefine4,$asn->userdefine5,'O'
             ]);

+ 9 - 9
resources/views/store/inStorage/cacheRackStorage.blade.php

@@ -50,27 +50,27 @@
                     <div class="mt-2 h-75">
                         <table class="table table-sm table-bordered border-dark w-100 h-100 text-center" style="cursor: pointer">
                             <tr>
-                                <th class="d-block" :class="[shelfOccupy['HAIB1-03-03'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-03-03'] ? 'box-shadow-dark' : '']"
+                                <th  :class="[shelfOccupy['HAIB1-03-03'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-03-03'] ? 'box-shadow-dark' : '']"
                                     @click="fillingBox('HAIB1-03-03')">HAIB1-03-03</th>
-                                <th class="d-block" :class="[shelfOccupy['HAIB1-02-03'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-02-03'] ? 'box-shadow-dark' : '']"
+                                <th  :class="[shelfOccupy['HAIB1-02-03'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-02-03'] ? 'box-shadow-dark' : '']"
                                     @click="fillingBox('HAIB1-02-03')">HAIB1-02-03</th>
-                                <th class="d-block" :class="[shelfOccupy['HAIB1-01-03'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-01-03'] ? 'box-shadow-dark' : '']"
+                                <th  :class="[shelfOccupy['HAIB1-01-03'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-01-03'] ? 'box-shadow-dark' : '']"
                                     @click="fillingBox('HAIB1-01-03')">HAIB1-01-03</th>
                             </tr>
                             <tr>
-                                <th class="d-block" :class="[shelfOccupy['HAIB1-03-02'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-03-02'] ? 'box-shadow-dark' : '']"
+                                <th  :class="[shelfOccupy['HAIB1-03-02'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-03-02'] ? 'box-shadow-dark' : '']"
                                     @click="fillingBox('HAIB1-03-02')">HAIB1-03-02</th>
-                                <th class="d-block" :class="[shelfOccupy['HAIB1-02-02'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-02-02'] ? 'box-shadow-dark' : '']"
+                                <th  :class="[shelfOccupy['HAIB1-02-02'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-02-02'] ? 'box-shadow-dark' : '']"
                                     @click="fillingBox('HAIB1-02-02')">HAIB1-02-02</th>
-                                <th class="d-block" :class="[shelfOccupy['HAIB1-01-02'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-01-02'] ? 'box-shadow-dark' : '']"
+                                <th  :class="[shelfOccupy['HAIB1-01-02'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-01-02'] ? 'box-shadow-dark' : '']"
                                     @click="fillingBox('HAIB1-01-02')">HAIB1-01-02</th>
                             </tr>
                             <tr>
-                                <th class="d-block" :class="[shelfOccupy['HAIB1-03-01'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-03-01'] ? 'box-shadow-dark' : '']"
+                                <th  :class="[shelfOccupy['HAIB1-03-01'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-03-01'] ? 'box-shadow-dark' : '']"
                                     @click="fillingBox('HAIB1-03-01')">HAIB1-03-01</th>
-                                <th class="d-block" :class="[shelfOccupy['HAIB1-02-01'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-02-01'] ? 'box-shadow-dark' : '']"
+                                <th  :class="[shelfOccupy['HAIB1-02-01'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-02-01'] ? 'box-shadow-dark' : '']"
                                     @click="fillingBox('HAIB1-02-01')">HAIB1-02-01</th>
-                                <th class="d-block" :class="[shelfOccupy['HAIB1-01-01'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-01-01'] ? 'box-shadow-dark' : '']"
+                                <th  :class="[shelfOccupy['HAIB1-01-01'] ? 'bg-danger' : 'bg-success',selectedBox['HAIB1-01-01'] ? 'box-shadow-dark' : '']"
                                     @click="fillingBox('HAIB1-01-01')">HAIB1-01-01</th>
                             </tr>
                         </table>

+ 11 - 6
resources/views/store/inStorage/halfChestStorage.blade.php

@@ -12,14 +12,14 @@
                     </div>
                     <div class="form-group row">
                         <label for="asn" class="col-sm-2 col-3 text-right">ASN号:</label>
-                        <input type="text" class="form-control col-8" :class="errors.asn ? 'is-invalid' : ''" id="asn" v-model="info.asn" @blur="checkAsn()" placeholder="只需填写后几位,自动补充">
+                        <input type="text" class="form-control col-8" @change="downSign()" :class="errors.asn ? 'is-invalid' : ''" id="asn" v-model="info.asn" @blur="checkAsn()" placeholder="只需填写后几位,自动补充">
                         <span class="invalid-feedback offset-2" role="alert" v-if="errors.asn">
                             <strong>@{{ errors.asn[0] }}</strong>
                         </span>
                     </div>
                     <div class="form-group row">
                         <label for="station" class="col-sm-2 col-3 text-right">库位:</label>
-                        <input type="text" class="form-control col-8" :class="errors.station ? 'is-invalid' : ''" id="station" v-model="info.station"
+                        <input type="text" class="form-control col-8" :class="errors.station ? 'is-invalid' : ''" id="station" v-model="info.station" @blur="checkMaximum()"
                                placeholder="扫描货架条码">
                         <span class="invalid-feedback offset-2" role="alert" v-if="errors.station">
                             <strong>@{{ errors.station[0] }}</strong>
@@ -27,14 +27,14 @@
                     </div>
                     <div class="form-group row">
                         <label for="barCode" class="col-sm-2 col-3 text-right">条码:</label>
-                        <input type="text" class="form-control col-8" :class="errors.barCode ? 'is-invalid' : ''" id="barCode" v-model="info.barCode" placeholder="扫描商品条码">
+                        <input type="text" class="form-control col-8" @change="downSign()" :class="errors.barCode ? 'is-invalid' : ''" id="barCode" v-model="info.barCode" @blur="checkMaximum()" placeholder="扫描商品条码">
                         <span class="invalid-feedback offset-2" role="alert" v-if="errors.barCode">
                             <strong>@{{ errors.barCode[0] }}</strong>
                         </span>
                     </div>
                     <div class="form-group row">
                         <label for="amount" class="col-sm-2 col-3 text-right">数量:</label>
-                        <input type="number" class="form-control col-8" :class="errors.amount ? 'is-invalid' : ''" id="amount" v-model="info.amount"
+                        <input type="number" class="form-control col-8" :class="errors.amount ? 'is-invalid' : ''" id="amount" @blur="checkMaximum()" v-model="info.amount"
                                :placeholder="info.maximum!==undefined ? '最大可上:'+info.maximum : ''" :max="info.maximum" step="1">
                         <span class="invalid-feedback offset-2" role="alert" v-if="errors.amount">
                             <strong>@{{ errors.amount[0] }}</strong>
@@ -87,6 +87,7 @@
                 },
                 errors:{},
                 ov:{},//溢出减量数值
+                checkSign:false;
             },
             mounted(){
                 this.codeFocus();
@@ -157,7 +158,10 @@
                     let len = this.info.asn.length;
                     if (len<13)this.info.asn = this.before.asn.substr(0,13-len)+this.info.asn;
                     if (!this.info.ide)document.getElementById("station").focus();
-                    this.checkMaximum();
+                    if (!this.checkSign)this.checkMaximum();
+                },
+                downSign(){
+                    this.checkSign = false;
                 },
                 checkMaximum(){
                     if (!this.info.asn || !this.info.barCode)return;
@@ -166,9 +170,10 @@
                         this.info.material_box_id = res.material_box_id;
                         this.info.material_box_model_id = res.material_box_model_id;
                         this.info.commodity_id = res.commodity_id;
+                        this.checkSign = true;
                     });
                 },
             },
         });
     </script>
-@stop
+@stop

+ 1 - 0
routes/web.php

@@ -451,6 +451,7 @@ Route::group(['prefix'=>'store'],function(){
         Route::post('setMaximum','StorageController@setMaximum');
         Route::post('checkMaximum','StorageController@checkMaximum');
         Route::post('overflowRevision','StorageController@overflowRevision');
+        Route::post('acquireBox','StorageController@acquireBox');
     });
     Route::group(['prefix'=>'fast'],function() {
         Route::resource('storeItem','StoreItemController');