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

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

LD 5 лет назад
Родитель
Сommit
93c946c07e

+ 1 - 1
app/InventoryAccount.php

@@ -33,7 +33,7 @@ class InventoryAccount extends Model
 
     public function getSurplusAttribute()
     {
-        return $this['total'] ? $this['total']-$this['processed']-$this['ignored']:0;
+        return $this['total'] ? $this['total']-($this['processed']+$this['ignored']):0;
     }
     public function getProcessedAmount(){
         return $this->inventoryMissions()->whereIn('checked',['是','确认差异','已复核'])->where('inventory_account_id',$this['id'])->count();

+ 64 - 1
app/Services/RejectedBillService.php

@@ -5,6 +5,9 @@ namespace App\Services;
 use App\OracleDOCOrderHeader;
 use App\OrderIssue;
 use App\RejectedBill;
+use App\Services\common\BatchUpdateService;
+use App\Services\common\DataHandlerService;
+use Carbon\Carbon;
 
 Class RejectedBillService
 {
@@ -58,6 +61,66 @@ Class RejectedBillService
         }
     }
     public function syncLoadedStatusByAsnHerder($asnHerders){
-
+        if ($asnHerders->isEmpty())return null;
+        $updateCollect=collect();
+        foreach ($asnHerders as $asnHerder){
+            if (($asnHerder->asnType->codename_c=='退货入库'
+                    || $asnHerder->asnType->codename_c=='其他入库')
+                &&$asnHerder->asnStatus->codename_c=='完全收货'){
+                $updateCollect->add($asnHerder);
+            }
+        }
+        if ($updateCollect->isEmpty())return null;
+        $updated_at=Carbon::now()->toDateTimeString();
+        $updateParams = [[
+            'logistic_number_return','is_loaded','updated_at'
+        ]];
+        $logisticNumberReturn=[];
+        foreach ($updateCollect as $data){
+            if(!$data->asnreference3&&!$data->notes){continue;}
+            $result=[];
+            if ($data->asnreference3){
+                array_push($logisticNumberReturn,$data->asnreference3);
+            }else{
+                preg_match("/[a-zA-Z]{0,5}\d{6,20}/",$data->notes, $result);
+                array_push($logisticNumberReturn,$result[0]);
+                $result=[];
+            }
+        }
+        $rejectedBills=$this->getRejectedBills($logisticNumberReturn);
+        /** @var DataHandlerService $dataHandlerService */
+        $dataHandlerService =  app(DataHandlerService::class);
+        $rejectedBills_map =  $dataHandlerService->dataHeader(['logistic_number_return'],$rejectedBills);
+        foreach ($updateCollect as $data){
+            if(!$data->asnreference3&&!$data->notes){continue;}
+            $result=[];
+            if ($data->asnreference3){
+                $rejectedBill=$dataHandlerService->getKeyValue(['logistic_number_return'=>$data->asnreference3],$rejectedBills_map);
+                if ($rejectedBill) $updateParams[] = [
+                    'logistic_number_return'=>$data->asnreference3,
+                    'is_loaded' => 1,
+                    'updated_at' =>$updated_at,
+                ];
+            }else{
+                preg_match("/[a-zA-Z]{0,5}\d{6,20}/",$data->notes, $result);
+                $rejectedBill=$dataHandlerService->getKeyValue(['logistic_number_return'=>$result[0]],$rejectedBills_map);
+                if ($rejectedBill) $updateParams[] = [
+                    'logistic_number_return'=>$result[0],
+                    'is_loaded' => 1,
+                    'updated_at' =>$updated_at,
+                ];
+                unset($result);
+            }
+        }
+        if(count($updateParams) > 1){
+            $this->batchUpdate($updateParams);
+        }
+    }
+    public function batchUpdate($params){
+        return app(BatchUpdateService::class)->batchUpdate('rejected_bills',$params);
+    }
+    public function getRejectedBills(array $logisticNumberReturn){
+        if(count($logisticNumberReturn)<1){return null;}
+        return RejectedBill::query()->whereIn('logistic_number_return',$logisticNumberReturn)->get();
     }
 }

+ 8 - 1
app/Services/StoreService.php

@@ -6,6 +6,7 @@ use App\Services\common\BatchUpdateService;
 use App\Services\common\DataHandlerService;
 use App\Store;
 use Carbon\Carbon;
