generated from liutk/owl-admin-base
添加人口变动迁移
parent
2b840faf57
commit
2db4ae73fc
|
|
@ -33,13 +33,13 @@ class Person extends Model
|
||||||
$person->is_master = 1;
|
$person->is_master = 1;
|
||||||
$person->save();
|
$person->save();
|
||||||
}
|
}
|
||||||
//处理新增时变动记录-todo
|
//处理新增时变动记录
|
||||||
if(in_array($person->type, [11, 12])){
|
if(in_array($person->type, [11, 12])){
|
||||||
PersonChange::create([
|
PersonChange::create([
|
||||||
'person_id' => $person->id,
|
'person_id' => $person->id,
|
||||||
'type' => $person->type == 11 ? PersonChange::TYPE_BIRTH : PersonChange::TYPE_IN,
|
'type' => $person->type == 11 ? PersonChange::TYPE_BIRTH : PersonChange::TYPE_IN,
|
||||||
'changed_at' => $person->type == 11 ? $person->birthday : $person->created_at,
|
'changed_at' => $person->type == 11 ? $person->birthday : $person->created_at,
|
||||||
'new_master' => $person->master_id
|
'new_master' => $person->master_id,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ class DatabaseSeeder extends Seeder
|
||||||
$this->call(AdminMenuSeeder::class);
|
$this->call(AdminMenuSeeder::class);
|
||||||
$this->call(KeywordSeeder::class);
|
$this->call(KeywordSeeder::class);
|
||||||
|
|
||||||
//执行老数据迁移-todo;
|
//执行老数据迁移;
|
||||||
|
$this->call(MigrationSeeder::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
namespace Database\Seeders;
|
namespace Database\Seeders;
|
||||||
|
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use Database\Seeders\Migrations\{ArticleCategorySeeder, KeywordSeeder, BuildingSeeder,PersonSeeder};
|
use Database\Seeders\Migrations\{ArticleCategorySeeder, KeywordSeeder, BuildingSeeder,PersonSeeder,PersonMoveSeeder};
|
||||||
|
|
||||||
class MigrationSeeder extends Seeder
|
class MigrationSeeder extends Seeder
|
||||||
{
|
{
|
||||||
|
|
@ -15,10 +15,11 @@ class MigrationSeeder extends Seeder
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
$this->call([
|
$this->call([
|
||||||
// ArticleCategorySeeder::class,
|
ArticleCategorySeeder::class,
|
||||||
// KeywordSeeder::class,
|
KeywordSeeder::class,
|
||||||
// BuildingSeeder::class,
|
BuildingSeeder::class,
|
||||||
PersonSeeder::class,
|
PersonSeeder::class,
|
||||||
|
PersonMoveSeeder::class,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,85 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Seeders\Migrations;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
use Throwable;
|
||||||
|
use App\Models\Person;
|
||||||
|
use App\Models\PersonChange;
|
||||||
|
|
||||||
|
class PersonMoveSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
DB::table('person_changes')->truncate();
|
||||||
|
|
||||||
|
DB::connection('djc_mysql')->table('t_person_move')->orderBy('id', 'ASC')->chunk(1000, function($personMoves){
|
||||||
|
$newlogs = [];
|
||||||
|
if($personMoves->count() > 0){
|
||||||
|
foreach($personMoves as $log){
|
||||||
|
if($log->valid){//有效的记录
|
||||||
|
//处理原有时间字符串
|
||||||
|
$occurDate = substr($log->occurDate, 0, 10);
|
||||||
|
$_log = [
|
||||||
|
'type' => $log->type,
|
||||||
|
'person_id' => $log->personId,
|
||||||
|
'changed_at' => $occurDate,
|
||||||
|
'reason' => $log->reason,
|
||||||
|
'old_master'=> Person::where('name', $log->oldMaster)->first()?->id ?: null,
|
||||||
|
'new_master'=> Person::where('name', $log->currMaster)->first()?->id ?: null,
|
||||||
|
'phone' => $log->phone,
|
||||||
|
];
|
||||||
|
//处理变更文案
|
||||||
|
switch($_log['type']){
|
||||||
|
case PersonChange::TYPE_IN:
|
||||||
|
case PersonChange::TYPE_BIRTH:
|
||||||
|
$_log['extends'] = null;
|
||||||
|
$_log['extends_mark'] = null;
|
||||||
|
break;
|
||||||
|
case PersonChange::TYPE_SPLIT:
|
||||||
|
$_log['extends'] = null;
|
||||||
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '':'因'.$_log['reason']).'分户';
|
||||||
|
break;
|
||||||
|
case PersonChange::TYPE_MERGE:
|
||||||
|
$_log['extends'] = null;
|
||||||
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '':'因'.$_log['reason']).'合户';
|
||||||
|
break;
|
||||||
|
case PersonChange::TYPE_OUT:
|
||||||
|
$_log['extends'] = json_encode([
|
||||||
|
'to_address' =>$log->newAddr,
|
||||||
|
]);
|
||||||
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '':'因'.$_log['reason']).$log->newAddr;
|
||||||
|
break;
|
||||||
|
case PersonChange::TYPE_CHANGE:
|
||||||
|
$_log['extends'] = null;
|
||||||
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '':'因'.$_log['reason']).'户主变更';
|
||||||
|
break;
|
||||||
|
case PersonChange::TYPE_MIGRATE:
|
||||||
|
$_log['extends'] = null;
|
||||||
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '':'因'.$_log['reason']).'迁移';
|
||||||
|
break;
|
||||||
|
case PersonChange::TYPE_DIE:
|
||||||
|
$_log['extends'] = null;
|
||||||
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '': $_log['reason']);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$_log['extends'] = null;
|
||||||
|
$_log['extends_mark'] = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$newlogs[] = $_log;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
!empty($newlogs) && DB::table('person_changes')->insert($newlogs);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue