Skip to content

Commit 90b13fb

Browse files
frankslinsudoghut
authored andcommitted
移除失效的官職 saveas 端點/clone 方法並修正 edit-v2 註解
- 刪除 GET basicinformation/{id}/offices/{cpk}/saveas 路由與 BasicInformationOfficesController::saveas($id, $cpk):已無任何前端或內部 呼叫。React 官職編輯器的「另存新檔」走 /api/v2 create 管線;legacy Blade 表單的另存由 update() 的 action=saveas(storeSaveAs → officeStoreById) 處理,皆不經此端點。方法內另含 2025-12 已註解停用的舊實作,一併清除。 - 連帶移除因上述刪除而變成孤兒的 clone 方法: OfficePostingRepository::officeCloneById 及 BiogMainRepository 的轉呼叫 包裝(全庫無其他呼叫者;storeSaveAs 用的是 officeStoreById,非此方法)。 - 刪除僅測試上述已移除端點的 BasicInformationOfficesSaveAsTest。 - 修正 routes/web.php 中 edit-v2 路由的過期註解:這些 *.editv2 路由即現行 上線的 React 編輯器(legacy 表單經 LegacyBladeFormGate 302 導向於此), 非「獨立測試路由、flag 仍 old、不上線」。
1 parent d79b788 commit 90b13fb

5 files changed

Lines changed: 10 additions & 339 deletions

File tree

app/Http/Controllers/BasicInformationOfficesController.php

Lines changed: 0 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -320,74 +320,6 @@ public function update(Request $request, $id, $id_) {
320320
));
321321
}
322322

323-
//20190225新增另存功能
324-
public function saveas($id, $cpk) {
325-
if (!Auth::check()) {
326-
flash('請登入後編輯 @ '.Carbon::now(), 'error');
327-
328-
return redirect()->back();
329-
} elseif (!Auth::user()->canWriteDirectly()) {
330-
flash('該用戶沒有權限,請聯絡管理員 @ '.Carbon::now(), 'error');
331-
332-
return redirect()->back();
333-
}
334-
335-
$officeResourceId = $this->biogMainRepository->officeCloneById($id, $cpk);
336-
337-
if ($officeResourceId === null) {
338-
flash('資料不存在,另存失敗 @ '.Carbon::now(), 'error');
339-
340-
return redirect()->route('basicinformation.offices.index', ['basicinformation' => $id]);
341-
}
342-
343-
$newPk = CompositePrimaryKey::parseStoredResourceId($officeResourceId, 'POSTED_TO_OFFICE_DATA');
344-
if ($newPk === null) {
345-
\Log::error('officeCloneById 返回的 resource_id 無法解析', ['resource_id' => $officeResourceId]);
346-
347-
return redirect(route('basicinformation.offices.index', $id, false));
348-
}
349-
350-
flash('Store success @ '.Carbon::now(), 'success');
351-
352-
return redirect(CompositePrimaryKey::buildUrl(
353-
'basicinformation.offices.edit.query',
354-
['id' => $id],
355-
$newPk
356-
));
357-
358-
//20251203遮除原本的資料另存程式,改用transaction程式碼。
359-
/*
360-
$res = $this->biogMainRepository->officeById($cpk);
361-
$res2 = json_encode($res['row']);
362-
$res2 = json_decode($res2, true);
363-
$res3 = $res['addr_str'];
364-
$data2 = array();
365-
$x = count($res3);
366-
for($i=0;$i<$x;$i++) {
367-
array_push($data2, $res3[$i][0]);
368-
}
369-
$data = $res2;
370-
$c_addr = $data2;
371-
$data = Arr::except($data, ['_token', 'c_addr']);
372-
$data['c_fy_intercalary'] = (int)($data['c_fy_intercalary']);
373-
$data['c_ly_intercalary'] = (int)($data['c_ly_intercalary']);
374-
$data['c_posting_id'] = DB::table('POSTED_TO_OFFICE_DATA')->max('c_posting_id') + 1;
375-
$data['c_personid'] = $id;
376-
DB::table('POSTING_DATA')->insert(['c_personid' => $data['c_personid'], 'c_posting_id' => $data['c_posting_id']]);
377-
$this->insertAddr($c_addr, $id, $data['c_posting_id'], $data['c_office_id']);
378-
$data = (new ToolsRepository)->timestamp($data, True);
379-
$data['c_modified_by'] = $data['c_modified_date'] = '';
380-
DB::table('POSTED_TO_OFFICE_DATA')->insert($data);
381-
(new OperationRepository())->store(Auth::id(), $id, 1, 'POSTED_TO_OFFICE_DATA', $data['c_posting_id'], $data);
382-
$_id = $data['c_office_id']."-".$data['c_posting_id'];
383-
flash('Store success @ '.Carbon::now(), 'success');
384-
return redirect()->route('basicinformation.offices.edit', [
385-
'basicinformation' => $id,
386-
'office' => $_id,
387-
]);
388-
*/
389-
}
390-
391323
/**
392324
* 以表單目前的資料另存為新記錄(由 update 方法的 action=saveas 觸發)。
393325
*/

