This commit is contained in:
weiz 2024-04-06 13:59:55 +08:00
parent 905d518cd0
commit fcf8024b7e
7 changed files with 405 additions and 403 deletions

View File

@ -20,10 +20,10 @@
use app\adminapi\lists\financial\FinancialBudgetDocLists;
use app\adminapi\logic\financial\FinancialBudgetDocLogic;
use app\adminapi\validate\financial\FinancialBudgetDocValidate;
use app\common\model\cost_project\CostApprovedProject;
use app\common\model\financial\FinancialBudgetDoc;
use app\common\model\financial\FinancialDepartmentIncomeSettlement;
use app\common\model\financial\FinancialDepartmentIncomeSettlementDetail;
use app\common\model\marketing\MarketingContract;
/**
@ -138,9 +138,9 @@
->page($page_no, $page_size)
->order('id desc')
->select()->each(function ($data) {
$contract = CostApprovedProject::field('contract_name,money')->where('id', $data['contract_id'])->findOrEmpty();
$contract = MarketingContract::field('contract_name,signed_amount')->where('id', $data['contract_id'])->findOrEmpty();
$data['contract_name'] = $contract['contract_name'];
$data['money'] = $contract['money'];
$data['money'] = $contract['signed_amount'];
$financial_department_income_settlement_ids = FinancialDepartmentIncomeSettlement::where('budget_doc_id', $data['id'])->column('id');
//分成金额合计
$data['amount'] = FinancialDepartmentIncomeSettlementDetail::where('department_income_settlement_id', 'in', $financial_department_income_settlement_ids)->sum('amount');

View File

@ -17,9 +17,10 @@ namespace app\adminapi\lists\task;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\lists\ListsExcelInterface;
use app\common\model\cost_project\CostApprovedProject;
use app\common\model\task\TaskAllocation;
use app\common\lists\ListsSearchInterface;
use app\common\model\auth\Admin;
use app\common\model\marketing\MarketingContract;
use app\common\model\task\TaskAllocation;
/**
@ -60,8 +61,9 @@ class TaskAllocationLists extends BaseAdminDataLists implements ListsSearchInter
->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
->select()->each(function ($data) {
$contract = CostApprovedProject::field('project_director')->where('id',$data['projectInfo']['contract_id'])->findOrEmpty();
$data['project_director'] = $contract['project_director'];
$contract = MarketingContract::field('project_manager')->where('id', $data['projectInfo']['contract_id'])->findOrEmpty();
$admin = Admin::field('name')->where('id', $contract['project_manager'])->findOrEmpty();
$data['project_director'] = $admin['name'];
})
->toArray();
}

View File

@ -15,10 +15,11 @@
namespace app\adminapi\logic;
use app\common\model\cost_project\CostApprovedProject;
use app\common\model\cost_project\CostProject;
use app\common\model\ProjectCommission;
use app\common\logic\BaseLogic;
use app\common\model\auth\Admin;
use app\common\model\cost_project\CostProject;
use app\common\model\marketing\MarketingContract;
use app\common\model\ProjectCommission;
use app\common\model\ProjectCommissionDetail;
use app\common\model\zjzx_finance\ZjzxRefund;
use think\facade\Db;
@ -33,43 +34,6 @@ class ProjectCommissionLogic extends BaseLogic
{
/**
* @notes 添加
* @param array $params
* @return bool
* @author likeadmin
* @date 2024/02/23 09:37
*/
public static function add(array $params): bool
{
Db::startTrans();
try {
$projectCommission = ProjectCommission::create([
'dataid' => generate_sn(ProjectCommission::class,'dataid'),
'num' => generate_sn(ProjectCommission::class,'num'),
'project_id' => $params['project_id'],
'rate' => $params['rate'],
'bczfze' => $params['bczfze'],
'djr' => $params['djr'],
'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0,
'remark' => $params['remark'] ?? '',
]);
if(!empty($params['project_commission_detail'])){
foreach ($params['project_commission_detail'] as $item) {
$item['project_commission_id'] = $projectCommission->id;
ProjectCommissionDetailLogic::add($item);
}
}
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 编辑
* @param array $params
@ -109,6 +73,41 @@ class ProjectCommissionLogic extends BaseLogic
}
}
/**
* @notes 添加
* @param array $params
* @return bool
* @author likeadmin
* @date 2024/02/23 09:37
*/
public static function add(array $params): bool
{
Db::startTrans();
try {
$projectCommission = ProjectCommission::create([
'dataid' => generate_sn(ProjectCommission::class, 'dataid'),
'num' => generate_sn(ProjectCommission::class, 'num'),
'project_id' => $params['project_id'],
'rate' => $params['rate'],
'bczfze' => $params['bczfze'],
'djr' => $params['djr'],
'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0,
'remark' => $params['remark'] ?? '',
]);
if (!empty($params['project_commission_detail'])) {
foreach ($params['project_commission_detail'] as $item) {
$item['project_commission_id'] = $projectCommission->id;
ProjectCommissionDetailLogic::add($item);
}
}
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 删除
@ -139,12 +138,13 @@ class ProjectCommissionLogic extends BaseLogic
{
$data = ProjectCommission::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id'])->toArray();
$project = CostProject::field('project_name,project_num,contract_id')->where('id', $data['project_id'])->findOrEmpty();
$contract = CostApprovedProject::field('contract_name,project_director,industry_nature')->where('id',$project['contract_id'])->findOrEmpty();
$contract = MarketingContract::field('contract_name,project_manager,industry_nature')->where('id', $project['contract_id'])->findOrEmpty();
$admin = Admin::field('name')->where('id', $contract['project_manager'])->findOrEmpty();
$data['project_name'] = $project['project_name'];
$data['project_num'] = $project['project_num'];
$data['contract_name'] = $contract['contract_name'];
$data['project_director'] = $contract['project_director'];
$data['industry_nature_text'] = $contract->industry_nature_text;
$data['project_director'] = $admin['name'];
$data['industry_nature_text'] = !$contract->isEmpty() ? $contract->industry_nature_text : '';
$data['industry_nature'] = (string)$contract['industry_nature'];
//到账金额
$data['total_refund_amount'] = ZjzxRefund::where('project_id', $data['project_id'])->sum('amount');

View File

@ -17,13 +17,13 @@
use app\common\logic\BaseLogic;
use app\common\model\ApprovalIssuanceAchievementDocuments;
use app\common\model\cost_project\CostApprovedProject;
use app\common\model\cost_project\CostProject;
use app\common\model\cost_project\CostProjectPerson;
use app\common\model\DataReception;
use app\common\model\dept\Dept;
use app\common\model\GeoCity;
use app\common\model\GeoProvince;
use app\common\model\marketing\MarketingContract;
use app\common\model\project_process_management\ApplyWithSeal;
use app\common\model\project_process_management\JianliProjectProgressReport;
use app\common\model\project_process_management\ProjectChangeVisa;
@ -87,7 +87,7 @@
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]);
if ($params['contract_id'] > 0) {
CostApprovedProject::where('id', $params['contract_id'])->update(['status' => 2]);
MarketingContract::where('id', $params['contract_id'])->update(['status' => 2]);
}
Db::commit();
return true;

View File

@ -16,9 +16,10 @@ namespace app\adminapi\logic\task;
use app\adminapi\logic\TaskDetailLogic;
use app\common\model\cost_project\CostApprovedProject;
use app\common\model\task\TaskAllocation;
use app\common\logic\BaseLogic;
use app\common\model\auth\Admin;
use app\common\model\marketing\MarketingContract;
use app\common\model\task\TaskAllocation;
use app\common\model\task\TaskType;
use app\common\model\TaskDetail;
use think\facade\Db;
@ -33,52 +34,6 @@ class TaskAllocationLogic extends BaseLogic
{
/**
* @notes 添加
* @param array $params
* @return bool
* @author likeadmin
* @date 2024/02/22 10:47
*/
public static function add(array $params): bool
{
// 项目id关联任务类别
$projectId = $params['project_id'];
// 任务
$taskType = TaskType::where('cost_project_id', $projectId)->findOrEmpty();
if ($taskType->isEmpty()) {
self::setError('项目未配置任务类别');
return false;
}
Db::startTrans();
try {
// 任务分配
$taskAllocation = TaskAllocation::create([
'dataid' => generate_sn(TaskAllocation::class, 'dataid'),
'num' => generate_sn(TaskAllocation::class, 'num'),
'task_type_id' => $taskType['id'], // 任务类别id
'cost_project_id' => $taskType['cost_project_id'], // 项目id
'apptime' => $params['apptime'],
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]);
// 任务明细
if(!empty($params['task_detail'])){
foreach ($params['task_detail'] as $item) {
$item['task_allocation_id'] = $taskAllocation->id;
$item['task_type_id'] = $taskType['id'];
TaskDetailLogic::add($item);
}
}
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 编辑
* @param array $params
@ -125,6 +80,50 @@ class TaskAllocationLogic extends BaseLogic
}
}
/**
* @notes 添加
* @param array $params
* @return bool
* @author likeadmin
* @date 2024/02/22 10:47
*/
public static function add(array $params): bool
{
// 项目id关联任务类别
$projectId = $params['project_id'];
// 任务
$taskType = TaskType::where('cost_project_id', $projectId)->findOrEmpty();
if ($taskType->isEmpty()) {
self::setError('项目未配置任务类别');
return false;
}
Db::startTrans();
try {
// 任务分配
$taskAllocation = TaskAllocation::create([
'dataid' => generate_sn(TaskAllocation::class, 'dataid'),
'num' => generate_sn(TaskAllocation::class, 'num'),
'task_type_id' => $taskType['id'], // 任务类别id
'cost_project_id' => $taskType['cost_project_id'], // 项目id
'apptime' => $params['apptime'],
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]);
// 任务明细
if (!empty($params['task_detail'])) {
foreach ($params['task_detail'] as $item) {
$item['task_allocation_id'] = $taskAllocation->id;
$item['task_type_id'] = $taskType['id'];
TaskDetailLogic::add($item);
}
}
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 删除
@ -154,8 +153,9 @@ class TaskAllocationLogic extends BaseLogic
public static function detail($params): array
{
$data = TaskAllocation::with(['taskTypeInfo', 'projectInfo'])->findOrEmpty($params['id'])->toArray();
$contract = CostApprovedProject::field('project_director')->where('id',$data['projectInfo']['contract_id'])->findOrEmpty();
$data['project_director'] = $contract['project_director'];
$contract = MarketingContract::field('project_manager')->where('id', $data['projectInfo']['contract_id'])->findOrEmpty();
$admin = Admin::field('name')->where('id', $contract['project_manager'])->findOrEmpty();
$data['project_director'] = $admin['name'];
$data['task_detail'] = TaskDetail::where('task_allocation_id', $data['id'])->select()->each(function ($item) {
$taskTypeInfo = TaskType::findOrEmpty($item['task_type_id'])->toArray();
$item['task_name'] = $taskTypeInfo['name'];

View File

@ -3,8 +3,8 @@
namespace app\adminapi\logic\zjzx_finance;
use app\common\logic\BaseLogic;
use app\common\model\cost_project\CostApprovedProject;
use app\common\model\cost_project\CostProject;
use app\common\model\marketing\MarketingContract;
use app\common\model\marketing\MarketingCustom;
use app\common\model\zjzx_finance\ZjzxInvoice;
use app\common\model\zjzx_finance\ZjzxRefund;
@ -105,7 +105,7 @@
{
$data = ZjzxRefund::withoutField('update_time,delete_time')->findOrEmpty($params['id']);
$project = CostProject::field('project_num,project_name,contract_id')->where('id', $data['project_id'])->findOrEmpty();
$contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty();
$contract = MarketingContract::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty();
$invoice = ZjzxInvoice::field('invoice_code,apply_amount')->where('id', $data['invoice_id'])->findOrEmpty();
$part_a = MarketingCustom::field('name')->where('id', $contract['part_a'])->findOrEmpty();
$data['project_num'] = $project['project_num'];

View File

@ -3,8 +3,8 @@
namespace app\adminapi\logic\zjzx_finance;
use app\common\logic\BaseLogic;
use app\common\model\cost_project\CostApprovedProject;
use app\common\model\cost_project\CostProject;
use app\common\model\marketing\MarketingContract;
use app\common\model\marketing\MarketingCustom;
use app\common\model\zjzx_finance\ZjzxInvoice;
use app\common\model\zjzx_finance\ZjzxRefund;
@ -101,7 +101,7 @@
{
$data = ZjzxSettlement::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id']);
$project = CostProject::field('project_num,project_name,contract_id')->where('id', $data['project_id'])->findOrEmpty();
$contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty();
$contract = MarketingContract::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty();
$part_a = MarketingCustom::field('name')->where('id', $contract['part_a'])->findOrEmpty();
$data['invoice_type_text'] = $data->invoice_type_text;
$data['project_num'] = $project['project_num'];