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\lists\financial\FinancialBudgetDocLists;
use app\adminapi\logic\financial\FinancialBudgetDocLogic; use app\adminapi\logic\financial\FinancialBudgetDocLogic;
use app\adminapi\validate\financial\FinancialBudgetDocValidate; use app\adminapi\validate\financial\FinancialBudgetDocValidate;
use app\common\model\cost_project\CostApprovedProject;
use app\common\model\financial\FinancialBudgetDoc; use app\common\model\financial\FinancialBudgetDoc;
use app\common\model\financial\FinancialDepartmentIncomeSettlement; use app\common\model\financial\FinancialDepartmentIncomeSettlement;
use app\common\model\financial\FinancialDepartmentIncomeSettlementDetail; use app\common\model\financial\FinancialDepartmentIncomeSettlementDetail;
use app\common\model\marketing\MarketingContract;
/** /**
@ -138,9 +138,9 @@
->page($page_no, $page_size) ->page($page_no, $page_size)
->order('id desc') ->order('id desc')
->select()->each(function ($data) { ->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['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'); $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'); $data['amount'] = FinancialDepartmentIncomeSettlementDetail::where('department_income_settlement_id', 'in', $financial_department_income_settlement_ids)->sum('amount');

View File

@ -11,92 +11,94 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | author: likeadminTeam // | author: likeadminTeam
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\adminapi\lists\task; namespace app\adminapi\lists\task;
use app\adminapi\lists\BaseAdminDataLists; use app\adminapi\lists\BaseAdminDataLists;
use app\common\lists\ListsExcelInterface; use app\common\lists\ListsExcelInterface;
use app\common\model\cost_project\CostApprovedProject; use app\common\lists\ListsSearchInterface;
use app\common\model\task\TaskAllocation; use app\common\model\auth\Admin;
use app\common\lists\ListsSearchInterface; use app\common\model\marketing\MarketingContract;
use app\common\model\task\TaskAllocation;
/**
* TaskAllocation列表 /**
* Class TaskAllocationLists * TaskAllocation列表
* @package app\adminapi\liststask * Class TaskAllocationLists
*/ * @package app\adminapi\liststask
class TaskAllocationLists extends BaseAdminDataLists implements ListsSearchInterface,ListsExcelInterface */
{ class TaskAllocationLists extends BaseAdminDataLists implements ListsSearchInterface, ListsExcelInterface
{
/**
* @notes 设置搜索条件 /**
* @return \string[][] * @notes 设置搜索条件
* @author likeadmin * @return \string[][]
* @date 2024/02/22 10:47 * @author likeadmin
*/ * @date 2024/02/22 10:47
public function setSearch(): array */
{ public function setSearch(): array
return [ {
'=' => ['cost_project_id'], return [
]; '=' => ['cost_project_id'],
} ];
}
/**
* @notes 获取列表 /**
* @return array * @notes 获取列表
* @throws \think\db\exception\DataNotFoundException * @return array
* @throws \think\db\exception\DbException * @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException * @throws \think\db\exception\DbException
* @author likeadmin * @throws \think\db\exception\ModelNotFoundException
* @date 2024/02/22 10:47 * @author likeadmin
*/ * @date 2024/02/22 10:47
public function lists(): array */
{ public function lists(): array
return TaskAllocation::where($this->searchWhere)->with(['taskTypeInfo', 'projectInfo']) {
->limit($this->limitOffset, $this->limitLength) return TaskAllocation::where($this->searchWhere)->with(['taskTypeInfo', 'projectInfo'])
->order(['id' => 'desc']) ->limit($this->limitOffset, $this->limitLength)
->select()->each(function($data){ ->order(['id' => 'desc'])
$contract = CostApprovedProject::field('project_director')->where('id',$data['projectInfo']['contract_id'])->findOrEmpty(); ->select()->each(function ($data) {
$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();
->toArray(); $data['project_director'] = $admin['name'];
} })
->toArray();
}
/**
* @notes 获取数量
* @return int /**
* @author likeadmin * @notes 获取数量
* @date 2024/02/22 10:47 * @return int
*/ * @author likeadmin
public function count(): int * @date 2024/02/22 10:47
{ */
return TaskAllocation::where($this->searchWhere)->count(); public function count(): int
} {
return TaskAllocation::where($this->searchWhere)->count();
public function setFileName(): string }
{
return '任务分配'; public function setFileName(): string
} {
return '任务分配';
/** }
* @notes 导出字段
* @return string[] /**
* @author 段誉 * @notes 导出字段
* @date 2022/11/24 16:17 * @return string[]
*/ * @author 段誉
public function setExcelFields(): array * @date 2022/11/24 16:17
{ */
return [ public function setExcelFields(): array
'id' => 'id', {
'task_type_id' => '任务类别id', return [
'cost_project_id' => '项目id', 'id' => 'id',
'num' => '单据编号', 'task_type_id' => '任务类别id',
'apptime' => '登记日期', 'cost_project_id' => '项目id',
]; 'num' => '单据编号',
} 'apptime' => '登记日期',
} ];
}
}

View File

@ -11,163 +11,163 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | author: likeadminTeam // | author: likeadminTeam
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\adminapi\logic; namespace app\adminapi\logic;
use app\common\model\cost_project\CostApprovedProject; use app\common\logic\BaseLogic;
use app\common\model\cost_project\CostProject; use app\common\model\auth\Admin;
use app\common\model\ProjectCommission; use app\common\model\cost_project\CostProject;
use app\common\logic\BaseLogic; use app\common\model\marketing\MarketingContract;
use app\common\model\ProjectCommissionDetail; use app\common\model\ProjectCommission;
use app\common\model\zjzx_finance\ZjzxRefund; use app\common\model\ProjectCommissionDetail;
use think\facade\Db; use app\common\model\zjzx_finance\ZjzxRefund;
use think\facade\Db;
/**
* ProjectCommission逻辑 /**
* Class ProjectCommissionLogic * ProjectCommission逻辑
* @package app\adminapi\logic * Class ProjectCommissionLogic
*/ * @package app\adminapi\logic
class ProjectCommissionLogic extends BaseLogic */
{ class ProjectCommissionLogic extends BaseLogic
{
/**
* @notes 添加 /**
* @param array $params * @notes 编辑
* @return bool * @param array $params
* @author likeadmin * @return bool
* @date 2024/02/23 09:37 * @author likeadmin
*/ * @date 2024/02/23 09:37
public static function add(array $params): bool */
{ public static function edit(array $params): bool
Db::startTrans(); {
try { Db::startTrans();
$projectCommission = ProjectCommission::create([ try {
'dataid' => generate_sn(ProjectCommission::class,'dataid'), ProjectCommission::where('id', $params['id'])->update([
'num' => generate_sn(ProjectCommission::class,'num'), 'project_id' => $params['project_id'],
'project_id' => $params['project_id'], 'rate' => $params['rate'],
'rate' => $params['rate'], 'bczfze' => $params['bczfze'],
'bczfze' => $params['bczfze'], 'djr' => $params['djr'],
'djr' => $params['djr'], 'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0,
'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0, 'remark' => $params['remark'] ?? '',
'remark' => $params['remark'] ?? '', 'update_time' => time(),
]); ]);
if(!empty($params['project_commission_detail'])){ if (!empty($params['project_commission_detail'])) {
foreach ($params['project_commission_detail'] as $item) { foreach ($params['project_commission_detail'] as $item) {
$item['project_commission_id'] = $projectCommission->id; if (!empty($item['id'])) {
ProjectCommissionDetailLogic::add($item); ProjectCommissionDetailLogic::edit($item);
} else {
$item['project_commission_id'] = $params['id'];
ProjectCommissionDetailLogic::add($item);
}
}
} }
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
} }
Db::commit(); }
return true;
} catch (\Exception $e) { /**
Db::rollback(); * @notes 添加
self::setError($e->getMessage()); * @param array $params
return false; * @return bool
} * @author likeadmin
} * @date 2024/02/23 09:37
*/
public static function add(array $params): bool
/** {
* @notes 编辑 Db::startTrans();
* @param array $params try {
* @return bool $projectCommission = ProjectCommission::create([
* @author likeadmin 'dataid' => generate_sn(ProjectCommission::class, 'dataid'),
* @date 2024/02/23 09:37 'num' => generate_sn(ProjectCommission::class, 'num'),
*/ 'project_id' => $params['project_id'],
public static function edit(array $params): bool 'rate' => $params['rate'],
{ 'bczfze' => $params['bczfze'],
Db::startTrans(); 'djr' => $params['djr'],
try { 'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0,
ProjectCommission::where('id', $params['id'])->update([ 'remark' => $params['remark'] ?? '',
'project_id' => $params['project_id'], ]);
'rate' => $params['rate'], if (!empty($params['project_commission_detail'])) {
'bczfze' => $params['bczfze'], foreach ($params['project_commission_detail'] as $item) {
'djr' => $params['djr'], $item['project_commission_id'] = $projectCommission->id;
'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0,
'remark' => $params['remark'] ?? '',
'update_time' => time(),
]);
if(!empty($params['project_commission_detail'])){
foreach ($params['project_commission_detail'] as $item) {
if(!empty($item['id'])){
ProjectCommissionDetailLogic::edit($item);
}else{
$item['project_commission_id'] = $params['id'];
ProjectCommissionDetailLogic::add($item); ProjectCommissionDetailLogic::add($item);
} }
} }
} Db::commit();
Db::commit(); return true;
return true; } catch (\Exception $e) {
} catch (\Exception $e) { Db::rollback();
Db::rollback(); self::setError($e->getMessage());
self::setError($e->getMessage()); return false;
return false; }
}
}
/**
* @notes 删除
* @param array $params
* @return bool
* @author likeadmin
* @date 2024/02/23 09:37
*/
public static function delete(array $params): bool
{
$detail = ProjectCommissionDetail::where('project_commission_id','in',$params['id'])->findOrEmpty();
if(!$detail->isEmpty()){
self::setError('此数据关联了提成明细信息,须删除提成明细信息');
return false;
}
return ProjectCommission::destroy($params['id']);
}
/**
* @notes 获取详情
* @param $params
* @return array
* @author likeadmin
* @date 2024/02/23 09:37
*/
public static function detail($params): array
{
$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();
$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['industry_nature'] = (string)$contract['industry_nature'];
//到账金额
$data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['project_id'])->sum('amount');
//已支付总额
$data['total_pay_amount'] = ProjectCommission::where('project_id',$data['project_id'])->sum('bczfze');
//应提成总金额
$data['total_commission_amount'] = $data['total_refund_amount'] * ($data['rate'] / 100);
$data['project_commission_detail'] = ProjectCommissionDetail::field('id,engineer,task_name,task_type,professional_type,zj_amount,sk_amount,tc_rate,tc_amount,pay_amount,other_fee,remark')->where('project_commission_id', $data['id'])->select()->each(function($data){
$data['task_type_text'] = $data->task_type_text;
$data['professional_type_text'] = $data->professional_type_text;
})->toArray();
return $data;
}
public static function datas()
{
$datas = ProjectCommission::field(['id', 'num'])
->order(['id' => 'desc'])
->select()
->toArray();
foreach ($datas as &$item) {
$item['projectinfo'] = 'ID' . $item['id'] . ' / 单号:' . $item['num'];
} }
return $datas;
} /**
} * @notes 删除
* @param array $params
* @return bool
* @author likeadmin
* @date 2024/02/23 09:37
*/
public static function delete(array $params): bool
{
$detail = ProjectCommissionDetail::where('project_commission_id', 'in', $params['id'])->findOrEmpty();
if (!$detail->isEmpty()) {
self::setError('此数据关联了提成明细信息,须删除提成明细信息');
return false;
}
return ProjectCommission::destroy($params['id']);
}
/**
* @notes 获取详情
* @param $params
* @return array
* @author likeadmin
* @date 2024/02/23 09:37
*/
public static function detail($params): array
{
$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 = 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'] = $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');
//已支付总额
$data['total_pay_amount'] = ProjectCommission::where('project_id', $data['project_id'])->sum('bczfze');
//应提成总金额
$data['total_commission_amount'] = $data['total_refund_amount'] * ($data['rate'] / 100);
$data['project_commission_detail'] = ProjectCommissionDetail::field('id,engineer,task_name,task_type,professional_type,zj_amount,sk_amount,tc_rate,tc_amount,pay_amount,other_fee,remark')->where('project_commission_id', $data['id'])->select()->each(function ($data) {
$data['task_type_text'] = $data->task_type_text;
$data['professional_type_text'] = $data->professional_type_text;
})->toArray();
return $data;
}
public static function datas()
{
$datas = ProjectCommission::field(['id', 'num'])
->order(['id' => 'desc'])
->select()
->toArray();
foreach ($datas as &$item) {
$item['projectinfo'] = 'ID' . $item['id'] . ' / 单号:' . $item['num'];
}
return $datas;
}
}