+use Doctrine\DBAL\Query\QueryBuilder;
 
 Class StoreService
 {
@@ -17,7 +18,7 @@ Class StoreService
     public function syncWmsAsnData($startDate)
     {
         $this->storeCreateByWms($startDate);
-        //$this->storeUpdateByWms($startDate);
+        $this->storeUpdateByWms($startDate);
     }
 
     public function storeCreateByWms($startDate)
@@ -60,6 +61,9 @@ Class StoreService
         /** @var StoreItemService $storeItemService */
         $storeItemService = app(StoreItemService::class);
         $storeItemService->storeItemCreateByWms($asnHerders);
+        /** @var RejectedBillService $rejectedBillService */
+        $rejectedBillService=app(RejectedBillService::class);
+        $rejectedBillService->syncLoadedStatusByAsnHerder($asnHerders);
         $asn_nos = data_get($asnHerders,'*.asnno');
         unset($asnHerders,$owners_code_map,$warehouses_code_map);
         return Store::query()->whereIn('asn_code',$asn_nos)->get();
@@ -148,6 +152,9 @@ Class StoreService
         /** @var StoreItemService $storeItemService */
         $storeItemService = app(StoreItemService::class);
         $storeItemService->storeItemUpdateByWms($asnHerders);
+        /** @var RejectedBillService $rejectedBillService */
+        $rejectedBillService=app(RejectedBillService::class);
+        $rejectedBillService->syncLoadedStatusByAsnHerder($asnHerders);
         unset($updateParams,$asnHerders);
     }
     public function insert($params){

+ 1 - 1
public/t.php

@@ -3,5 +3,5 @@
 
 $str = '货号:yw2020110877入正品仓';
 $result=[];
-preg_match("/([a-zA-Z]{0,5}\d{6,20})/", $str, $result);
+preg_match("/[a-zA-Z]{0,5}\d{6,20}/", $str, $result);
 var_dump($result);

+ 4 - 4
resources/views/inventory/stockInventory/mission.blade.php

@@ -40,7 +40,7 @@
                 <input id="all" type="checkbox" @click="checkAll($event)">全选
             </label>
             <table class="table table-sm text-nowrap table-bordered d-none" id="headerRoll"></table>
-            <table class="table table-sm  table-striped table-bordered m-0" id="headerParent">
+            <table class="table table-sm text-nowrap table-striped table-bordered m-0" id="headerParent">
                 <tr class="p-0" id="header"></tr>
                 <tr v-for="(inventory,i) in inventoryAccounts" @click="selectedColor(inventory.id)" :style="{'font-weight': inventory.id==selectedStyle?'bold':''}">
                     <td>
@@ -70,7 +70,7 @@
                     <td >@{{ inventory.owner_name }}</td>
                     <td style="width: 200px;word-wrap: break-word">
                         <small>@{{ inventory.type }}</small>
-                        <span v-if="inventory.remark" style="word-wrap: break-word;"><small>@{{ inventory.remark }}</small></span>
+                        <span v-if="inventory.remark" class="text-wrap"><small>@{{ inventory.remark }}</small></span>
                     </td>
                     <td >@{{ inventory.start_at }}</td>
                     <td class="text-muted">@{{ inventory.end_at }}</td>
@@ -148,7 +148,7 @@
                     {name:'cloneCheckAll',customization:true,type:'checkAll',column:'id',
                         dom:$('#cloneCheckAll').removeClass('d-none'), neglect: true},
                     {name:'operation',value: '操作', neglect: true},
-                    {name:'',value: '审核', neglect: true},
+                    {name:'check',value: '审核', neglect: true},
                     {name:'index',value: '序号', neglect: true},
                     {name:'status',value: '盘点状态', neglect: true},
                     {name:'id',value: '盘点单号', neglect: true},
@@ -166,7 +166,7 @@
                     {name: 'returned', value: '盘点比例', neglect: true},
                     {name: 'auditor', value: '审核人', neglect: true},
                     {name: 'creator', value: '创建人', neglect: true},
-                    {name:'remove',value: '', neglect: true},
+                    {name:'remove',value: '操作', neglect: true},
                 ];
                 setTimeout(function () {
                     let header = new Header({