This commit is contained in:
weiz 2024-03-23 15:30:03 +08:00
parent f9cfccf69c
commit e65b612140
3 changed files with 160 additions and 195 deletions

View File

@ -12,26 +12,26 @@
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\logic\project;
namespace app\adminapi\logic\project;
use app\common\model\auth\Admin;
use app\common\model\contract\Contract;
use app\common\model\custom\Custom;
use app\common\model\project\Project;
use app\common\model\project\ProjectManagerAppointment;
use app\common\logic\BaseLogic;
use app\common\model\project\ProjectTypeSet;
use think\facade\Db;
use app\common\logic\BaseLogic;
use app\common\model\auth\Admin;
use app\common\model\contract\Contract;
use app\common\model\custom\Custom;
use app\common\model\project\Project;
use app\common\model\project\ProjectManagerAppointment;
use app\common\model\project\ProjectTypeSet;
use think\facade\Db;
/**
/**
* 项目经理委任逻辑
* Class ProjectManagerAppointmentLogic
* @package app\adminapi\logic\project
*/
class ProjectManagerAppointmentLogic extends BaseLogic
{
class ProjectManagerAppointmentLogic extends BaseLogic
{
/**
@ -46,8 +46,6 @@ class ProjectManagerAppointmentLogic extends BaseLogic
Db::startTrans();
try {
ProjectManagerAppointment::create([
'org_id' => $params['org_id'],
'dept_id' => $params['dept_id'],
'project_id' => $params['project_id'],
'contract_id' => $params['contract_id'],
'project_type_id' => $params['project_type_id'],
@ -57,9 +55,9 @@ class ProjectManagerAppointmentLogic extends BaseLogic
'start_date' => strtotime($params['start_date']),
'delivery_date' => strtotime($params['delivery_date']),
'remark' => $params['remark'],
'annex' => $params['annex']? json_encode($params['annex']) : null,
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]);
Project::where('id',$params['project_id'])->update([
Project::where('id', $params['project_id'])->update([
'status' => 4,
'update_time' => time(),
]);
@ -94,7 +92,7 @@ class ProjectManagerAppointmentLogic extends BaseLogic
'start_date' => strtotime($params['start_date']),
'delivery_date' => strtotime($params['delivery_date']),
'remark' => $params['remark'],
'annex' => $params['annex']? json_encode($params['annex']) : null,
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]);
Db::commit();
return true;
@ -129,11 +127,11 @@ class ProjectManagerAppointmentLogic extends BaseLogic
public static function detail($params): array
{
$data = ProjectManagerAppointment::field('id,project_id,contract_id,project_type_id,project_manager,amount,project_approval_date,start_date,delivery_date,remark,annex')->findOrEmpty($params['id'])->toArray();
$project = Project::field('name,project_code,custom_id')->where('id',$data['project_id'])->findOrEmpty();
$custom = Custom::field('name')->where('id',$project['custom_id'])->findOrEmpty();
$contract = Contract::field('contract_code')->where('id',$data['contract_id'])->findOrEmpty();
$projectType = ProjectTypeSet::field('name')->where('id',$data['project_type_id'])->findOrEmpty();
$admin = Admin::field('name')->where('id',$data['project_manager'])->findOrEmpty();
$project = Project::field('name,project_code,custom_id')->where('id', $data['project_id'])->findOrEmpty();
$custom = Custom::field('name')->where('id', $project['custom_id'])->findOrEmpty();
$contract = Contract::field('contract_code')->where('id', $data['contract_id'])->findOrEmpty();
$projectType = ProjectTypeSet::field('name')->where('id', $data['project_type_id'])->findOrEmpty();
$admin = Admin::field('name')->where('id', $data['project_manager'])->findOrEmpty();
$data['project_name'] = $project['name'];
$data['project_code'] = $project['project_code'];
$data['custom_name'] = $custom['name'];
@ -142,4 +140,4 @@ class ProjectManagerAppointmentLogic extends BaseLogic
$data['project_manager_name'] = $admin['name'];
return $data;
}
}
}

View File

@ -17,8 +17,6 @@
use app\common\model\auth\Admin;
use app\common\model\contract\Contract;
use app\common\model\dept\Dept;
use app\common\model\dept\Orgs;
use app\common\model\project\Project;
use app\common\model\project\ProjectManagerAppointment;
use app\common\model\project\ProjectTypeSet;
@ -39,8 +37,6 @@
*/
protected $rule = [
'id' => 'require|checkData',
'org_id' => 'require|checkOrg',
'dept_id' => 'require|checkDept',
'project_id' => 'require|checkProject',
'contract_id' => 'require|checkContract',
'project_type_id' => 'require|checkProjectType',
@ -53,8 +49,6 @@
protected $message = [
'id.require' => '缺少必要参数',
'org_id.require' => '请选择组织',
'dept_id.require' => '请选择部门',
'project_id.require' => '请选择项目',
'contract_id.require' => '请选择合同',
'project_type_id.require' => '请选择项目类型',
@ -79,8 +73,6 @@
'id' => 'id',
'project_id' => '项目id',
'contract_id' => '合同id',
'org_id' => '组织id',
'dept_id' => '部门id',
'project_type_id' => '项目类型',
'project_manager' => '项目经理',
'amount' => '项目金额',
@ -147,27 +139,6 @@
return true;
}
public function checkOrg($value): bool|string
{
$data = Orgs::where('id', $value)->findOrEmpty();
if ($data->isEmpty()) {
return '组织不存在';
}
return true;
}
public function checkDept($value, $rule, $data): bool|string
{
$dept = Dept::where('id', $value)->findOrEmpty();
if ($dept->isEmpty()) {
return '部门不存在';
}
if ($data['org_id'] != $dept['org_id']) {
return '部门不属于当前选择的组织';
}
return true;
}
public function checkProject($value): bool|string
{
$data = Project::where('id', $value)->findOrEmpty();

View File

@ -12,41 +12,37 @@
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\common\model\project;
namespace app\common\model\project;
use app\common\model\BaseModel;
use think\model\concern\SoftDelete;
use app\common\model\BaseModel;
use think\model\concern\SoftDelete;
/**
/**
* 项目经理委任模型
* Class ProjectManagerAppointment
* @package app\common\model\project
*/
class ProjectManagerAppointment extends BaseModel
{
class ProjectManagerAppointment extends BaseModel
{
use SoftDelete;
protected $name = 'project_manager_appointment';
protected $deleteTime = 'delete_time';
public function getProjectApprovalDateAttr($value)
{
return !empty($value) ? date('Y-m-d',$value) : '';
return !empty($value) ? date('Y-m-d', $value) : '';
}
public function getStartDateAttr($value)
{
return !empty($value) ? date('Y-m-d',$value) : '';
return !empty($value) ? date('Y-m-d', $value) : '';
}
public function getDeliveryDateAttr($value)
{
return !empty($value) ? date('Y-m-d',$value) : '';
return !empty($value) ? date('Y-m-d', $value) : '';
}
public function getAnnexAttr($value)
{
return !empty($value) ? json_decode($value,true) : '';
}
}