审批&PDF生成

This commit is contained in:
mzl
2025-09-08 11:34:19 +08:00
parent 8a4848bc75
commit 28368e27a7
30 changed files with 1269 additions and 980 deletions
+28 -61
View File
@@ -77,27 +77,27 @@ class IndexController
public function createResource()
{
$options = [
// 'controller' => [
// 'module' => 'common',
// 'name' => 'stock_orders'
// ],
'model' => [
'module' => 'approval',
'name' => 'approval_records'
'controller' => [
'module' => 'admin',
'name' => 'approval_flows'
],
// 'service' => [
// 'module' => 'common',
// 'name' => 'stock_orders'
// ],
// 'logic' => [
// 'module' => 'common',
// 'name' => 'stock_orders'
// ],
// 'validate' => [
// 'module' => 'common',
// 'name' => 'stock_orders'
// ],
'table' => 'approval_records'
'model' => [
'module' => 'admin',
'name' => 'approval_flows'
],
'service' => [
'module' => 'admin',
'name' => 'approval_flows'
],
'logic' => [
'module' => 'admin',
'name' => 'approval_flows'
],
'validate' => [
'module' => 'admin',
'name' => 'approval_flows'
],
'table' => 'approval_flows'
];
$result = (new Generate($options))->doGenerate();
@@ -107,46 +107,13 @@ class IndexController
public function test()
{
$data = [
'id' => 1,
'user_id' => 1,
'leave_type_id' => 1,
'start_date' => '2019-01-01',
'end_date' => '2019-01-02',
'reason' => 'test',
'status' => 1
];
$code = $this->submitLeaveApplication(1, $data);
return $code;
}
// 假设这是你的业务逻辑
public function submitLeaveApplication(int $bizId, $leaveData) {
// 1. 保存业务数据
// $bizId = DB::table('leave_applications')->insertGetId($leaveData);
// 2. 启动审批流程
$service = new \app\common\approval\service\ApprovalFlowService();
try {
$result = $service->start(
'leave', // 流程类型,对应 approval_flows.type
'leave_application', // 业务类型标识
$bizId, // 业务ID
$leaveData, // 表单数据快照
$_SESSION['user_id'] ?? 1 // 发起人ID
);
// 3. 将审批实例ID关联回业务表
DB::table('leave_applications')
->where('id', $bizId)
->update(['approval_instance_id' => $result['instance_id']]);
return ['status' => 'success', 'message' => '申请已提交,等待审批'];
} catch (\Exception $e) {
// 处理错误,可能需要回滚业务数据插入
return ['status' => 'error', 'message' => $e->getMessage()];
}
return json([
'code' => 0,
'msg' => 'success',
'data' => [
'time' => time(),
'date' => date('Y-m-d H:i:s')
]
]);
}
}