update
This commit is contained in:
parent
905d518cd0
commit
fcf8024b7e
@ -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');
|
||||||
|
@ -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' => '登记日期',
|
||||||
}
|
];
|
||||||
|
}
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
@ -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;
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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'];
|
||||||
|
@ -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'];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user