|
|
<?php
|
|
|
require __DIR__.'/vendor/autoload.php';
|
|
|
$app = require_once __DIR__.'/bootstrap/app.php';
|
|
|
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
|
|
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
/**
|
|
|
* 2026年法定节假日 - 国务院办公厅官方安排
|
|
|
* type=1 法定假日(休息), type=2 调休上班
|
|
|
*/
|
|
|
|
|
|
$holidays = [
|
|
|
// 一、元旦:1月1日-3日放假,1月4日(周日)上班
|
|
|
['date'=>'2026-01-01','type'=>1,'name'=>'元旦'],
|
|
|
['date'=>'2026-01-02','type'=>1,'name'=>'元旦'],
|
|
|
['date'=>'2026-01-03','type'=>1,'name'=>'元旦'],
|
|
|
['date'=>'2026-01-04','type'=>2,'name'=>'元旦调休上班'],
|
|
|
|
|
|
// 二、春节:2月15日-23日放假,2月14日(周六)、2月28日(周六)上班
|
|
|
['date'=>'2026-02-14','type'=>2,'name'=>'春节调休上班'],
|
|
|
['date'=>'2026-02-15','type'=>1,'name'=>'春节'],
|
|
|
['date'=>'2026-02-16','type'=>1,'name'=>'春节'],
|
|
|
['date'=>'2026-02-17','type'=>1,'name'=>'春节'],
|
|
|
['date'=>'2026-02-18','type'=>1,'name'=>'春节'],
|
|
|
['date'=>'2026-02-19','type'=>1,'name'=>'春节'],
|
|
|
['date'=>'2026-02-20','type'=>1,'name'=>'春节'],
|
|
|
['date'=>'2026-02-21','type'=>1,'name'=>'春节'],
|
|
|
['date'=>'2026-02-22','type'=>1,'name'=>'春节'],
|
|
|
['date'=>'2026-02-23','type'=>1,'name'=>'春节'],
|
|
|
['date'=>'2026-02-28','type'=>2,'name'=>'春节调休上班'],
|
|
|
|
|
|
// 三、清明节:4月4日-6日放假
|
|
|
['date'=>'2026-04-04','type'=>1,'name'=>'清明节'],
|
|
|
['date'=>'2026-04-05','type'=>1,'name'=>'清明节'],
|
|
|
['date'=>'2026-04-06','type'=>1,'name'=>'清明节'],
|
|
|
|
|
|
// 四、劳动节:5月1日-5日放假,5月9日(周六)上班
|
|
|
['date'=>'2026-05-01','type'=>1,'name'=>'劳动节'],
|
|
|
['date'=>'2026-05-02','type'=>1,'name'=>'劳动节'],
|
|
|
['date'=>'2026-05-03','type'=>1,'name'=>'劳动节'],
|
|
|
['date'=>'2026-05-04','type'=>1,'name'=>'劳动节'],
|
|
|
['date'=>'2026-05-05','type'=>1,'name'=>'劳动节'],
|
|
|
['date'=>'2026-05-09','type'=>2,'name'=>'劳动节调休上班'],
|
|
|
|
|
|
// 五、端午节:6月19日-21日放假
|
|
|
['date'=>'2026-06-19','type'=>1,'name'=>'端午节'],
|
|
|
['date'=>'2026-06-20','type'=>1,'name'=>'端午节'],
|
|
|
['date'=>'2026-06-21','type'=>1,'name'=>'端午节'],
|
|
|
|
|
|
// 六、中秋节:9月25日-27日放假
|
|
|
['date'=>'2026-09-25','type'=>1,'name'=>'中秋节'],
|
|
|
['date'=>'2026-09-26','type'=>1,'name'=>'中秋节'],
|
|
|
['date'=>'2026-09-27','type'=>1,'name'=>'中秋节'],
|
|
|
|
|
|
// 七、国庆节:10月1日-7日放假,9月20日(周日)、10月10日(周六)上班
|
|
|
['date'=>'2026-09-20','type'=>2,'name'=>'国庆节调休上班'],
|
|
|
['date'=>'2026-10-01','type'=>1,'name'=>'国庆节'],
|
|
|
['date'=>'2026-10-02','type'=>1,'name'=>'国庆节'],
|
|
|
['date'=>'2026-10-03','type'=>1,'name'=>'国庆节'],
|
|
|
['date'=>'2026-10-04','type'=>1,'name'=>'国庆节'],
|
|
|
['date'=>'2026-10-05','type'=>1,'name'=>'国庆节'],
|
|
|
['date'=>'2026-10-06','type'=>1,'name'=>'国庆节'],
|
|
|
['date'=>'2026-10-07','type'=>1,'name'=>'国庆节'],
|
|
|
['date'=>'2026-10-10','type'=>2,'name'=>'国庆节调休上班'],
|
|
|
];
|
|
|
|
|
|
DB::beginTransaction();
|
|
|
$count = 0;
|
|
|
foreach ($holidays as $h) {
|
|
|
$exists = DB::table('holiday')->where('date', $h['date'])->where('deleted', 0)->first();
|
|
|
if ($exists) {
|
|
|
DB::table('holiday')->where('id', $exists->id)->update([
|
|
|
'type' => $h['type'],
|
|
|
'name' => $h['name'],
|
|
|
'updated_at' => now(),
|
|
|
]);
|
|
|
echo " UPDATED: {$h['date']} {$h['name']} type={$h['type']}\n";
|
|
|
} else {
|
|
|
DB::table('holiday')->insert([
|
|
|
'date' => $h['date'],
|
|
|
'type' => $h['type'],
|
|
|
'name' => $h['name'],
|
|
|
'status' => 1,
|
|
|
'deleted' => 0,
|
|
|
'created_at' => now(),
|
|
|
'updated_at' => now(),
|
|
|
]);
|
|
|
echo " INSERTED: {$h['date']} {$h['name']} type={$h['type']}\n";
|
|
|
}
|
|
|
$count++;
|
|
|
}
|
|
|
DB::commit();
|
|
|
|
|
|
$holidayCount = DB::table('holiday')->where('deleted', 0)->where('type', 1)->whereYear('date', 2026)->count();
|
|
|
$workdayCount = DB::table('holiday')->where('deleted', 0)->where('type', 2)->whereYear('date', 2026)->count();
|
|
|
echo "\nDone! Total: {$count} records.\n";
|
|
|
echo " Legal holidays (type=1): {$holidayCount} days\n";
|
|
|
echo " Makeup workdays (type=2): {$workdayCount} days\n";
|