From 16b0cd32e75a2cf20bc011f11addf4ce994c9f0e Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Wed, 15 Nov 2023 11:02:33 +0800 Subject: [PATCH 1/3] fixed --- .../logic/finance/VillageShareProfit.php | 8 ++--- app/common/logic/task/TaskLogic.php | 31 ++++++++++--------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/app/common/logic/finance/VillageShareProfit.php b/app/common/logic/finance/VillageShareProfit.php index 9ad50a6ef..48f415d95 100644 --- a/app/common/logic/finance/VillageShareProfit.php +++ b/app/common/logic/finance/VillageShareProfit.php @@ -121,7 +121,7 @@ class VillageShareProfit } } - public function dealVillageTaskSettlement3($taskInfo, $townCompany, $taskSchedulePlan, $leftTransactionPool) + public function dealVillageTaskSettlement3($taskInfo, $townCompany, $taskSchedulePlan) { try { Db::startTrans(); @@ -130,8 +130,6 @@ class VillageShareProfit (new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']); // 更改任务状态 Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3,'money' => $taskInfo['money']]); - // 更新镇交易池 - (new TaskTemplate())->updateTransactionPool($taskSchedulePlan['template_info']['id'], $leftTransactionPool); Db::commit(); return true; } catch (\Exception $e) { @@ -195,7 +193,7 @@ class VillageShareProfit } } - public function dealVillageTaskSettlement7(Task $taskInfo, Company $townCompany, $taskSchedulePlan) + public function dealVillageTaskSettlement7(Task $taskInfo, Company $townCompany, $taskSchedulePlan, $leftTransactionPool) { try { Db::startTrans(); @@ -204,6 +202,8 @@ class VillageShareProfit (new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']); // 更改任务状态 Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3,'money' => $taskInfo['money']]); + // 更新交易池 + (new TaskTemplate())->updateTransactionPool($taskSchedulePlan['template_info']['id'], $leftTransactionPool); Db::commit(); return true; } catch (\Exception $e) { diff --git a/app/common/logic/task/TaskLogic.php b/app/common/logic/task/TaskLogic.php index 5644a844c..9c9604f3c 100644 --- a/app/common/logic/task/TaskLogic.php +++ b/app/common/logic/task/TaskLogic.php @@ -2767,6 +2767,7 @@ class TaskLogic extends BaseLogic $villageCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find(); $task = Task::where('id', $taskSchedulePlan['task_id'])->find(); $groupServiceCompanyList = Company::where(['village' => $villageCompany['village'], 'company_type'=> 18, 'is_contract'=>1])->select()->toArray(); + $villageTransactionPool = $taskTemplateInfo['transaction_pool']; // 村交易池 $villageTotalTradeAmount = 0; // 村下属小组服务公司 每日实际总交易额 $targetAmount = 0; // 村下属小组服务公司每日 目标总交易额 @@ -2778,12 +2779,13 @@ class TaskLogic extends BaseLogic if ($tempTask) { $plan = TaskSchedulingPlan::where(['id'=>$tempTask['scheduling_plan_id']])->find(); if ($plan['is_pay'] == 1) { - $extend = json_decode($tempTask['extend'], true); + $extend = $tempTask['extend']; $targetAmount += $extend['transaction']['arr']['day_money']; $villageTotalTradeAmount += $extend['transaction']['arr']['total_price']; } } } + // 完成条件: 查村所属小组服务公司当日实际完成金额总和+村管理公司的资金池 > 查镇所属小组服务公司当日任务目标金额总和 if($targetAmount != 0 && bcadd($villageTransactionPool, $villageTotalTradeAmount, 2) >= bcmul($targetAmount, 0.8, 2)) { // 将余下金额放入镇交易池 @@ -2843,9 +2845,9 @@ class TaskLogic extends BaseLogic $target = $taskTemplateInfo['extend']['target']; $stageDayCount = bcadd($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['stage_day_two']); $villageCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find(); + $townCompany = Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(:street,responsible_area)", ['company_type' => 41,'street'=>$villageCompany['street']], true)[0]; $task = Task::where('id', $taskSchedulePlan['task_id'])->find(); - // 村地区码与村管理公司一样且在村管理公司负责小队中 - $groupServiceCompanyList = Company::where(['village' => $villageCompany['village'], 'company_type'=> 18, 'is_contract'=>1])->select()->toArray(); + // 任务累计天数 < 第一阶段+第二阶段 刷新任务 if ($dayCount < $stageDayCount) { @@ -2857,7 +2859,7 @@ class TaskLogic extends BaseLogic // 目标入股金额 $targetShareholderedMoney = bcmul($target, 3000, 2); // 小组服务股金上交金额 - $shareholderedMoney = Db::name('company_sharecapital_change_log')->where(['parent_company_id'=>$villageCompany['id']])->sum('amount'); + $shareholderedMoney = Db::name('company_sharecapital_change_log')->where(['parent_company_id'=>$townCompany['id']])->sum('amount'); $rate = bcdiv($shareholderedMoney, $targetShareholderedMoney, 2); if (bccomp($rate, 0.5, 2) == -1) { @@ -2932,12 +2934,10 @@ class TaskLogic extends BaseLogic foreach ($groupServiceCompanyList as $company) { $companyIds[] = $company['id']; } - // 已入股股金总额 - $shareholderedMoney = CompanyAccountLog::where(['change_object'=>CompanyAccountLog::SHAREHOLDER, 'change_type'=>CompanyAccountLog::TASK_INC_SHAREHOLDER_MONEY]) - ->whereIn('company_id', $companyIds) - ->sum('change_amount'); - - $targetShareholderedMoney = bcadd(bcmul($target, 3000), 6000); // 小组应组建团队数量*3000 + 村 6000 + // 小组服务和村公司股金上交金额 + $shareholderedMoney = Db::name('company_sharecapital_change_log')->whereIn('subordinate_company_id', $companyIds)->where(['parent_company_id'=>$villageCompany['id']])->sum('amount'); + // 目标上交股金金额 小组应组建团队数量*3000 + 村 6000 + $targetShareholderedMoney = bcadd(bcmul($target, 3000), 6000); $rate = bcdiv($shareholderedMoney, $targetShareholderedMoney, 2); $totalMoney = bcadd(bcmul($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['money'], 2), bcmul($taskTemplateInfo['stage_day_two'], $taskTemplateInfo['money_two'], 2), 2) ; $task['money'] = self::countSettelmentMoney($rate, $totalMoney); @@ -2993,7 +2993,7 @@ class TaskLogic extends BaseLogic // 任务累计天数 = stage1 从商城查询种养殖商户的交易额,判定是否完成任务,完成则结算 if ($dayCount == $stageDayOne) { - $startTime = strtotime(date('Y-m-d',strtotime($taskTemplateInfo['create_time'])))+86400; + $startTime = strtotime(date('Y-m-d',strtotime($taskTemplateInfo['create_time'])))+86400; // 创建任务的第二天00:00:00开始 $endTime = strtotime('+30 day', $startTime); self::finishVillageTask7($startTime, $endTime, 13000, $taskTemplateInfo['stage_day_one'], $taskTemplateInfo['money'], $villageCompany, $taskSchedulePlan); } @@ -3054,10 +3054,13 @@ class TaskLogic extends BaseLogic ]; $result = ShopRequestLogic::getPlantingAndBreedingMerchantTradeAmount($param); // todo 商城接口那边需要确定种养殖基地是何种类型的商户 $tradeAmount = $result['data']['procure_amount']; - - if ($tradeAmount >= $targetAmount) { + // 交易池 + $transactionPool = $taskSchedulePlan['template_info']['transaction_pool']; + $totalTradeAmount = bcadd($transactionPool, $tradeAmount, 2); + if ($totalTradeAmount >= $targetAmount) { $task['money'] = bcmul($dayNum, $perMoney, 2); - (new VillageShareProfit())->dealVillageTaskSettlement7($task, $villageCompany, $taskSchedulePlan); + $leftTransactionPool = bcsub($totalTradeAmount, $targetAmount, 2); + (new VillageShareProfit())->dealVillageTaskSettlement7($task, $villageCompany, $taskSchedulePlan, $leftTransactionPool); } } From 7761d9f08f11b4e3a9a8db6c796837fd16f8a685 Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Wed, 15 Nov 2023 13:50:18 +0800 Subject: [PATCH 2/3] =?UTF-8?q?add=20=E5=B0=8F=E7=BB=84=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=9B=A2=E9=98=9F-=E5=85=A5=E8=82=A1=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/TaskController.php | 33 +++++++++++++++++++++++++++ app/common/model/Approve.php | 1 + 2 files changed, 34 insertions(+) diff --git a/app/api/controller/TaskController.php b/app/api/controller/TaskController.php index 12350fea7..5da7d0231 100644 --- a/app/api/controller/TaskController.php +++ b/app/api/controller/TaskController.php @@ -713,4 +713,37 @@ class TaskController extends BaseApiController return $this->fail($e->getMessage()); } } + + public function commit_service_group_task() + { + try { + $parmas = $this->request->param(); // id annex + $task = TaskLogic::detail($parmas); + if (empty($task)) { + $this->fail('任务不存在'); + } + $extend = ['is_commit'=>1, 'annex'=>$parmas['annex']]; + + Task::where(['id' => $parmas['id']])->update(['extend' => json_encode($extend), 'update_time' => time(), 'director_uid' => $this->userId]); // director_uid 指派人 + + // 创建审批任务 + $approveModel = new Approve(); + $approveModel->type = Approve::APPROVE_TYPE_10; + $approveModel->flow_id = 1; + $approveModel->name = $task['title']; + $approveModel->admin_id = 0; // 后台发起人id 暂时为0 + $approveModel->user_id = $this->userId; // 前台发起人用户id + $approveModel->task_id = $task['id']; // 任务id + $approveModel->department_id = '0'; + $approveModel->check_status = 1; // 状态 0待审核,1审核中,2审核通过,3审核不通过,4撤销审核 + $approveModel->other_type = 6; + $approveModel->extend = json_encode($extend); + $approveModel->create_time = time(); + $approveModel->update_time = time(); + $re = $approveModel->save(); + return $this->success('ok', []); + } catch (Exception $e) { + return $this->fail($e->getMessage()); + } + } } diff --git a/app/common/model/Approve.php b/app/common/model/Approve.php index eb27e92fa..272ed0b92 100644 --- a/app/common/model/Approve.php +++ b/app/common/model/Approve.php @@ -23,6 +23,7 @@ class Approve extends BaseModel const APPROVE_TYPE_8 = 8; // 镇农科负责人任务-政策补贴申请 const APPROVE_TYPE_9 = 9; // 镇农科负责人任务-日常管理及其他临时任务 + const APPROVE_TYPE_10 = 10; // 小组团队任务-入股任务 public function task() { From 880d4ef27ad06276ea3905f2034687e6fbe49d4f Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Wed, 15 Nov 2023 15:16:37 +0800 Subject: [PATCH 3/3] =?UTF-8?q?add=20=E5=B0=8F=E7=BB=84=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=9B=A2=E9=98=9F-=E5=85=A5=E8=82=A1=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/TaskController.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/api/controller/TaskController.php b/app/api/controller/TaskController.php index 5da7d0231..0ff6f3207 100644 --- a/app/api/controller/TaskController.php +++ b/app/api/controller/TaskController.php @@ -717,12 +717,12 @@ class TaskController extends BaseApiController public function commit_service_group_task() { try { - $parmas = $this->request->param(); // id annex + $parmas = $this->request->param(); // id annex amount $task = TaskLogic::detail($parmas); if (empty($task)) { $this->fail('任务不存在'); } - $extend = ['is_commit'=>1, 'annex'=>$parmas['annex']]; + $extend = ['is_commit'=>1, 'annex'=>$parmas['annex'], 'amount'=>$parmas['amount']]; Task::where(['id' => $parmas['id']])->update(['extend' => json_encode($extend), 'update_time' => time(), 'director_uid' => $this->userId]); // director_uid 指派人 @@ -734,9 +734,10 @@ class TaskController extends BaseApiController $approveModel->admin_id = 0; // 后台发起人id 暂时为0 $approveModel->user_id = $this->userId; // 前台发起人用户id $approveModel->task_id = $task['id']; // 任务id - $approveModel->department_id = '0'; + $approveModel->department_id = $this->userInfo['company_id']; // 公司id $approveModel->check_status = 1; // 状态 0待审核,1审核中,2审核通过,3审核不通过,4撤销审核 $approveModel->other_type = 6; + $approveModel->amount = $parmas['amount']; // 入股金额 $approveModel->extend = json_encode($extend); $approveModel->create_time = time(); $approveModel->update_time = time();