增加审批签名

This commit is contained in:
mzl
2025-09-11 16:52:10 +08:00
parent eb13146763
commit fe64299303
6 changed files with 64 additions and 19 deletions
@@ -129,6 +129,11 @@ class ApprovalFlowService
'updated_at' => $now,
]);
// 异步生成pdf文件 9.11 add
if ($action === 'approve') {
\Webman\RedisQueue\Redis::send('stock-order-pdf', ['id'=>$instance->biz_id]);
}
// 2) 聚合本步结论(any / all)
$typeRaw = strtolower($step['type'] ?? 'all');
$type = in_array($typeRaw, ['any','all']) ? $typeRaw : 'all';
@@ -275,8 +275,8 @@
<div style="height: 14mm; line-height: 14mm;">
<span>备发货负责人签字:</span>
<?php if (!empty($data['sign_img_url'])): ?>
<img src="<?php echo htmlspecialchars($data['sign_img_url']); ?>" style="height: 12mm; vertical-align: middle;">
<?php if (!empty($data['sign_imgs'][1])): ?>
<img src="<?php echo htmlspecialchars($data['sign_imgs'][1]); ?>" style="height: 12mm; vertical-align: middle;">
<?php else: ?>
<span style="display:inline-block; width:21mm; height:12mm; vertical-align: middle; border-bottom:0.2mm solid #000;"></span>
<?php endif; ?>
@@ -287,8 +287,8 @@
<div style="width: 50%; float: right; text-align: left;">
<div style="height: 14mm; line-height: 14mm; margin-bottom: 5mm;">
<span>组长签字:</span>
<?php if (!empty($data['sign_img_url'])): ?>
<img src="<?php echo htmlspecialchars($data['sign_img_url']); ?>" style="height: 12mm; vertical-align: middle;">
<?php if (!empty($data['sign_imgs'][0])): ?>
<img src="<?php echo htmlspecialchars($data['sign_imgs'][0]); ?>" style="height: 12mm; vertical-align: middle;">
<?php else: ?>
<span style="display:inline-block; width:21mm; height:12mm; vertical-align: middle; border-bottom:0.2mm solid #000;"></span>
<?php endif; ?>
+5 -3
View File
@@ -129,9 +129,11 @@ class IndexController
// var_dump($res);
$param = $request->all();
try {
$service = new \app\crm\service\StockOrdersService();
$result = $service->createdPdfFile($param['id']);
return json($result);
// $service = new \app\crm\service\StockOrdersService();
// $result = $service->createdPdfFile($param['id']);
// return json($result);
\Webman\RedisQueue\Redis::send('stock-order-pdf', ['id'=>82]);
} catch (\Throwable $th) {
//throw $th;
var_dump($th->getMessage().$th->getLine().$th->getFile());
+12 -6
View File
@@ -56,10 +56,10 @@ class StockOrdersController extends BaseController
if (isset($data['created_at'])) $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']);
if (isset($data['updated_at'])) $data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']);
if (isset($data['eta_ship_date'])) $data['eta_ship_date'] = date('Y-m-d', $data['eta_ship_date']);
if (isset($data['biz_date'])) $data['biz_date'] = date('Y-m-d', $data['biz_date']);
if (isset($data['latest_arrival_date'])) $data['latest_arrival_date'] = date('Y-m-d', $data['latest_arrival_date']);
if (isset($data['pick_up_date'])) $data['pick_up_date'] = date('Y-m-d', $data['pick_up_date']);
if (isset($data['collect_all_date'])) $data['collect_all_date'] = date('Y-m-d', $data['collect_all_date']);
if (isset($data['biz_date']) && $data['biz_date'] > 0) $data['biz_date'] = date('Y-m-d', $data['biz_date']);
if (isset($data['latest_arrival_date']) && $data['latest_arrival_date'] > 0) $data['latest_arrival_date'] = date('Y-m-d', $data['latest_arrival_date']);
if (isset($data['pick_up_date']) && $data['pick_up_date'] > 0) $data['pick_up_date'] = date('Y-m-d', $data['pick_up_date']);
if (isset($data['collect_all_date']) && $data['collect_all_date'] > 0) $data['collect_all_date'] = date('Y-m-d', $data['collect_all_date']);
if (!empty($data['contract'])) {
$data['contract_url'] = (new \app\common\service\OssService)->generatePrivateUrl($data['contract']);
@@ -151,8 +151,8 @@ class StockOrdersController extends BaseController
{
try {
$raw = $this->service->serviceDetail($request);
$data = $this->transformData($raw, method_exists($this, 'printFormat')
? [$this, 'printFormat']
$data = $this->transformData($raw, method_exists($this, 'detailFormat')
? [$this, 'detailFormat']
: null);
return $this->success($data);
} catch (\Throwable $e) {
@@ -160,6 +160,12 @@ class StockOrdersController extends BaseController
}
}
protected function detailFormat($data)
{
// if (!isset($data['profit_total'])) $data['profit_total'] = 0.00;
return $data;
}
/**
* 启动审批
*/
+37 -5
View File
@@ -14,6 +14,8 @@ use app\common\model\User;
use support\exception\BusinessException;
use support\Db;
use support\Model;
use app\admin\model\ApprovalInstances;
use app\admin\model\ApprovalRecords;
class StockOrdersService
{
@@ -225,8 +227,8 @@ class StockOrdersService
$data['approval_status'] = $data['approval_status'] == 1 ? 1 : 0;
// if ($data['is_final'] == 1) {
$data['pick_up_date'] = strtotime($data['pick_up_date']);
$data['collect_all_date'] = strtotime($data['collect_all_date']);
$data['pick_up_date'] = $data['pick_up_date'] ? strtotime($data['pick_up_date']) : 0;
$data['collect_all_date'] = $data['collect_all_date'] ? strtotime($data['collect_all_date']) : 0;
// }
return $data;
}
@@ -577,7 +579,7 @@ class StockOrdersService
$vehList[$v->unique_id] = $vehListItem + $mv;
}
// var_dump($item->moneyValues);
$mvs = [];
foreach ($item->moneyValues as $moneys) {
$mvs[$moneys->field] = [
@@ -588,7 +590,7 @@ class StockOrdersService
// 'currency_info' => SysCurrency::where('currency_code', $money->currency)->value('currency_symbol'),
];
}
// var_dump($mvs);
$accList = [];
foreach ($item->accounts as $k => $v) {
$accList[] = [
@@ -642,13 +644,40 @@ class StockOrdersService
// 'cif_total_amount' => $cifTotalAmount,
// 'cif_total_amount_symbol' => $cifTotalAmountSymbol,
// 'profit' => number_format($totalProfit, 2, '.', ''),
'currency_symbol' => $item->settlement_currency // 假设利润使用相同货币
'currency_symbol' => $item->settlement_currency,
'sign_imgs' => $this->queryAppro($item->id),
'contract_url' => (!empty($item->contract)) ? (new \app\common\service\OssService)->generatePrivateUrl($item->contract) : ''
];
// var_dump($veh);
return $veh;
}
public function queryAppro($bizId)
{
$instances = ApprovalInstances::where('biz_id', $bizId)->where('biz_type', 'stock_orders')->first();
if (!$instances) {
return [];
}
$records = ApprovalRecords::where('instance_id', $instances->id)->where('action', 'approve')->orderBy('step_index', 'asc')->pluck('approver_id')->toArray();
if (count($records) == 0) {
return [];
}
$signImg = User::whereIn('id', $records)->pluck('sign_img')->toArray();
if (count($signImg) == 0) {
return [];
}
$signImgs = [];
foreach ($signImg as $k => $v) {
$signImgs[$k] = (!empty($v))?(new \app\common\service\OssService)->generatePrivateUrl($v):'';
}
return $signImgs;
}
/**
* 打印数据
*/
@@ -735,6 +764,9 @@ class StockOrdersService
$data['eta_ship_date'] = strtotime($data['eta_ship_date']);
$data['latest_arrival_date'] = strtotime($data['latest_arrival_date']);
$data['approval_status'] = $data['approval_status'] == 1 ? 1 : 0;
$data['pick_up_date'] = $data['pick_up_date'] ? strtotime($data['pick_up_date']) : 0;
$data['collect_all_date'] = $data['collect_all_date'] ? strtotime($data['collect_all_date']) : 0;
return $data;
}
+1 -1
View File
@@ -18,7 +18,7 @@ class StockOrderPdf implements Consumer
{
try {
$service = new \app\common\service\StockOrdersService();
$service = new \app\crm\service\StockOrdersService();
$service->createdPdfFile($data['id']);
return true;