Parcourir la source

Merge branch 'Haozi' of ssh://47.103.131.176:10022/var/git/bswas into zengjun

 Conflicts:
	app/Console/Commands/WasSyncWmsAsnInformation.php
	app/Console/Kernel.php
ajun il y a 5 ans
Parent
commit
fa38eeabfd

+ 1 - 1
app/Console/Commands/WasSyncWmsAsnInformation.php

@@ -54,7 +54,7 @@ class WasSyncWmsAsnInformation extends Command
     {
         $this->init();
         if($this->is_enabled==false)return;
-        sleep(rand(10,25));
+        sleep(rand(1,2));
         $start_time =  Cache::remember($this->task_start_at,null,function (){
             return ValueStore::query()->firstOrCreate(['name'=>$this->task_start_at])->first()->value;
         });

+ 4 - 1
app/Console/Kernel.php

@@ -13,6 +13,7 @@ use App\Console\Commands\SyncUserVisitMenuLogsCacheTask;
 use App\Console\Commands\SyncWmsCommoditiesInformation;
 use App\Console\Commands\SyncWMSOrderTask;
 use App\Console\Commands\TestTemp;
+use App\Console\Commands\WasSyncWmsAsnInformation;
 use App\Console\Commands\WASSyncWMSOrderInformation;
 use Illuminate\Console\Scheduling\Schedule;
 use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
@@ -37,7 +38,8 @@ class Kernel extends ConsoleKernel
         SyncBatchTask::class,
         SyncWMSOrderTask::class,
         SyncWmsCommoditiesInformation::class,
-        ClearCancelledOrderTask::class
+        ClearCancelledOrderTask::class,
+        WasSyncWmsAsnInformation::class,
     ];
 
     /**
@@ -60,6 +62,7 @@ class Kernel extends ConsoleKernel
         $schedule->command('sync:order')->everyMinute();
         $schedule->command('SyncWmsCommoditiesInformation')->everyMinute();
         $schedule->command('clear:cancelledOrder')->everyTenMinutes();
+        //$schedule->command('WasSyncWmsAsnInformation')->everyMinute();
     }
 
     /**

+ 2 - 3
app/Http/Controllers/OwnerController.php

@@ -164,9 +164,8 @@ class OwnerController extends Controller
             return ['success' => 'false', 'fail_info' => "没有权限"];
         }
         $id = $request->input('id');
-        $owner = Owner::query()->whereNotNull('deleted_at')->where('id', $id)->update([
-            "deleted_at" => null,
-        ]);
+        $owner = Owner::query()->whereNotNull('deleted_at')->where('id', $id)->first();
+        $owner->update(["deleted_at" => null]);
         app('LogService')->log(__METHOD__, __FUNCTION__, json_encode($request->toArray()), Auth::user()['id']);
         return ['success' => 'true', 'owner' => $owner];
     }

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

@@ -25,6 +25,7 @@ use App\Log;
 use App\Logistic;
 use App\Menu;
 use App\OracleActAllocationDetails;
+use App\OracleBasCustomer;
 use App\OracleBasSKU;
 use App\OracleDOCASNHeader;
 use App\OracleDOCOrderHeader;
@@ -1255,14 +1256,6 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
 //        return view('test');
     }
 
-    public function testSyncCommodity()
-    {
-        dump('start' . (string)Carbon::now());
-        $syncCommodityTask=new SyncWmsCommoditiesInformation();
-        $syncCommodityTask->handle();
-        dump('end' . (string)Carbon::now());
-    }
-
     public function editOrderSyncAt()
     {
         ValueStore::query()->where('name','order_last_created_sync_at')->update(['value'=>'2020-12-22 09:00:00']);

+ 8 - 0
app/Observers/OwnerObserver.php

@@ -17,4 +17,12 @@ class OwnerObserver
         if(env('APP_ENV')=='production')
             app("OwnerService")->syncPush($owner);
     }
+
+    public function updated(Owner $owner)
+    {
+        if(env('APP_ENV')=='production'){
+            app("OwnerService")->syncUpdate($owner);
+        }
+    }
+
 }

+ 6 - 6
app/Services/CommodityService.php

@@ -401,7 +401,7 @@ Class CommodityService
         $create_key = config('sync.commodity_sync.cache_prefix.create');
         /** @var OracleBasSkuService $oracleBasSkuService */
         $oracleBasSkuService = app(OracleBasSkuService::class);
-        $last_time = $this->getAsnLastSyncAt($created_at, 'create');
+        $last_time = $this->getCommodityLastSyncAt($created_at, 'create');
         $basSkus = $oracleBasSkuService->getWmsCreatedCommodities($last_time);
         $last_time = $basSkus->first()['addtime'];
         $last_records = $basSkus->where('addtime', $last_time);
