From a3819bcba7b4ba3ec47d6d143c84c07f7fb46513 Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Thu, 30 Oct 2025 17:21:10 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=85=A5=E8=B4=A6=E8=B5=84=E6=96=99?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E6=A0=BC=E5=BC=8F=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/controller/FinPaymentApplyController.php | 9 +++++++-- app/common/model/FinReceiptHis.php | 2 +- app/common/service/FinPaymentApplyService.php | 11 ++++++----- app/process/Task.php | 9 ++------- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/common/controller/FinPaymentApplyController.php b/app/common/controller/FinPaymentApplyController.php index 6f29595..1db09d3 100644 --- a/app/common/controller/FinPaymentApplyController.php +++ b/app/common/controller/FinPaymentApplyController.php @@ -47,7 +47,7 @@ class FinPaymentApplyController extends BaseController if (isset($data['currency_id'])) //付款币种 $data['currency_name'] = SysCurrency::where('id', $data['currency_id'])->value('currency_name')??''; $OssService = new OssService(); - if (isset($data['submit_files'])){ + if (!empty($data['submit_files'])){ $data['submit_files'] = json_decode($data['submit_files'], true); foreach ($data['submit_files'] as $key => $value) { $data['submit_files'][$key] = [ @@ -56,6 +56,8 @@ class FinPaymentApplyController extends BaseController 'file_name' => $value['file_name'], ]; } + }else{ + $data['submit_files'] = []; } if (!empty($data['voucher_file'])) { $data['voucher_file_full'] = $OssService->generatePrivateUrl($data['voucher_file']); @@ -106,7 +108,7 @@ class FinPaymentApplyController extends BaseController if (isset($data['currency_id'])) //付款币种 $data['currency_name'] = SysCurrency::where('id', $data['currency_id'])->value('currency_name')??''; $OssService = new OssService(); - if (isset($data['submit_files'])){ + if (!empty($data['submit_files'])){ $data['submit_files'] = json_decode($data['submit_files'], true); foreach ($data['submit_files'] as $key => $value) { $data['submit_files'][$key] = [ @@ -115,7 +117,10 @@ class FinPaymentApplyController extends BaseController 'file_name' => $value['file_name'], ]; } + }else{ + $data['submit_files'] = []; } + if (!empty($data['voucher_file'])) { $data['voucher_file_full'] = $OssService->generatePrivateUrl($data['voucher_file']); } elseif (isset($data['voucher_file'])) { diff --git a/app/common/model/FinReceiptHis.php b/app/common/model/FinReceiptHis.php index 814b87f..8a036b3 100644 --- a/app/common/model/FinReceiptHis.php +++ b/app/common/model/FinReceiptHis.php @@ -40,7 +40,7 @@ class FinReceiptHis extends Model /** * 允许自动填充模型字段 */ - protected $fillable = ['id', 'receipt_id', 'receipt_no', 'payment_apply_id', 'country_id', 'remitter', 'account_id', 'currency_id', 'amount', 'discount_amount', 'total_amount_cny', 'exchange_rate', 'arrived_at', 'received_at', 'voucher_no', 'fx_receipt_file', 'is_domestic_return', 'created_by', 'updated_by', 'created_at', 'updated_at']; + protected $fillable = ['id', 'receipt_id', 'receipt_no', 'payment_apply_id', 'country_id', 'remitter', 'account_id', 'currency_id', 'amount', 'discount_amount', 'total_amount_cny', 'exchange_rate', 'arrived_at', 'received_at', 'voucher_no', 'fx_receipt_file', 'is_domestic_return', 'created_by', 'updated_by', 'claimed_by', 'created_at', 'updated_at']; /** * 不允许自动填充模型字段 diff --git a/app/common/service/FinPaymentApplyService.php b/app/common/service/FinPaymentApplyService.php index ce2bbfd..f5f9ed3 100644 --- a/app/common/service/FinPaymentApplyService.php +++ b/app/common/service/FinPaymentApplyService.php @@ -90,6 +90,8 @@ class FinPaymentApplyService $data['submit_files'] = json_encode($data['submit_files']); redis::set('stock_' . $data['doc_user_id'], json_encode($request->post('stock')), 'EX', 30); unset($data['stock']); + if($data['submit_files'] == '[]' || $data['submit_files'] == '{}' ) + $data['submit_files'] = ''; return $data; } @@ -113,6 +115,8 @@ class FinPaymentApplyService public function beforeServiceUpdate($data, Request $request) { $data['submit_files'] = json_encode($data['submit_files']); + if($data['submit_files'] == '[]' || $data['submit_files'] == '{}' ) + $data['submit_files'] = ''; return $data; } @@ -174,10 +178,9 @@ class FinPaymentApplyService // 入账资料超时 if (isset($param['scene']) && $param['scene'] == 'file_timeout') { + $where[] = ['submit_files', '']; $where[] = ['claimed_at', '<', time()-24*60*60]; $where[] = ['claimed_at', '>', 1]; - $orWhere[] = ['submit_files', '[]']; - $orWhere[] = ['submit_files', '']; } // 关键字 @@ -187,9 +190,7 @@ class FinPaymentApplyService } // 构建查询 - $query = $this->modelClass::where($where)->where(function($query) use ($orWhere) { - $query->orWhere($orWhere); - }); + $query = $this->modelClass::where($where); // 是否已关联收款记录的筛选 $correlation = $param['correlation']??''; diff --git a/app/process/Task.php b/app/process/Task.php index 7175244..cf526c6 100644 --- a/app/process/Task.php +++ b/app/process/Task.php @@ -46,18 +46,13 @@ class Task return; } Log::info('fin_payment_apply submit_files start', [time()]); - $orWhere = [ - ['submit_files', '=', '[]'], - ['submit_files', '=', ''], - ]; $where = [ + ['submit_files', '=', ''], ['warn', '<', 2], ['created_at', '>', time() - 60 * 60 * 48], ['created_at', '<', time() - 60 * 60 * 24], ]; - $payment = FinPaymentApply::where($where)->where(function($query) use ($orWhere) { - $query->orWhere($orWhere); - })->orderBy('id', 'desc')->get(); + $payment = FinPaymentApply::where($where)->orderBy('id', 'desc')->get(); foreach ($payment as $item) { Log::info('fin_payment_apply submit_files ', [$item->toArray()]); $notice = [ From 0110e393ce4a55468843c2bd8b0aeb9094f7ef0b Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Thu, 30 Oct 2025 17:38:40 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BB=98=E6=AC=BE=E5=8D=95=E5=85=B3?= =?UTF-8?q?=E8=81=94=E5=A4=87=E8=B4=A7=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/service/FinPaymentApplyService.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/common/service/FinPaymentApplyService.php b/app/common/service/FinPaymentApplyService.php index f5f9ed3..69fb4ce 100644 --- a/app/common/service/FinPaymentApplyService.php +++ b/app/common/service/FinPaymentApplyService.php @@ -114,6 +114,7 @@ class FinPaymentApplyService public function beforeServiceUpdate($data, Request $request) { + unset($data['stock']); $data['submit_files'] = json_encode($data['submit_files']); if($data['submit_files'] == '[]' || $data['submit_files'] == '{}' ) $data['submit_files'] = ''; From d73728128366ecf4f9d747fd05a4615271874a03 Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Thu, 30 Oct 2025 17:54:38 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B0=B4=E5=8D=95=E5=A4=9A=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FinPaymentApplyController.php | 33 ++++++++++++++----- .../controller/FinReceiptController.php | 33 +++++++++++++++---- app/common/service/FinPaymentApplyService.php | 6 ++++ app/common/service/FinReceiptService.php | 6 +++- 4 files changed, 62 insertions(+), 16 deletions(-) diff --git a/app/common/controller/FinPaymentApplyController.php b/app/common/controller/FinPaymentApplyController.php index 1db09d3..0939646 100644 --- a/app/common/controller/FinPaymentApplyController.php +++ b/app/common/controller/FinPaymentApplyController.php @@ -59,11 +59,20 @@ class FinPaymentApplyController extends BaseController }else{ $data['submit_files'] = []; } - if (!empty($data['voucher_file'])) { - $data['voucher_file_full'] = $OssService->generatePrivateUrl($data['voucher_file']); - } elseif (isset($data['voucher_file'])) { - $data['voucher_file_full'] = ''; + + if (!empty($data['voucher_file'])){ + $data['voucher_file'] = json_decode($data['voucher_file'], true); + foreach ($data['voucher_file'] as $key => $value) { + $data['voucher_file'][$key] = [ + 'file_src' => $value['file_src'], + 'file_full' => $OssService->generatePrivateUrl($value['file_src']), + 'file_name' => $value['file_name'], + ]; + } + }else{ + $data['voucher_file'] = []; } + if (isset($data['created_at'])) $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']); if (isset($data['updated_at'])) @@ -121,11 +130,19 @@ class FinPaymentApplyController extends BaseController $data['submit_files'] = []; } - if (!empty($data['voucher_file'])) { - $data['voucher_file_full'] = $OssService->generatePrivateUrl($data['voucher_file']); - } elseif (isset($data['voucher_file'])) { - $data['voucher_file_full'] = ''; + if (!empty($data['voucher_file'])){ + $data['voucher_file'] = json_decode($data['voucher_file'], true); + foreach ($data['voucher_file'] as $key => $value) { + $data['voucher_file'][$key] = [ + 'file_src' => $value['file_src'], + 'file_full' => $OssService->generatePrivateUrl($value['file_src']), + 'file_name' => $value['file_name'], + ]; + } + }else{ + $data['voucher_file'] = []; } + if (isset($data['created_at'])) $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']); if (isset($data['updated_at'])) diff --git a/app/common/controller/FinReceiptController.php b/app/common/controller/FinReceiptController.php index 4e9c574..cade259 100644 --- a/app/common/controller/FinReceiptController.php +++ b/app/common/controller/FinReceiptController.php @@ -97,10 +97,19 @@ class FinReceiptController extends BaseController $data['country_name'] = Country::where('id', $data['country_id'])->value('cn_addr')??''; if (isset($data['currency_id'])) //付款币种 $data['currency_name'] = SysCurrency::where('id', $data['currency_id'])->value('currency_name')??''; + + $OssService = new OssService(); if (!empty($data['fx_receipt_file'])){ - $data['fx_receipt_file_full'] = (new OssService)->generatePrivateUrl($data['fx_receipt_file']); - }elseif (isset($data['fx_receipt_file'])){ - $data['fx_receipt_file_full'] = ''; + $data['fx_receipt_file'] = json_decode($data['fx_receipt_file'], true); + foreach ($data['fx_receipt_file'] as $key => $value) { + $data['fx_receipt_file'][$key] = [ + 'file_src' => $value['file_src'], + 'file_full' => $OssService->generatePrivateUrl($value['file_src']), + 'file_name' => $value['file_name'], + ]; + } + }else{ + $data['fx_receipt_file'] = []; } return $data; } @@ -129,12 +138,22 @@ class FinReceiptController extends BaseController $data['country_name'] = Country::where('id', $data['country_id'])->value('cn_addr')??''; if (isset($data['currency_id'])) //付款币种 $data['currency_name'] = SysCurrency::where('id', $data['currency_id'])->value('currency_name')??''; - if (!empty($data['fx_receipt_file'])) { - $data['fx_receipt_file_full'] = (new OssService)->generatePrivateUrl($data['fx_receipt_file']); - } elseif (isset($data['fx_receipt_file'])) { - $data['fx_receipt_file_full'] = ''; + + $OssService = new OssService(); + if (!empty($data['fx_receipt_file'])){ + $data['fx_receipt_file'] = json_decode($data['fx_receipt_file'], true); + foreach ($data['fx_receipt_file'] as $key => $value) { + $data['fx_receipt_file'][$key] = [ + 'file_src' => $value['file_src'], + 'file_full' => $OssService->generatePrivateUrl($value['file_src']), + 'file_name' => $value['file_name'], + ]; + } + }else{ + $data['fx_receipt_file'] = []; } + //查询关联的付款记录 if (!empty($data['payment_apply_id'])) { $paymentApply = FinPaymentApply::where('id', $data['payment_apply_id'])->first(); if(!$paymentApply) diff --git a/app/common/service/FinPaymentApplyService.php b/app/common/service/FinPaymentApplyService.php index 69fb4ce..0f6bec7 100644 --- a/app/common/service/FinPaymentApplyService.php +++ b/app/common/service/FinPaymentApplyService.php @@ -87,9 +87,12 @@ class FinPaymentApplyService { $data['apply_no'] = $this->generateUniqueApplyNo(); $data['doc_user_id'] = $request->user->uid; + $data['voucher_file'] = json_encode($data['voucher_file']); $data['submit_files'] = json_encode($data['submit_files']); redis::set('stock_' . $data['doc_user_id'], json_encode($request->post('stock')), 'EX', 30); unset($data['stock']); + if($data['voucher_file'] == '[]' || $data['voucher_file'] == '{}' ) + $data['voucher_file'] = ''; if($data['submit_files'] == '[]' || $data['submit_files'] == '{}' ) $data['submit_files'] = ''; return $data; @@ -118,6 +121,9 @@ class FinPaymentApplyService $data['submit_files'] = json_encode($data['submit_files']); if($data['submit_files'] == '[]' || $data['submit_files'] == '{}' ) $data['submit_files'] = ''; + $data['voucher_file'] = json_encode($data['voucher_file']); + if($data['voucher_file'] == '[]' || $data['voucher_file'] == '{}' ) + $data['voucher_file'] = ''; return $data; } diff --git a/app/common/service/FinReceiptService.php b/app/common/service/FinReceiptService.php index be72fc9..f55ac9a 100644 --- a/app/common/service/FinReceiptService.php +++ b/app/common/service/FinReceiptService.php @@ -114,6 +114,8 @@ class FinReceiptService $data['arrived_at'] = strtotime( $data['arrived_at']); $data['created_by'] = $request->user->uid; $data['updated_by'] = $request->user->uid; + if($data['fx_receipt_file'] == '[]' || $data['fx_receipt_file'] == '{}' ) + $data['fx_receipt_file'] = ''; return $data; } @@ -132,7 +134,9 @@ class FinReceiptService $data['arrived_at'] = strtotime($data['arrived_at']); if(isset($data['received_at'])) $data['received_at'] = strtotime($data['received_at']); - + + if($data['fx_receipt_file'] == '[]' || $data['fx_receipt_file'] == '{}' ) + $data['fx_receipt_file'] = ''; return $data; } public function afterServiceUpdate($res)