添加人口变动迁移

main
vine_liutk 2024-02-27 10:20:33 +08:00
parent 2b840faf57
commit 2db4ae73fc
4 changed files with 94 additions and 7 deletions

View File

@ -33,13 +33,13 @@ class Person extends Model
$person->is_master = 1;
$person->save();
}
//处理新增时变动记录-todo
//处理新增时变动记录
if(in_array($person->type, [11, 12])){
PersonChange::create([
'person_id' => $person->id,
'type' => $person->type == 11 ? PersonChange::TYPE_BIRTH : PersonChange::TYPE_IN,
'changed_at' => $person->type == 11 ? $person->birthday : $person->created_at,
'new_master' => $person->master_id
'new_master' => $person->master_id,
]);
}
});

View File

@ -16,6 +16,7 @@ class DatabaseSeeder extends Seeder
$this->call(AdminMenuSeeder::class);
$this->call(KeywordSeeder::class);
//执行老数据迁移-todo;
//执行老数据迁移;
$this->call(MigrationSeeder::class);
}
}

View File

@ -3,7 +3,7 @@
namespace Database\Seeders;
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
{
@ -15,10 +15,11 @@ class MigrationSeeder extends Seeder
public function run()
{
$this->call([
// ArticleCategorySeeder::class,
// KeywordSeeder::class,
// BuildingSeeder::class,
ArticleCategorySeeder::class,
KeywordSeeder::class,
BuildingSeeder::class,
PersonSeeder::class,
PersonMoveSeeder::class,
]);
}
}

View File

@ -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);
});
}
}