@@ -409,7 +409,7 @@ Class CommodityService
         $this->syncCreateCommodity($basSkus);
         $this->deleteCacheKey($create_set, $create_keys);
         $this->setLastRecordsByRedis($create_key, $create_set, $create_keys, $last_records);
-        $this->setAsnLastSyncAt($created_at, $last_time);
+        $this->setCommodityLastSyncAt($created_at, $last_time);
     }
 
     public function syncCommodityUpdated()
@@ -420,7 +420,7 @@ Class CommodityService
         $update_key = config('sync.commodity_sync.cache_prefix.update');
         /** @var OracleBasSkuService $oracleBasSkuService */
         $oracleBasSkuService = app(OracleBasSkuService::class);
-        $last_time = $this->getAsnLastSyncAt($updated_at, 'update');
+        $last_time = $this->getCommodityLastSyncAt($updated_at, 'update');
         $basSkus = $oracleBasSkuService->getWmsUpdatedCommodities($last_time);
         $last_time = $basSkus->first()['edittime'];
         $last_records = $basSkus->where('edittime', $last_time);
@@ -428,7 +428,7 @@ Class CommodityService
         $this->syncUpdateCommodity($basSkus);
         $this->deleteCacheKey($update_set, $update_keys);
         $this->setLastRecordsByRedis($update_key, $update_set, $update_keys, $last_records);
-        $this->setAsnLastSyncAt($updated_at, $last_time);
+        $this->setCommodityLastSyncAt($updated_at, $last_time);
     }
 
     public function syncCreateCommodity($addBasSkus)
@@ -658,7 +658,7 @@ Class CommodityService
         }
     }
 
-    public function getAsnLastSyncAt($key, $type)
+    public function getCommodityLastSyncAt($key, $type)
     {
         $last_time = ValueStore::query()->where('name', $key)->value('value');
         if ($last_time) return $last_time;
@@ -672,7 +672,7 @@ Class CommodityService
         return Carbon::now()->subSeconds(65);
     }
 
-    public function setAsnLastSyncAt($key, $last_time)
+    public function setCommodityLastSyncAt($key, $last_time)
     {
         $asnLastSyncAt = ValueStore::query()->updateOrCreate([
             'name' => $key,

+ 32 - 1
app/Services/OwnerService.php

@@ -235,7 +235,11 @@ Class OwnerService
             if($owner) return $owner;
              $basCustomer = app('OracleBasCustomerService')->first(['Customer_Type'=>'OW','CustomerID'=>$code]);
             if(!$basCustomer)return null;
-            return Owner::query()->create(['name'=>$basCustomer['descr_c'],'code'=>$basCustomer['customerid']]);
+            if($basCustomer && $basCustomer['active_flag']=='Y') return Owner::query()
+                ->create(['name'=>$basCustomer['descr_c'],'code'=>$basCustomer['customerid']]);
+            $deleted_at=Carbon::now()->toDateTimeString();
+            if($basCustomer && $basCustomer['active_flag']=='N') return Owner::query()
+                ->create(['name'=>$basCustomer['descr_c'],'code'=>$basCustomer['customerid'],'deleted_at'=>$deleted_at]);
         });
     }
     public function codeGetOwner($code)
@@ -275,4 +279,31 @@ sql
         }
         return true;
     }
+
+
+    public function syncUpdate($owner)
+    {
+        if (is_array($owner)){
+            $owner = new Owner();
+            foreach ($owner as $column=>$value){
+                $owner[$column] = $value;
+            }
+        }
+        if (is_numeric($owner)){
+            $owner = Owner::query()->find($owner);
+            if (!$owner)return false;
+        }
+        $sql = DB::raw(<<<sql
+    update BAS_CUSTOMER set ACTIVE_FLAG = ?,EDITTIME = TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),EDITWHO = ? where CUSTOMERID = ? and CUSTOMER_TYPE = ? 
+sql
+        );
+        $date = date('Y-m-d H:i:s');
+        if ($owner && $owner->deleted_at){
+            DB::connection("oracle")->update($sql,['N',$date,'WAS-'.(Auth::user() ? Auth::user()['name'] : 'SYSTEM'),$owner->code,'OW']);
+        }
+       if ($owner && $owner->deleted_at==null) {
+            DB::connection("oracle")->update($sql,['Y',$date,'WAS-'.(Auth::user() ? Auth::user()['name'] : 'SYSTEM'),$owner->code,'OW']);
+        }
+        return true;
+    }
 }

+ 3 - 4
app/Services/RejectedBillService.php