View File

@ -17,13 +17,13 @@
use app\common\logic\BaseLogic; use app\common\logic\BaseLogic;
use app\common\model\ApprovalIssuanceAchievementDocuments; 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\CostProject;
use app\common\model\cost_project\CostProjectPerson; use app\common\model\cost_project\CostProjectPerson;
use app\common\model\DataReception; use app\common\model\DataReception;
use app\common\model\dept\Dept; use app\common\model\dept\Dept;
use app\common\model\GeoCity; use app\common\model\GeoCity;
use app\common\model\GeoProvince; 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\ApplyWithSeal;
use app\common\model\project_process_management\JianliProjectProgressReport; use app\common\model\project_process_management\JianliProjectProgressReport;
use app\common\model\project_process_management\ProjectChangeVisa; use app\common\model\project_process_management\ProjectChangeVisa;
@ -87,7 +87,7 @@
'annex' => $params['annex'] ? json_encode($params['annex']) : null, 'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]); ]);
if ($params['contract_id'] > 0) { 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(); Db::commit();
return true; return true;

View File

@ -11,157 +11,157 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | author: likeadminTeam // | author: likeadminTeam
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\adminapi\logic\task; namespace app\adminapi\logic\task;
use app\adminapi\logic\TaskDetailLogic; use app\adminapi\logic\TaskDetailLogic;
use app\common\model\cost_project\CostApprovedProject; use app\common\logic\BaseLogic;
use app\common\model\task\TaskAllocation; use app\common\model\auth\Admin;
use app\common\logic\BaseLogic; use app\common\model\marketing\MarketingContract;
use app\common\model\task\TaskType; use app\common\model\task\TaskAllocation;
use app\common\model\TaskDetail; use app\common\model\task\TaskType;
use think\facade\Db; use app\common\model\TaskDetail;
use think\facade\Db;
/**
* TaskAllocation逻辑 /**
* Class TaskAllocationLogic * TaskAllocation逻辑
* @package app\adminapi\logic\task * Class TaskAllocationLogic
*/ * @package app\adminapi\logic\task
class TaskAllocationLogic extends BaseLogic */
{ class TaskAllocationLogic extends BaseLogic
{
/**
* @notes 添加 /**
* @param array $params * @notes 编辑
* @return bool * @param array $params
* @author likeadmin * @return bool
* @date 2024/02/22 10:47 * @author likeadmin
*/ * @date 2024/02/22 10:47
public static function add(array $params): bool */
{ public static function edit(array $params): bool
// 项目id关联任务类别 {
$projectId = $params['project_id']; // 项目id关联任务类别
// 任务 $projectId = $params['project_id'];
$taskType = TaskType::where('cost_project_id', $projectId)->findOrEmpty(); // 任务
if ($taskType->isEmpty()) { $taskType = TaskType::where('cost_project_id', $projectId)->findOrEmpty();
self::setError('项目未配置任务类别'); if ($taskType->isEmpty()) {
return false; self::setError('项目未配置任务类别');
}
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(); Db::startTrans();
return true; try {
} catch (\Exception $e) { TaskAllocation::where('id', $params['id'])->update([
Db::rollback(); 'task_type_id' => $taskType['id'], // 任务类别id
self::setError($e->getMessage()); 'cost_project_id' => $taskType['cost_project_id'], // 项目id
return false; 'apptime' => $params['apptime'],
} 'annex' => $params['annex'] ? json_encode($params['annex']) : null,
} ]);
Db::commit();
// 任务明细
/** if (!empty($params['task_detail'])) {
* @notes 编辑 foreach ($params['task_detail'] as $item) {
* @param array $params if (!empty($item['id'])) {
* @return bool $item['task_type_id'] = $taskType['id'];
* @author likeadmin TaskDetailLogic::edit($item);
* @date 2024/02/22 10:47 } else {
*/ $item['task_allocation_id'] = $params['id'];
public static function edit(array $params): bool $item['task_type_id'] = $taskType['id'];
{ TaskDetailLogic::add($item);
// 项目id关联任务类别 }
$projectId = $params['project_id']; }
// 任务 }
$taskType = TaskType::where('cost_project_id', $projectId)->findOrEmpty(); return true;
if ($taskType->isEmpty()) { } catch (\Exception $e) {
self::setError('项目未配置任务类别'); Db::rollback();
} self::setError($e->getMessage());
Db::startTrans(); return false;
try { }
TaskAllocation::where('id', $params['id'])->update([ }
'task_type_id' => $taskType['id'], // 任务类别id
'cost_project_id' => $taskType['cost_project_id'], // 项目id /**
'apptime' => $params['apptime'], * @notes 添加
'annex' => $params['annex'] ? json_encode($params['annex']) : null, * @param array $params
]); * @return bool
Db::commit(); * @author likeadmin
// 任务明细 * @date 2024/02/22 10:47
if(!empty($params['task_detail'])){ */
foreach ($params['task_detail'] as $item) { public static function add(array $params): bool
if(!empty($item['id'])){ {
$item['task_type_id'] = $taskType['id']; // 项目id关联任务类别
TaskDetailLogic::edit($item); $projectId = $params['project_id'];
}else{ // 任务
$item['task_allocation_id'] = $params['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']; $item['task_type_id'] = $taskType['id'];
TaskDetailLogic::add($item); TaskDetailLogic::add($item);
} }
} }
} Db::commit();
return true; return true;
} catch (\Exception $e) { } catch (\Exception $e) {
Db::rollback(); Db::rollback();
self::setError($e->getMessage()); self::setError($e->getMessage());
return false; return false;
} }
} }
/**
/** * @notes 删除
* @notes 删除 * @param array $params
* @param array $params * @return bool
* @return bool * @author likeadmin
* @author likeadmin * @date 2024/02/22 10:47
* @date 2024/02/22 10:47 */
*/ public static function delete(array $params): bool
public static function delete(array $params): bool {
{ $task_detail = TaskDetail::where('task_allocation_id', 'in', $params['id'])->findOrEmpty();
$task_detail = TaskDetail::where('task_allocation_id','in',$params['id'])->findOrEmpty(); if (!$task_detail->isEmpty()) {
if(!$task_detail->isEmpty()){ self::setError('此数据关联了任务明细信息,须删除任务明细信息');
self::setError('此数据关联了任务明细信息,须删除任务明细信息'); return false;
return false; }
} return TaskAllocation::destroy($params['id']);
return TaskAllocation::destroy($params['id']); }
}
/**
/** * @notes 获取详情
* @notes 获取详情 * @param $params
* @param $params * @return array
* @return array * @author likeadmin
* @author likeadmin * @date 2024/02/22 10:47
* @date 2024/02/22 10:47 */
*/ public static function detail($params): array
public static function detail($params): array {
{ $data = TaskAllocation::with(['taskTypeInfo', 'projectInfo'])->findOrEmpty($params['id'])->toArray();
$data = TaskAllocation::with(['taskTypeInfo', 'projectInfo'])->findOrEmpty($params['id'])->toArray(); $contract = MarketingContract::field('project_manager')->where('id', $data['projectInfo']['contract_id'])->findOrEmpty();
$contract = CostApprovedProject::field('project_director')->where('id',$data['projectInfo']['contract_id'])->findOrEmpty(); $admin = Admin::field('name')->where('id', $contract['project_manager'])->findOrEmpty();
$data['project_director'] = $contract['project_director']; $data['project_director'] = $admin['name'];
$data['task_detail'] = TaskDetail::where('task_allocation_id', $data['id'])->select()->each(function ($item){ $data['task_detail'] = TaskDetail::where('task_allocation_id', $data['id'])->select()->each(function ($item) {
$taskTypeInfo = TaskType::findOrEmpty($item['task_type_id'])->toArray(); $taskTypeInfo = TaskType::findOrEmpty($item['task_type_id'])->toArray();
$item['task_name'] = $taskTypeInfo['name']; $item['task_name'] = $taskTypeInfo['name'];
$item['professional_type_text'] = $item->professional_type_text; $item['professional_type_text'] = $item->professional_type_text;
$item['task_type_id_text'] = $item->task_type_id_text; $item['task_type_id_text'] = $item->task_type_id_text;
})->toArray(); })->toArray();
return $data; return $data;
} }
} }

View File

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

View File

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