diff --git a/app/common/utils/approval/service/ApprovalFlowService.php b/app/common/utils/approval/service/ApprovalFlowService.php index 9916b6e..b3bc2e9 100644 --- a/app/common/utils/approval/service/ApprovalFlowService.php +++ b/app/common/utils/approval/service/ApprovalFlowService.php @@ -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'; diff --git a/app/common/utils/pdf/template/stockOrder.stub b/app/common/utils/pdf/template/stockOrder.stub index 7553946..a11bfa1 100644 --- a/app/common/utils/pdf/template/stockOrder.stub +++ b/app/common/utils/pdf/template/stockOrder.stub @@ -275,8 +275,8 @@
备发货负责人签字: - - + + @@ -287,8 +287,8 @@
组长签字: - - + + diff --git a/app/controller/IndexController.php b/app/controller/IndexController.php index b755f5b..9779886 100644 --- a/app/controller/IndexController.php +++ b/app/controller/IndexController.php @@ -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()); diff --git a/app/crm/controller/StockOrdersController.php b/app/crm/controller/StockOrdersController.php index 8efa6be..b4d2034 100644 --- a/app/crm/controller/StockOrdersController.php +++ b/app/crm/controller/StockOrdersController.php @@ -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,14 +151,20 @@ 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) { return $this->error($e->getMessage()); } } + + protected function detailFormat($data) + { + // if (!isset($data['profit_total'])) $data['profit_total'] = 0.00; + return $data; + } /** * 启动审批 diff --git a/app/crm/service/StockOrdersService.php b/app/crm/service/StockOrdersService.php index b29213f..ed08fef 100644 --- a/app/crm/service/StockOrdersService.php +++ b/app/crm/service/StockOrdersService.php @@ -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; } diff --git a/app/queue/redis/StockOrderPdf.php b/app/queue/redis/StockOrderPdf.php index 5c75a7e..057a761 100644 --- a/app/queue/redis/StockOrderPdf.php +++ b/app/queue/redis/StockOrderPdf.php @@ -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;