瀏覽代碼

Merge branch 'LD'

LD 5 年之前
父節點
當前提交
e85997426d

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

@@ -7,7 +7,7 @@ use App\Owner;
 use App\Services\common\BatchUpdateService;
 use App\Services\StoreService;
 use App\Store;
-use App\StoreItems;
+use App\StoreItem;
 use App\Warehouse;
 use App\WMSReflectReceive;
 use Carbon\Carbon;
@@ -140,7 +140,7 @@ class StoreController extends Controller
                         }
                         return $depository;
                     })();
-                    $storeItem=new StoreItems([
+                    $storeItem=new StoreItem([
                         'store_id'=>$store->id,
                         'asn_line_code'=>$sku->ASNLINENO,
                         'name'=>$sku->SKUDESCRC,

+ 3 - 3
app/Http/Controllers/StoreItemsController.php → app/Http/Controllers/StoreItemController.php

@@ -2,13 +2,13 @@
 
 namespace App\Http\Controllers;
 
-use App\StoreItems;
+use App\StoreItem;
 use Illuminate\Contracts\Foundation\Application;
 use Illuminate\Contracts\View\Factory;
 use Illuminate\Http\Response;
 use Illuminate\View\View;
 
-class StoreItemsController extends Controller
+class StoreItemController extends Controller
 {
     /**
      * Display a listing of the resource.
@@ -17,7 +17,7 @@ class StoreItemsController extends Controller
      */
     public function index()
     {
-        $storeItems=StoreItems::query()->with('store')
+        $storeItems=StoreItem::query()->with('store')
             ->whereHas('store',function($query){
                 $query->where('is_fast_stored','快速入库');
             })

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

@@ -92,7 +92,7 @@ use App\StationTask;
 use App\Store;
 use App\StationTaskBatch;
 use App\StoreCheckingReceiveItem;
-use App\StoreItems;
+use App\StoreItem;
 use App\Unit;
 use App\User;
 use App\ValueStore;
@@ -810,8 +810,20 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
 
     public function output2()
     {
-        dump(Cache::get('aa'));
-        Cache::put('aa', '2223', 5);
+        StationTaskBatch::query()->insert([[
+            'batch_id' => 41414351,
+            'station_id' => 4131251,
+            'station_task_batch_type_id' => 1231231251,
+            'status' => '待处理',
+            'created_at' => now(),
+            'updated_at' => now(),
+        ]]);
+//        (new StationTaskBatch([
+//            'batch_id' => 41414324,
+//            'station_id' => 4131224,
+//            'station_task_batch_type_id' => 123123124,
+//            'status' => '待处理'
+//        ]))->save();
     }
 
     public function usage()
@@ -1114,11 +1126,11 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
     public function testUpdateSkuNameBarcodeToCommodity_id()
     {
         $amount = 1000;
-        $storeItem = StoreItems::query()->orderByDesc('id')->first();
+        $storeItem = StoreItem::query()->orderByDesc('id')->first();
         $sum = $storeItem->id;
         $number = ceil($sum / $amount);
         for ($i = 0; $i < $number; $i++) {
-            $storeItems = StoreItems::query()->with('store')
+            $storeItems = StoreItem::query()->with('store')
                 ->where('id', '>=', $i * $amount)
                 ->where('id', '<', ($i * $amount + $amount))
                 ->get();

+ 0 - 6
app/Services/BatchService.php

@@ -45,12 +45,6 @@ class BatchService
         return $query->get();
     }
 
-    public function insert(array $insert): bool
-    {
-        $result = Batch::query()->insert($insert);
-//        if($result)$this->assignTasks($insert);
-        return $result;
-    }
 
     public function updateWhereIn($key,$values,$updateKeyValues){
         Batch::query()->whereIn($key,$values)->update($updateKeyValues);

+ 0 - 3
app/Services/CommodityBarcodeService.php

@@ -20,9 +20,6 @@ class CommodityBarcodeService
         })->select('code','commodity_id')->whereIn('code',$codes)->get();
     }
 
-    public function insert(array $params){
-        return CommodityBarcode::query()->insert($params);
-    }
 
 
     public function first(array $params){

+ 0 - 5
app/Services/CommodityService.php

@@ -71,11 +71,6 @@ class CommodityService
         return $query->get();
     }
 
-    public function insert(array $params)
-    {
-        return Commodity::query()->insert($params);
-    }
-
 
     public function getOwnerCommodities(array $params)
     {

+ 0 - 3
app/Services/LogisticService.php

@@ -85,9 +85,6 @@ class LogisticService
         }
     }
 
-    public function insert(array $params){
-        return Logistic::query()->insert($params);
-    }
 
     public function find($id)
     {

+ 0 - 3
app/Services/OrderPackageCommoditiesService.php

@@ -21,9 +21,6 @@ class OrderPackageCommoditiesService
 {
     use ServiceAppAop;
     protected $modelClass=OrderPackageCommodities::class;
-    public function insert(array $params){
-        return OrderPackageCommodities::query()->insert($params);
-    }
 
     public function batchUpdate($params){
         return app(BatchUpdateService::class)->batchUpdate('order_package_commodities',$params);

+ 0 - 4
app/Services/OrderPackageService.php

@@ -23,10 +23,6 @@ class OrderPackageService
         return app(BatchUpdateService::class)->batchUpdate('order_packages',$params);
     }
 
-    public function insert(array $params)
-    {
-        return OrderPackage::query()->insert($params);
-    }
 
     /**
      * @param string $logistic_number

+ 0 - 13
app/Services/OrderService.php

@@ -55,19 +55,6 @@ class OrderService
         return app(BatchUpdateService::class)->batchUpdate('orders',$params);
     }
 
-    public function insert(array $params){
-        if(!$params)return true;
-        if(count($params)==0) return true;
-        try {
-            $bool= Order::query()->insert($params);
-            if($bool)app('LogService')->log(__METHOD__, __FUNCTION__, '批量创建 Order' . json_encode($params));
-            else app('LogService')->log(__METHOD__,'ERROR'. __FUNCTION__, '批量创建 Order ERROR' . json_encode($params));
-            return $bool;
-        } catch (\Exception $e) {
-            app('LogService')->log(__METHOD__, 'ERROR'.__FUNCTION__, '批量创建 Order ERROR' . json_encode($params).json_encode($e->getMessage()).json_encode($e->getTraceAsString()));
-            return false;
-        }
-    }
 
     private function preciseQuery(array $params,$sql){
         $orderdate_start=$params["orderdate_start"] ?? null;

+ 1 - 3
app/Services/RejectedBillItemService.php

@@ -10,8 +10,6 @@ class RejectedBillItemService
 {
     use ServiceAppAop;
     protected $modelClass=RejectedBillItem::class;
-    public function insert(array $params){
-        return RejectedBillItem::query()->insert($params);
-    }
+
 
 }

+ 0 - 5
app/Services/ShopService.php

@@ -32,11 +32,6 @@ class ShopService
         return $shop->firstOrCreate($param);
     }
 
-    public function insert(array $params)
-    {
-        return Shop::query()->insert($params);
-    }
-
     public function batchUpdate(array $params)
     {
         return app(BatchUpdateService::class)->batchUpdate('shops',$params);

+ 3 - 6
app/Services/StationTaskBatchService.php

@@ -88,8 +88,8 @@ class StationTaskBatchService
 
     function getAndAttachIds($stationTaskBatches): Collection
     {
-        $md5=is_array($stationTaskBatches)
-            ?$md5=md5(json_encode($stationTaskBatches)):null;
+        $md5=md5(is_array($stationTaskBatches)
+            ?$md5=json_encode($stationTaskBatches):$stationTaskBatches->toJson());
 
         return Cache::remember(
             'StationTaskBatch_'.$md5??md5(json_encode($stationTaskBatches->toArray()))
@@ -101,10 +101,7 @@ class StationTaskBatchService
                 ->get();
         });
     }
-    function insert(array $stationMissionBatches): bool
-    {
-        return StationTaskBatch::query()->insert($stationMissionBatches);
-    }
+
 
     function markManyExcepted(Collection $stationTaskBatches_failed)
     {

+ 1 - 7
app/Services/StationTaskChildService.php

@@ -26,11 +26,5 @@ class StationTaskChildService
             return $query->get();
         });
     }
-    public function insert(array $stationMissionBatches): bool
-    {
-        $inserted = StationTaskChild::query()->insert($stationMissionBatches);
-        LogService::log(__METHOD__,__FUNCTION__,json_encode($stationMissionBatches).
-            '||'.json_encode(array_slice(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS),0,3)));
-        return $inserted;
-    }
+
 }

+ 1 - 10
app/Services/StationTaskCommodityService.php

@@ -114,18 +114,9 @@ class StationTaskCommodityService
                 ])
             );
         }
-        return $this->insert($stationTaskCommodities_toCreate->toArray());
+        return $this->insert($stationTaskCommodities_toCreate->toArray(),true);
     }
 
-    public function insert(array $taskCommodities): ?Collection
-    {
-        StationTaskCommodity::query()->insert($taskCommodities);
-        return StationTaskCommodity::query()
-            ->whereIn('status', data_get($taskCommodities, '*.status'))
-            ->whereIn('station_task_batch_id', data_get($taskCommodities, '*.station_task_batch_id'))
-            ->whereIn('commodity_id', data_get($taskCommodities, '*.commodity_id'))
-            ->get();
-    }
     function markProcessing($stationTaskCommodities)
     {
         if (get_class($stationTaskCommodities)==StationTaskCommodity::class){

+ 1 - 9
app/Services/StationTaskMaterialBoxService.php

@@ -80,7 +80,7 @@ class StationTaskMaterialBoxService
                 'status'=>'待处理'
             ]);
         }
-        return $this->insert($stationMaterialBoxes_toCreate->toArray());
+        return $this->insert($stationMaterialBoxes_toCreate->toArray(),true);
     }
 
     function get(array $kvPairs){
@@ -95,14 +95,6 @@ class StationTaskMaterialBoxService
         });
     }
 
-    public function insert(array $stationTaskMaterialBoxes): Collection
-    {
-        $inserted=collect();
-        foreach ($stationTaskMaterialBoxes as $stationTaskMaterialBox){
-            $inserted->push(StationTaskMaterialBox::query()->create($stationTaskMaterialBox));
-        }
-        return $inserted;
-    }
 
     function markHasPut(StationTaskMaterialBox $stationTaskMaterialBox){
         try{

+ 1 - 3
app/Services/StoreCheckingReceiveItemService.php

@@ -11,9 +11,7 @@ class StoreCheckingReceiveItemService
 {
     use ServiceAppAop;
     protected $modelClass=StoreCheckingReceiveItem::class;
-    public function insert(array $params){
-        return StoreCheckingReceiveItem::query()->insert($params);
-    }
+
 
     public function updateFind(StoreCheckingReceiveItem $item, array $values){
         $item->update($values);

+ 3 - 7
app/Services/StoreItemService.php

@@ -7,7 +7,7 @@ use App\Owner;
 use App\Services\common\BatchUpdateService;
 use App\Services\common\DataHandlerService;
 use App\Store;
-use App\StoreItems;
+use App\StoreItem;
 use App\Traits\ServiceAppAop;
 
 
@@ -15,10 +15,6 @@ class StoreItemService
 {
     use ServiceAppAop;
     protected $modelClass=StoreItem::class;
-    public function insert(array $params)
-    {
-        return StoreItems::query()->insert($params);
-    }
 
     public function storeItemCreateByWms($asnHerders)
     {
@@ -240,7 +236,7 @@ class StoreItemService
         if (!$asnDetails) {
             return null;
         }
-        return StoreItems::query()->with('store')->whereIn('store_id', function ($query) use ($asnDetails) {
+        return StoreItem::query()->with('store')->whereIn('store_id', function ($query) use ($asnDetails) {
             $query->from('stores')->select('id')->whereIn('asn_code', array_unique(data_get($asnDetails, '*.asnno')));
         })->get();
     }
@@ -252,7 +248,7 @@ class StoreItemService
             array_push($storeItemIds, $delete_storeItem->id);
         }
         try {
-            StoreItems::query()->whereIn('id', $storeItemIds)->delete();
+            StoreItem::query()->whereIn('id', $storeItemIds)->delete();
             LogService::log(__METHOD__, __FUNCTION__, '删除多余StoreItems ' . count($delete_storeItems) . json_encode($delete_storeItems), null);
         } catch (\Exception $e) {
             LogService::log(__METHOD__, __FUNCTION__, '删除多余StoreItems error' . count($delete_storeItems) . json_encode($delete_storeItems) . $e->getMessage() . $e->getTraceAsString(), null);

+ 1 - 1
app/Store.php

@@ -31,7 +31,7 @@ class Store extends Model
         return $this->belongsTo('App\Warehouse','warehouse_id','id');
     }
     public function storeItems(){
-        return $this->hasMany('App\StoreItems','store_id','id');
+        return $this->hasMany('App\StoreItem','store_id','id');
 }
 
 //    public function getOwnerNameAttribute()

+ 1 - 1
app/StoreItems.php → app/StoreItem.php

@@ -7,7 +7,7 @@ use App\Traits\ModelTimeFormat;
 
 use App\Traits\ModelLogChanging;
 
-class StoreItems extends Model
+class StoreItem extends Model
 {
     use ModelLogChanging;
 

+ 35 - 0
app/Traits/ServiceAppAop.php

@@ -4,6 +4,7 @@
 namespace App\Traits;
 
 
+use App\Services\LogService;
 use Illuminate\Contracts\Foundation\Application;
 use Illuminate\Support\Collection;
 use Illuminate\Support\Facades\Cache;
@@ -73,4 +74,38 @@ trait ServiceAppAop
         $this->clearCache($kvPairs);
         return $this->create($kvPairs);
     }
+
+    /**
+     * $returnInserted 设为true返回插入的内容,是通过插入的字段返查的,所以可能会不准(看字段是否能匹配)
+     * @param array $targetsArrays
+     * @param bool $returnInserted 设为true返回插入的内容
+     * @param bool $createdAtOn
+     * @param bool $updatedAtOn
+     * @return Collection|null
+     */
+    function insert(array $targetsArrays, $returnInserted=false, $createdAtOn=true,$updatedAtOn=true): ?Collection
+    {
+        foreach ($targetsArrays as &$target){
+            if($createdAtOn)$target['created_at']=now();
+            if($updatedAtOn)$target['updated_at']=now();
+        }
+        ($this->modelClass)::query()->insert($targetsArrays);
+        LogService::log(__METHOD__, __FUNCTION__, json_encode($targetsArrays) .
+            '||' . json_encode(array_slice(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), 0, 4)));
+        if(!$returnInserted)return null;
+
+        return ($查回插入内容,不保证准=function ()use($targetsArrays,$createdAtOn,$updatedAtOn){
+            $query=($this->modelClass)::query();
+            foreach ($targetsArrays as &$target){
+                if($createdAtOn)unset($target['created_at']);
+                if($updatedAtOn)unset($target['updated_at']);
+                $query->orWhere(function($subQuery)use($target){
+                    foreach ($target as $key=>$val){
+                        $subQuery->where($key, $val);
+                    }
+                });
+            }
+            return $query->get();
+        })();
+    }
 }

+ 44 - 17
app/Traits/TestMockSubServices.php

@@ -1,7 +1,28 @@
 <?php
 namespace App\Traits;
 
+use App\MaterialBox;
+use App\Services\MaterialBoxService;
+use App\Services\StationTaskCommodityService;
+
 trait TestMockSubServices{
+    /**
+     * 例子:
+     *  $this->service=$this->subMock([
+     *   'class'=>StationTaskCommodityService::class,
+     *   'subServices'=>[
+     *  [
+     *   'serviceName'=>'materialBoxService',
+     *   'class'=>MaterialBoxService::class,
+     *   'methods'=>[
+     *   'firstOrCreate'=>new MaterialBox(['id'=>1]),
+     *  ],
+     *  ],
+     *  ]
+     * ]);
+     * @param array $serviceDefinition
+     * @return \PHPUnit\Framework\MockObject\MockObject
+     */
     function subMock(array $serviceDefinition){
         $mockingService=$this->createPartialMock(
             $serviceDefinition['class'],
@@ -12,27 +33,33 @@ trait TestMockSubServices{
             foreach ($serviceDefinition['methods'] as $mName=>$mVal){
                 $mockingService->method($mName)->willReturn($mVal);
             }
-
         if(isset($serviceDefinition['subServices']))
-            foreach ($serviceDefinition['subServices'] as $subService){
-                $mockingService->instant(
-                    $subService['serviceName'],
-                    ($subServiceMock=function()use($subService){
-                        $subServiceMock=$this->createPartialMock(
-                            $subService['class'],
-                            array_keys($subService['methods'])
-                        );
-                        if(isset($subService['methods']))
-                            foreach ($subService['methods'] as $methodName=>$methodVal){
-                                $subServiceMock->method($methodName)->willReturn($methodVal);
-                            }
-                        return $subServiceMock;
-                    })()
-                );
-            }
+            $this->registerSubServices($mockingService,$serviceDefinition['subServices']);
         return $mockingService;
     }
 
+    private function registerSubServices($rootService, $subServices){
+        foreach ($subServices as $subService){
+            $rootService->instant(
+                $subService['serviceName'],
+                ($subServiceMock=function()use($subService){
+                    $subServiceMock=$this->createPartialMock(
+                        $subService['class'],
+                        array_keys($subService['methods'])
+                    );
+                    if(isset($subService['methods']))
+                        foreach ($subService['methods'] as $methodName=>$methodVal){
+                            $subServiceMock->method($methodName)->willReturn($methodVal);
+                        }
+                    if(isset($subService['subServices'])){
+                        $this->registerSubServices($subServiceMock,$subService['subServices']);
+                    }
+                    return $subServiceMock;
+                })()
+            );
+        }
+    }
+
     function getTargetIdCirculately($targetArr, $additionMark='', $idName='id'){
         $amount = count($targetArr);
 

+ 55 - 5
tests/Services/BatchService/AssignTasksTest.php

@@ -1,11 +1,19 @@
 <?php
 
 namespace Tests\Services\BatchService;
+use App\MaterialBox;
 use App\Order;
 use App\OrderCommodity;
 use App\Services\BatchService;
+use App\Services\ForeignHaiRoboticsService;
+use App\Services\MaterialBoxService;
+use App\Services\StationTaskBatchService;
+use App\Services\StationTaskCommodityService;
 use App\Station;
 use App\StationRuleBatch;
+use App\StationTask;
+use App\StationTaskBatch;
+use App\StationTaskCommodity;
 use Tests\TestCase;
 use App\Batch;
 use App\Traits\TestMockSubServices;
@@ -22,7 +30,27 @@ class AssignTasksTest extends TestCase
     function setUp(): void
     {
         parent::setUp();
-        $this->service = app('BatchService');
+        $this->service=$this->subMock([
+            'class'=>BatchService::class,
+            'subServices'=>[
+                [
+                    'serviceName'=>'stationTaskBatchService',
+                    'class'=>StationTaskBatchService::class,
+                    'methods'=>[
+                        'firstOrCreate'=>new MaterialBox(['id'=>1]),
+                    ],
+                    'subServices'=>[
+                        [
+                            'serviceName'=>'foreignHaiRoboticsService',
+                            'class'=>ForeignHaiRoboticsService::class,
+                            'methods'=>[
+                                'fetchGroup'=>true,
+                            ],
+                        ],
+                    ]
+                ],
+            ]
+        ]);
         $this->data['batches']
             = factory(Batch::class, $this->batchAmount)
             ->create();
@@ -42,22 +70,44 @@ class AssignTasksTest extends TestCase
             ->createMany($this->makeArray($this->batchAmount,[
                 'owner_id' => function(){return $this->getTargetIdCirculately($this->data['batches'],'','owner_id');}
             ]));
+
     }
 
     public function testReturned()
     {
         $this->service->assignTasks($this->data['batches']);
-        $this->data['batches']['0']->loadMissing('stationBatchTask.stationTask');
-        $a=($this->data['batches']['0']['stationBatchTask']);
-        dd($a);
-        $this->assertEquals(data_get($this->data['batches'],'*.id'),$this->data['batches']);
+        ($波次任务指向了波次=function(){
+            $this->assertEquals(
+                data_get($this->data['batches'],'*.id'),
+                data_get($this->data['batches'],'*.stationBatchTask.batch_id')
+            );
+        })();
     }
 
     function tearDown(): void
     {
+
+        $stationBatchTasks=data_get($this->data['batches'],'*.stationBatchTask');
+        $a3=data_get($this->data['batches'],'*.stationBatchTask.*.stationTask');
+        $a4=data_get($this->data['batches'],'*.stationBatchTask.stationTask');
+        foreach ($stationBatchTasks as $stationBatchTask){
+            $stationBatchTask->loadMissing('stationTask.stationTaskCommodities');
+            $stationBatchTask->loadMissing('stationTask.stationTaskMaterialBoxes.materialBox');
+        }
+        $a13=data_get($this->data['batches'],'*.stationBatchTask.*.stationTask');
+        $a14=data_get($this->data['batches'],'*.stationBatchTask.stationTask');
         Batch::query()
             ->whereIn('id',data_get($this->data['batches'],'*.id')??[])
             ->delete();
+//        StationTaskBatch::query()
+//            ->whereIn('id',data_get($this->data['batches'],'*.stationBatchTask.id')??[])
+//            ->delete();
+        StationTaskCommodity::query()
+            ->whereIn('id',data_get($this->data['batches'],'*.stationBatchTask.*.stationTask.*.stationTaskCommodities.id')??[])
+            ->delete();
+        StationTask::query()
+            ->whereIn('id',data_get($this->data['batches'],'*.stationBatchTask.stationTask.id')??[])
+            ->delete();
         Order::query()
             ->whereIn('id',data_get($this->data['orders'],'*.id')??[])
             ->delete();