@@ -122,10 +122,9 @@ Class RejectedBillService
     {
         $updateCollect = collect();
         foreach ($asnHerders as $asnHerder) {
-            if (($asnHerder->asnType->codename_c == '退货入库'
-                    || $asnHerder->asnType->codename_c == '其他入库')
-                && ($asnHerder->asnStatus->codename_c == '已入库'
-                    ||$asnHerder->asnStatus->codename_c == 'ASN关闭')) {
+            if ($asnHerder->asnType && $asnHerder->asnStatus &&
+                ($asnHerder->asnType->codename_c == '退货入库' || $asnHerder->asnType->codename_c == '其他入库')
+                && ($asnHerder->asnStatus->codename_c == '完全收货' ||$asnHerder->asnStatus->codename_c == 'ASN关闭')) {
                 $updateCollect->add($asnHerder);
             }
         }

+ 6 - 5
app/Services/StoreService.php

@@ -51,7 +51,7 @@ Class StoreService
         $oracleDocAsnHerderService = app(OracleDocAsnHerderService::class);
         $last_time = $this->getAsnLastSyncAt($created_at, 'create');
         $asnHerders = $oracleDocAsnHerderService->getWmsAsnOnStartDateCreate($last_time);
-        if (!$asnHerders) return;
+        if (count($asnHerders)<1) return;
         $last_time = $asnHerders->first()['addtime'];
         $last_records = $asnHerders->where('addtime', $last_time);
         $this->createStore($asnHerders);
@@ -71,7 +71,7 @@ Class StoreService
         $oracleDocAsnHerderService = app(OracleDocAsnHerderService::class);
         $last_time = $this->getAsnLastSyncAt($updated_at, 'update');
         $asnHerders = $oracleDocAsnHerderService->getWmsAsnOnStartDateEdit($last_time);
-        if (!$asnHerders) return;
+        if (count($asnHerders)<1) return;
         $last_time = $asnHerders->first()['edittime'];
         $last_records = $asnHerders->where('edittime', $last_time);
         $this->createStore($asnHerders);
@@ -196,9 +196,10 @@ Class StoreService
             if ($store->asn_code != $asnHerder->asnno ||
                 $store->warehouse_id != $warehouse_id ||
                 $store->owner_id != $owner_id ||
-                $store->stored_method != $asnHerder->asnType->codename_c ||
-                $store->status != $asnHerder->asnStatus->codename_c ||
-                $store->remark != $asnHerder->notes) {
+                $store->stored_method != ($asnHerder->asnType->codename_c ??'')||
+                $store->status != ($asnHerder->asnStatus->codename_c ?? '')||
+                $store->remark != $asnHerder->notes ||
+                $store->updated_at != $asnHerder->edittime) {
                 $updateParams[] = [
                     'id' => $store->id,
                     'asn_code' => $asnHerder->asnno,

+ 4 - 1
app/StoreItems.php

@@ -14,7 +14,7 @@ class StoreItems extends Model
     use ModelTimeFormat;
     protected $fillable=[
         'store_id','asn_line_code','name',
-        'sku','barcode','depository_id','amount','quality','status',
+        'sku','barcode','depository_id','amount','quality','status','commodity_id'
     ];
     protected $appends=[
         'store_asn_code',
@@ -27,6 +27,9 @@ class StoreItems extends Model
     public function store(){
         return $this->belongsTo('App\Store','store_id','id');
     }
+    public function commodity(){
+        return $this->hasOne('App\Commodity','id','commodity_id');
+    }
 
 
     public function getStoreASNCodeAttribute()

+ 1 - 1
composer.json

@@ -81,4 +81,4 @@
             "@php artisan key:generate --ansi"
         ]
     }
-}
+}

+ 1 - 1
resources/views/maintenance/owner/recycle.blade.php

@@ -52,7 +52,7 @@
                 restoreSelected:function(owner){
                     let _this=this;
                     confirm('确定要恢复停用货主“' + owner.name + '”吗?');
-                    let ajaxUrl='{{url("apiLocal/owner/restoreSelected")}}';
+                    let ajaxUrl='{{url("maintenance/owners/restoreSelected")}}';
                     axios.post(ajaxUrl,{id:owner.id}).then(function(response){
                         if(response.data.success){
                             tempTip.setDuration(1000);

+ 0 - 1
routes/apiLocal.php

@@ -7,7 +7,6 @@ use Illuminate\Support\Facades\Route;
 地址前缀:/apiLocal/
 */
 Route::post('rejected/recoverSelected', 'RejectedController@apiRecoverSelected');
-Route::post('owner/restoreSelected', 'OwnerController@restoreSelected');
 Route::post('rejectedBillItem/store', 'RejectedBillItemController@apiStore');
 Route::post('rejectedBillItem/update', 'RejectedBillItemController@apiUpdate');
 Route::post('rejectedBillItem/apiGet', 'RejectedBillItemController@apiGet');

+ 1 - 0
routes/web.php

@@ -47,6 +47,7 @@ Route::group(['prefix'=>'maintenance'],function(){
     /** 货主 */
     Route::group(['prefix'=>'owners'],function(){
         Route::get('recycle','OwnerController@recycle');
+        Route::post('restoreSelected', 'OwnerController@restoreSelected');
     });
     Route::group(['prefix'=>'owner'],function (){
         Route::post("get","OwnerController@get");