app/Repositories/BiogMainRepository.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,10 +1254,6 @@ public function officeStoreById(Request $request, $id) {
12541254
return $this->officePostingRepository()->officeStoreById($request, $id);
12551255
}
12561256

1257-
public function officeCloneById($id, $cpk) {
1258-
return $this->officePostingRepository()->officeCloneById($id, $cpk);
1259-
}
1260-
12611257
public function officeDeleteById($id, $c_personid) {
12621258
$this->officePostingRepository()->officeDeleteById($id, $c_personid);
12631259
}

app/Repositories/OfficePostingRepository.php

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -515,65 +515,6 @@ public function officeStoreById(Request $request, $id) {
515515
});
516516
}
517517

518-
public function officeCloneById($id, $cpk) {
519-
return DB::transaction(function () use ($id, $cpk) {
520-
$temp = explode('-', $cpk);
521-
$sourceRow = DB::table('POSTED_TO_OFFICE_DATA')->where([
522-
['c_office_id', '=', $temp[0]],
523-
['c_posting_id', '=', $temp[1]],
524-
])->first();
525-
526-
if (!$sourceRow) {
527-
return null;
528-
}
529-
530-
$payload = json_decode(json_encode($sourceRow), true);
531-
$c_addr = DB::table('POSTED_TO_ADDR_DATA')
532-
->where('c_personid', $sourceRow->c_personid)
533-
->where('c_posting_id', $sourceRow->c_posting_id)
534-
->pluck('c_addr_id')
535-
->all();
536-
537-
$data = Arr::except($payload, ['_token', 'c_addr']);
538-
$data['c_fy_intercalary'] = (int)($data['c_fy_intercalary']);
539-
$data['c_ly_intercalary'] = (int)($data['c_ly_intercalary']);
540-
541-
$lastPostingId = DB::table('POSTING_DATA')
542-
->lockForUpdate()
543-
->orderByDesc('c_posting_id')
544-
->value('c_posting_id');
545-
$data['c_posting_id'] = ((int) $lastPostingId) + 1;
546-
$data['c_personid'] = $id;
547-
548-
$c_created_by = \App\Support\AuditActor::currentName();
549-
$c_created_date = Carbon::now();
550-
$data['c_modified_by'] = $data['c_modified_date'] = '';
551-
$data['c_created_by'] = $c_created_by;
552-
$data['c_created_date'] = $c_created_date;
553-
554-
DB::table('POSTING_DATA')->insert([
555-
'c_personid' => $data['c_personid'],
556-
'c_posting_id' => $data['c_posting_id'],
557-
'c_created_by' => $data['c_created_by'],
558-
'c_created_date' => $data['c_created_date'],
559-
]);
560-
561-
$this->insertAddr($c_addr, $id, $data['c_posting_id'], $data['c_office_id'], $c_created_by, $c_created_date);
562-
563-
$data = (new ToolsRepository())->timestamp($data, true);
564-
DB::table('POSTED_TO_OFFICE_DATA')->insert($data);
565-
566-
$officeResourceId = CompositePrimaryKey::buildStoredResourceId([
567-
'c_office_id' => $data['c_office_id'],
568-
'c_posting_id' => $data['c_posting_id'],
569-
]);
570-
571-
(new OperationRepository())->store(Auth::id(), $id, 1, 'POSTED_TO_OFFICE_DATA', $officeResourceId, $data);
572-
573-
return $officeResourceId;
574-
});
575-
}
576-
577518
public function officeDeleteById($id, $c_personid) {
578519
DB::transaction(function () use ($id, $c_personid) {
579520
$auditLog = new AuditLogService();

routes/web.php

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,17 @@
7777
->middleware('inertia')
7878
->name('app.basicinformation.edit');
7979
// Task 27 重做:對齊 legacy /edit 的 React 基本資料編輯器(BasicInfoEditor)。
80-
// 獨立路由供逐步重做/驗證;不受 flag 影響、不上線(驗證通過並全面重做後再整合)
80+
// 這些 edit-v2 路由即為現行上線的 React 編輯器:legacy 表單被 LegacyBladeFormGate 攔截後 302 導向對應 *.editv2
8181
Route::get('app/basicinformation/{id}/edit-v2', 'BasicInformationController@appEditV2')
8282
->where('id', '[0-9]+')
8383
->middleware(['auth', 'inertia'])
8484
->name('app.basicinformation.editv2');
85-
// 地址編輯器 V2(對齊 legacy addresses/_form)。獨立測試路由、flag 仍 old、不上線。
85+
// 地址編輯器 V2(對齊 legacy addresses/_form)。
8686
Route::get('app/basicinformation/{id}/addresses/edit-v2', 'BasicInformationController@appAddressEditV2')
8787
->where('id', '[0-9]+')
8888
->middleware(['auth', 'inertia'])
8989
->name('app.basicinformation.addresses.editv2');
90-
// 著述編輯器 V2(對齊 legacy texts/_form)。獨立測試路由、flag 仍 old、不上線。
90+
// 著述編輯器 V2(對齊 legacy texts/_form)。
9191
Route::get('app/basicinformation/{id}/texts/edit-v2', 'BasicInformationController@appTextEditV2')
9292
->where('id', '[0-9]+')
9393
->middleware(['auth', 'inertia'])
@@ -96,17 +96,17 @@
9696
->where('id', '[0-9]+')
9797
->middleware(['auth', 'inertia'])
9898
->name('app.basicinformation.altnames.editv2');
99-
// 社會機構編輯器 V2(對齊 legacy socialinst/_form)。獨立測試路由、flag 仍 old、不上線。
99+
// 社會機構編輯器 V2(對齊 legacy socialinst/_form)。
100100
Route::get('app/basicinformation/{id}/socialinst/edit-v2', 'BasicInformationController@appSocialinstEditV2')
101101
->where('id', '[0-9]+')
102102
->middleware(['auth', 'inertia'])
103103
->name('app.basicinformation.socialinst.editv2');
104-
// 占有/財產編輯器 V2(對齊 legacy possession/_form)。獨立測試路由、flag 仍 old、不上線。
104+
// 占有/財產編輯器 V2(對齊 legacy possession/_form)。
105105
Route::get('app/basicinformation/{id}/possession/edit-v2', 'BasicInformationController@appPossessionEditV2')
106106
->where('id', '[0-9]+')
107107
->middleware(['auth', 'inertia'])
108108
->name('app.basicinformation.possession.editv2');
109-
// 事件編輯器 V2(對齊 legacy events/_form)。獨立測試路由、flag 仍 old、不上線。
109+
// 事件編輯器 V2(對齊 legacy events/_form)。
110110
Route::get('app/basicinformation/{id}/events/edit-v2', 'BasicInformationController@appEventEditV2')
111111
->where('id', '[0-9]+')
112112
->middleware(['auth', 'inertia'])
@@ -116,27 +116,26 @@
116116
->middleware(['auth', 'inertia'])
117117
->name('app.basicinformation.entries.editv2');
118118
// 社會區分編輯器 V2(對齊 legacy statuses/_form,含 AI 智能識別社會區分類別代碼)。
119-
// 獨立測試路由,statuses flag 仍 old、不上線。
120119
Route::get('app/basicinformation/{id}/statuses/edit-v2', 'BasicInformationController@appStatusEditV2')
121120
->where('id', '[0-9]+')
122121
->middleware(['auth', 'inertia'])
123122
->name('app.basicinformation.statuses.editv2');
124-
// 著述出處編輯器 V2(對齊 legacy sources/_form)。獨立測試路由,sources flag 仍 old、不上線。
123+
// 著述出處編輯器 V2(對齊 legacy sources/_form)。
125124
Route::get('app/basicinformation/{id}/sources/edit-v2', 'BasicInformationController@appSourceEditV2')
126125
->where('id', '[0-9]+')
127126
->middleware(['auth', 'inertia'])
128127
->name('app.basicinformation.sources.editv2');
129-
// 官名/任官編輯器 V2(對齊 legacy offices/_form,含多地址+雙 era+社會機構)。獨立測試路由,offices flag 仍 old、不上線。
128+
// 官名/任官編輯器 V2(對齊 legacy offices/_form,含多地址+雙 era+社會機構)。
130129
Route::get('app/basicinformation/{id}/offices/edit-v2', 'BasicInformationController@appOfficeEditV2')
131130
->where('id', '[0-9]+')
132131
->middleware(['auth', 'inertia'])
133132
->name('app.basicinformation.offices.editv2');
134-
// 社會關係編輯器 V2(對齊 legacy assoc/_form,9 段 PK+雙 era+多人物搜尋+AI 代碼識別;pair 後端權威補齊)。獨立測試路由,assoc flag 仍 old、不上線。
133+
// 社會關係編輯器 V2(對齊 legacy assoc/_form,9 段 PK+雙 era+多人物搜尋+AI 代碼識別;pair 後端權威補齊)。
135134
Route::get('app/basicinformation/{id}/assoc/edit-v2', 'BasicInformationController@appAssocEditV2')
136135
->where('id', '[0-9]+')
137136
->middleware(['auth', 'inertia'])
138137
->name('app.basicinformation.assoc.editv2');
139-
// 親屬關係編輯器 V2(對齊 legacy kinship/_form,3 段 PK+親屬碼/人物/出處搜尋;互逆配對碼後端權威補齊+雙向 mirror)。獨立測試路由,kinship flag 仍 old、不上線。
138+
// 親屬關係編輯器 V2(對齊 legacy kinship/_form,3 段 PK+親屬碼/人物/出處搜尋;互逆配對碼後端權威補齊+雙向 mirror)。
140139
Route::get('app/basicinformation/{id}/kinship/edit-v2', 'BasicInformationController@appKinshipEditV2')
141140
->where('id', '[0-9]+')
142141
->middleware(['auth', 'inertia'])
@@ -155,7 +154,6 @@
155154
->name('app.basicinformation.show');
156155
Route::get('basicinformation/{id}/saveas', 'BasicInformationController@saveas');
157156
Route::get('basicinformation/{id}/Duplicate_Collateral_Info', 'BasicInformationController@Duplicate_Collateral_Info');
158-
Route::get('basicinformation/{id}/offices/{cpk}/saveas', 'BasicInformationOfficesController@saveas');
159157

160158
// ===================================================================
161159
// 查詢參數模式路由(推薦使用,與舊的 path-based 路由並存)

0 commit comments

Comments
 (0)