增加审批签名
This commit is contained in:
@@ -129,6 +129,11 @@ class ApprovalFlowService
|
|||||||
'updated_at' => $now,
|
'updated_at' => $now,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
// 异步生成pdf文件 9.11 add
|
||||||
|
if ($action === 'approve') {
|
||||||
|
\Webman\RedisQueue\Redis::send('stock-order-pdf', ['id'=>$instance->biz_id]);
|
||||||
|
}
|
||||||
|
|
||||||
// 2) 聚合本步结论(any / all)
|
// 2) 聚合本步结论(any / all)
|
||||||
$typeRaw = strtolower($step['type'] ?? 'all');
|
$typeRaw = strtolower($step['type'] ?? 'all');
|
||||||
$type = in_array($typeRaw, ['any','all']) ? $typeRaw : 'all';
|
$type = in_array($typeRaw, ['any','all']) ? $typeRaw : 'all';
|
||||||
|
|||||||
@@ -275,8 +275,8 @@
|
|||||||
|
|
||||||
<div style="height: 14mm; line-height: 14mm;">
|
<div style="height: 14mm; line-height: 14mm;">
|
||||||
<span>备发货负责人签字:</span>
|
<span>备发货负责人签字:</span>
|
||||||
<?php if (!empty($data['sign_img_url'])): ?>
|
<?php if (!empty($data['sign_imgs'][1])): ?>
|
||||||
<img src="<?php echo htmlspecialchars($data['sign_img_url']); ?>" style="height: 12mm; vertical-align: middle;">
|
<img src="<?php echo htmlspecialchars($data['sign_imgs'][1]); ?>" style="height: 12mm; vertical-align: middle;">
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<span style="display:inline-block; width:21mm; height:12mm; vertical-align: middle; border-bottom:0.2mm solid #000;"></span>
|
<span style="display:inline-block; width:21mm; height:12mm; vertical-align: middle; border-bottom:0.2mm solid #000;"></span>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
@@ -287,8 +287,8 @@
|
|||||||
<div style="width: 50%; float: right; text-align: left;">
|
<div style="width: 50%; float: right; text-align: left;">
|
||||||
<div style="height: 14mm; line-height: 14mm; margin-bottom: 5mm;">
|
<div style="height: 14mm; line-height: 14mm; margin-bottom: 5mm;">
|
||||||
<span>组长签字:</span>
|
<span>组长签字:</span>
|
||||||
<?php if (!empty($data['sign_img_url'])): ?>
|
<?php if (!empty($data['sign_imgs'][0])): ?>
|
||||||
<img src="<?php echo htmlspecialchars($data['sign_img_url']); ?>" style="height: 12mm; vertical-align: middle;">
|
<img src="<?php echo htmlspecialchars($data['sign_imgs'][0]); ?>" style="height: 12mm; vertical-align: middle;">
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<span style="display:inline-block; width:21mm; height:12mm; vertical-align: middle; border-bottom:0.2mm solid #000;"></span>
|
<span style="display:inline-block; width:21mm; height:12mm; vertical-align: middle; border-bottom:0.2mm solid #000;"></span>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|||||||
@@ -129,9 +129,11 @@ class IndexController
|
|||||||
// var_dump($res);
|
// var_dump($res);
|
||||||
$param = $request->all();
|
$param = $request->all();
|
||||||
try {
|
try {
|
||||||
$service = new \app\crm\service\StockOrdersService();
|
// $service = new \app\crm\service\StockOrdersService();
|
||||||
$result = $service->createdPdfFile($param['id']);
|
// $result = $service->createdPdfFile($param['id']);
|
||||||
return json($result);
|
// return json($result);
|
||||||
|
|
||||||
|
\Webman\RedisQueue\Redis::send('stock-order-pdf', ['id'=>82]);
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
//throw $th;
|
//throw $th;
|
||||||
var_dump($th->getMessage().$th->getLine().$th->getFile());
|
var_dump($th->getMessage().$th->getLine().$th->getFile());
|
||||||
|
|||||||
@@ -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['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['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['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['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'] = date('Y-m-d', $data['latest_arrival_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'] = date('Y-m-d', $data['pick_up_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'] = date('Y-m-d', $data['collect_all_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'])) {
|
if (!empty($data['contract'])) {
|
||||||
$data['contract_url'] = (new \app\common\service\OssService)->generatePrivateUrl($data['contract']);
|
$data['contract_url'] = (new \app\common\service\OssService)->generatePrivateUrl($data['contract']);
|
||||||
@@ -151,8 +151,8 @@ class StockOrdersController extends BaseController
|
|||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$raw = $this->service->serviceDetail($request);
|
$raw = $this->service->serviceDetail($request);
|
||||||
$data = $this->transformData($raw, method_exists($this, 'printFormat')
|
$data = $this->transformData($raw, method_exists($this, 'detailFormat')
|
||||||
? [$this, 'printFormat']
|
? [$this, 'detailFormat']
|
||||||
: null);
|
: null);
|
||||||
return $this->success($data);
|
return $this->success($data);
|
||||||
} catch (\Throwable $e) {
|
} 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;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 启动审批
|
* 启动审批
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ use app\common\model\User;
|
|||||||
use support\exception\BusinessException;
|
use support\exception\BusinessException;
|
||||||
use support\Db;
|
use support\Db;
|
||||||
use support\Model;
|
use support\Model;
|
||||||
|
use app\admin\model\ApprovalInstances;
|
||||||
|
use app\admin\model\ApprovalRecords;
|
||||||
|
|
||||||
class StockOrdersService
|
class StockOrdersService
|
||||||
{
|
{
|
||||||
@@ -225,8 +227,8 @@ class StockOrdersService
|
|||||||
$data['approval_status'] = $data['approval_status'] == 1 ? 1 : 0;
|
$data['approval_status'] = $data['approval_status'] == 1 ? 1 : 0;
|
||||||
|
|
||||||
// if ($data['is_final'] == 1) {
|
// if ($data['is_final'] == 1) {
|
||||||
$data['pick_up_date'] = strtotime($data['pick_up_date']);
|
$data['pick_up_date'] = $data['pick_up_date'] ? strtotime($data['pick_up_date']) : 0;
|
||||||
$data['collect_all_date'] = strtotime($data['collect_all_date']);
|
$data['collect_all_date'] = $data['collect_all_date'] ? strtotime($data['collect_all_date']) : 0;
|
||||||
// }
|
// }
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
@@ -577,7 +579,7 @@ class StockOrdersService
|
|||||||
|
|
||||||
$vehList[$v->unique_id] = $vehListItem + $mv;
|
$vehList[$v->unique_id] = $vehListItem + $mv;
|
||||||
}
|
}
|
||||||
// var_dump($item->moneyValues);
|
|
||||||
$mvs = [];
|
$mvs = [];
|
||||||
foreach ($item->moneyValues as $moneys) {
|
foreach ($item->moneyValues as $moneys) {
|
||||||
$mvs[$moneys->field] = [
|
$mvs[$moneys->field] = [
|
||||||
@@ -588,7 +590,7 @@ class StockOrdersService
|
|||||||
// 'currency_info' => SysCurrency::where('currency_code', $money->currency)->value('currency_symbol'),
|
// 'currency_info' => SysCurrency::where('currency_code', $money->currency)->value('currency_symbol'),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
// var_dump($mvs);
|
|
||||||
$accList = [];
|
$accList = [];
|
||||||
foreach ($item->accounts as $k => $v) {
|
foreach ($item->accounts as $k => $v) {
|
||||||
$accList[] = [
|
$accList[] = [
|
||||||
@@ -642,13 +644,40 @@ class StockOrdersService
|
|||||||
// 'cif_total_amount' => $cifTotalAmount,
|
// 'cif_total_amount' => $cifTotalAmount,
|
||||||
// 'cif_total_amount_symbol' => $cifTotalAmountSymbol,
|
// 'cif_total_amount_symbol' => $cifTotalAmountSymbol,
|
||||||
// 'profit' => number_format($totalProfit, 2, '.', ''),
|
// '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);
|
// var_dump($veh);
|
||||||
return $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['eta_ship_date'] = strtotime($data['eta_ship_date']);
|
||||||
$data['latest_arrival_date'] = strtotime($data['latest_arrival_date']);
|
$data['latest_arrival_date'] = strtotime($data['latest_arrival_date']);
|
||||||
$data['approval_status'] = $data['approval_status'] == 1 ? 1 : 0;
|
$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;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ class StockOrderPdf implements Consumer
|
|||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$service = new \app\common\service\StockOrdersService();
|
$service = new \app\crm\service\StockOrdersService();
|
||||||
$service->createdPdfFile($data['id']);
|
$service->createdPdfFile($data['id']);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user