Compare commits

...

4 Commits

Author SHA1 Message Date
vine_liutk 2db4ae73fc 添加人口变动迁移 2024-02-27 10:20:33 +08:00
vine_liutk 2b840faf57 调整潘顿 2024-02-26 11:11:45 +08:00
vine_liutk c4af14dbb0 调整死亡户主信息保留 2024-02-23 21:53:14 +08:00
vine_liutk f8f2425062 调整迁出用户的信息 2024-02-23 21:44:28 +08:00
6 changed files with 112 additions and 19 deletions

View File

@ -288,7 +288,7 @@ class PersonController extends AdminController
'visibleOn' => '${is_master > 0}',
'size' => 15
])
->api(admin_url('persons?_action=getData&master[name]=${master.name}'))
->api(admin_url('persons?_action=getData&state=1&master[name]=${master.name}'))
->columns([
amis()->TableColumn('name', __('admin.persons.name'))->copyable(),
amis()->TableColumn('master_connect', __('admin.persons.master_connect')),
@ -328,28 +328,28 @@ class PersonController extends AdminController
amis()->Button()->label('取消')->actionType('cancel'),
amis()->Button()->label('确认')->actionType('submit')->primary()->close('detail_info'),
])
)->visibleOn('${state} < 2'),
)->visibleOn('state < 2'),
//迁移
amis()->DialogAction()->level('info')->label('迁移')->dialog(
amis()->Dialog()->title('迁移')->body($this->personMigrateForm())->size('lg')->actions([
amis()->Button()->label('取消')->actionType('cancel'),
amis()->Button()->label('确认')->actionType('submit')->primary()->close('detail_info'),
])
)->visibleOn('${state} < 2'),
)->visibleOn('state < 2'),
//迁出
amis()->DialogAction()->level('success')->label('迁出')->dialog(
amis()->Dialog()->title('迁出')->body($this->personOutForm())->size('lg')->actions([
amis()->Button()->label('取消')->actionType('cancel'),
amis()->Button()->label('确认')->actionType('submit')->primary()->close('detail_info'),
])
)->visibleOn('${state} < 2'),
)->visibleOn('state < 2'),
//死亡
amis()->DialogAction()->level('danger')->label('死亡')->dialog(
amis()->Dialog()->title('死亡')->body($this->personDieForm())->size('lg')->actions([
amis()->Button()->label('取消')->actionType('cancel'),
amis()->Button()->label('确认')->actionType('submit')->primary()->close('detail_info'),
])
)->visibleOn('${state} < 2'),
)->visibleOn('state < 2'),
//返回
amis()->Button()->actionType('cancel')->label(__('admin.back'))->primary()
];
@ -572,7 +572,7 @@ class PersonController extends AdminController
amis()->TableColumn('idcard', __('admin.persons.idcard')),
amis()->TableColumn('master_connect', __('admin.persons.master_connect'))->width('60px'),
amis()->RadioControl('is_new_master', '新户主')->disabledOn('is_master'),
amis()->TextControl('new_master_connect', '新关系')->disabledOn('is_master'),
amis()->TextControl('new_master_connect', '新关系'),
])->required()
)->visibleOn('${is_master}'),
amis()->Divider(),

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

@ -464,10 +464,13 @@ class PersonService extends BaseService
}
Person::where('id', $person->id)->update([
'domicile_code' => '99999999',
'is_master' => 0,
'master_id' => null,
'master_connect' => null,
'housing_estate_id' => null,
'building_id' => null,
'house_number' => null,
'house_complete_address' => null,
'state' => 2,
]);
@ -553,14 +556,17 @@ class PersonService extends BaseService
]);
}
}
Person::where('id', $person->id)->update([
$personUpdate = [[
'domicile_code' => '99999999',
'is_master' => 0,
'master_id' => null,
'master_connect' => null,
'state' => 2,
]);
]];
if(isset($oldNewMaster)){
$personUpdate['master_id'] = $oldNewMaster['id'];
$personUpdate['master_connect'] = $oldNewMaster['new_master_connect'];
}
Person::where('id', $person->id)->update($personUpdate);
count($personChangeLogs) > 0 && PersonChange::insert($personChangeLogs);

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