Merge branch 'develop'

This commit is contained in:
mzl
2025-09-24 19:12:13 +08:00
parent 04208b3b5c
commit b897771541
31 changed files with 5899 additions and 895 deletions
+68 -1
View File
@@ -57,7 +57,7 @@ class ApprovalRecordsService
if ($p['scene'] === 'todo') {
// if (!in_array(1, $request->user->role_ids)) {
$config['where']['approver_id'] = $request->user->uid;
// $config['where']['approver_id'] = $request->user->uid;
// }
$config['where']['status'] = 'pending';
$config['where']['instance.status'] = 'processing';
@@ -95,6 +95,17 @@ class ApprovalRecordsService
$config['where']['instance_id'] = $p['instance_id'];
$config['order']['id'] = 'desc';
break;
case 'border':
$config['where']['id'] = $p['id'];
$config['order']['id'] = 'desc';
$config['with'] = [
'instance',
'approver',
'instance.flows',
'instance.initiator',
'instance.bizInfo'
];
break;
}
return $config;
@@ -115,4 +126,60 @@ class ApprovalRecordsService
$item = $this->logicListAll($config);
return $this->postProcess('Logs', $item);
}
public function serviceBusinessOrder(Request $request, array $data = [])
{
$config = $this->buildQueryConfig($request, 'border');
$config = $this->borderConfig($config, $data['flow_type']);
$item = $this->logicShow($config);
$bizInfo = [];
$service = match ($data['flow_type']) {
'stock_orders' => new \app\common\service\StockOrdersService(),
'purchase_orders' => new \app\common\service\PurchaseOrdersService(),
default => new \app\common\service\StockOrdersService()
};
$bizInfo = $service->formatData($item->instance->bizInfo);
return $this->postProcess('Border', $bizInfo);
}
public function borderConfig($config, $type = 'stock_orders')
{
$with = match ($type) {
'stock_orders' => [
'instance.bizInfo.items',
'instance.bizInfo.items.options',
'instance.bizInfo.items.moneyValues',
'instance.bizInfo.accounts',
'instance.bizInfo.moneyValues',
'instance.bizInfo.salesperson',
],
'purchase_orders' => [
'instance.bizInfo.items',
'instance.bizInfo.items.stockOrder',
'instance.bizInfo.items.stockOrderItems'
]
};
$config['with'] = array_merge($config['with'], $with);
return $config;
}
public function transferApproval(Request $request, array $data = [])
{
$service = new \app\common\utils\approval\service\ApprovalFlowService();
$result = $service->transferApproval($data['instance_id'], $data['step_index'], $request->user->uid, $data['to_uid'], $data['reason'], 'name');
return $result;
}
public function serviceApprovalTimeline(Request $request, array $data = [])
{
$instance = \app\common\model\ApprovalInstances::where('biz_id', $data['id'])->where('flow_type', $data['flow_type'])->first();
if (!$instance) {
return [];
}
$result = \app\common\model\ApprovalRecords::where('instance_id', $instance->id)->with('approver')->orderBy('id', 'desc')->get();
return $result;
}
}