update
This commit is contained in:
parent
f9cfccf69c
commit
e65b612140
@ -12,134 +12,132 @@
|
|||||||
// | author: likeadminTeam
|
// | author: likeadminTeam
|
||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
namespace app\adminapi\logic\project;
|
namespace app\adminapi\logic\project;
|
||||||
|
|
||||||
|
|
||||||
use app\common\model\auth\Admin;
|
use app\common\logic\BaseLogic;
|
||||||
use app\common\model\contract\Contract;
|
use app\common\model\auth\Admin;
|
||||||
use app\common\model\custom\Custom;
|
use app\common\model\contract\Contract;
|
||||||
use app\common\model\project\Project;
|
use app\common\model\custom\Custom;
|
||||||
use app\common\model\project\ProjectManagerAppointment;
|
use app\common\model\project\Project;
|
||||||
use app\common\logic\BaseLogic;
|
use app\common\model\project\ProjectManagerAppointment;
|
||||||
use app\common\model\project\ProjectTypeSet;
|
use app\common\model\project\ProjectTypeSet;
|
||||||
use think\facade\Db;
|
use think\facade\Db;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目经理委任逻辑
|
* 项目经理委任逻辑
|
||||||
* Class ProjectManagerAppointmentLogic
|
* Class ProjectManagerAppointmentLogic
|
||||||
* @package app\adminapi\logic\project
|
* @package app\adminapi\logic\project
|
||||||
*/
|
*/
|
||||||
class ProjectManagerAppointmentLogic extends BaseLogic
|
class ProjectManagerAppointmentLogic extends BaseLogic
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 添加项目经理委任
|
* @notes 添加项目经理委任
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2023/12/15 15:22
|
* @date 2023/12/15 15:22
|
||||||
*/
|
*/
|
||||||
public static function add(array $params): bool
|
public static function add(array $params): bool
|
||||||
{
|
{
|
||||||
Db::startTrans();
|
Db::startTrans();
|
||||||
try {
|
try {
|
||||||
ProjectManagerAppointment::create([
|
ProjectManagerAppointment::create([
|
||||||
'org_id' => $params['org_id'],
|
'project_id' => $params['project_id'],
|
||||||
'dept_id' => $params['dept_id'],
|
'contract_id' => $params['contract_id'],
|
||||||
'project_id' => $params['project_id'],
|
'project_type_id' => $params['project_type_id'],
|
||||||
'contract_id' => $params['contract_id'],
|
'project_manager' => $params['project_manager'],
|
||||||
'project_type_id' => $params['project_type_id'],
|
'amount' => $params['amount'],
|
||||||
'project_manager' => $params['project_manager'],
|
'project_approval_date' => strtotime($params['project_approval_date']),
|
||||||
'amount' => $params['amount'],
|
'start_date' => strtotime($params['start_date']),
|
||||||
'project_approval_date' => strtotime($params['project_approval_date']),
|
'delivery_date' => strtotime($params['delivery_date']),
|
||||||
'start_date' => strtotime($params['start_date']),
|
'remark' => $params['remark'],
|
||||||
'delivery_date' => strtotime($params['delivery_date']),
|
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
|
||||||
'remark' => $params['remark'],
|
]);
|
||||||
'annex' => $params['annex']? json_encode($params['annex']) : null,
|
Project::where('id', $params['project_id'])->update([
|
||||||
]);
|
'status' => 4,
|
||||||
Project::where('id',$params['project_id'])->update([
|
'update_time' => time(),
|
||||||
'status' => 4,
|
]);
|
||||||
'update_time' => time(),
|
Db::commit();
|
||||||
]);
|
return true;
|
||||||
Db::commit();
|
} catch (\Exception $e) {
|
||||||
return true;
|
Db::rollback();
|
||||||
} catch (\Exception $e) {
|
self::setError($e->getMessage());
|
||||||
Db::rollback();
|
return false;
|
||||||
self::setError($e->getMessage());
|
}
|
||||||
return false;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 编辑项目经理委任
|
* @notes 编辑项目经理委任
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2023/12/15 15:22
|
* @date 2023/12/15 15:22
|
||||||
*/
|
*/
|
||||||
public static function edit(array $params): bool
|
public static function edit(array $params): bool
|
||||||
{
|
{
|
||||||
Db::startTrans();
|
Db::startTrans();
|
||||||
try {
|
try {
|
||||||
ProjectManagerAppointment::where('id', $params['id'])->update([
|
ProjectManagerAppointment::where('id', $params['id'])->update([
|
||||||
'project_id' => $params['project_id'],
|
'project_id' => $params['project_id'],
|
||||||
'contract_id' => $params['contract_id'],
|
'contract_id' => $params['contract_id'],
|
||||||
'project_type_id' => $params['project_type_id'],
|
'project_type_id' => $params['project_type_id'],
|
||||||
'project_manager' => $params['project_manager'],
|
'project_manager' => $params['project_manager'],
|
||||||
'amount' => $params['amount'],
|
'amount' => $params['amount'],
|
||||||
'project_approval_date' => strtotime($params['project_approval_date']),
|
'project_approval_date' => strtotime($params['project_approval_date']),
|
||||||
'start_date' => strtotime($params['start_date']),
|
'start_date' => strtotime($params['start_date']),
|
||||||
'delivery_date' => strtotime($params['delivery_date']),
|
'delivery_date' => strtotime($params['delivery_date']),
|
||||||
'remark' => $params['remark'],
|
'remark' => $params['remark'],
|
||||||
'annex' => $params['annex']? json_encode($params['annex']) : null,
|
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
|
||||||
]);
|
]);
|
||||||
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 删除项目经理委任
|
* @notes 删除项目经理委任
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2023/12/15 15:22
|
* @date 2023/12/15 15:22
|
||||||
*/
|
*/
|
||||||
public static function delete(array $params): bool
|
public static function delete(array $params): bool
|
||||||
{
|
{
|
||||||
return ProjectManagerAppointment::destroy($params['id']);
|
return ProjectManagerAppointment::destroy($params['id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取项目经理委任详情
|
* @notes 获取项目经理委任详情
|
||||||
* @param $params
|
* @param $params
|
||||||
* @return array
|
* @return array
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2023/12/15 15:22
|
* @date 2023/12/15 15:22
|
||||||
*/
|
*/
|
||||||
public static function detail($params): array
|
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();
|
$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();
|
$project = Project::field('name,project_code,custom_id')->where('id', $data['project_id'])->findOrEmpty();
|
||||||
$custom = Custom::field('name')->where('id',$project['custom_id'])->findOrEmpty();
|
$custom = Custom::field('name')->where('id', $project['custom_id'])->findOrEmpty();
|
||||||
$contract = Contract::field('contract_code')->where('id',$data['contract_id'])->findOrEmpty();
|
$contract = Contract::field('contract_code')->where('id', $data['contract_id'])->findOrEmpty();
|
||||||
$projectType = ProjectTypeSet::field('name')->where('id',$data['project_type_id'])->findOrEmpty();
|
$projectType = ProjectTypeSet::field('name')->where('id', $data['project_type_id'])->findOrEmpty();
|
||||||
$admin = Admin::field('name')->where('id',$data['project_manager'])->findOrEmpty();
|
$admin = Admin::field('name')->where('id', $data['project_manager'])->findOrEmpty();
|
||||||
$data['project_name'] = $project['name'];
|
$data['project_name'] = $project['name'];
|
||||||
$data['project_code'] = $project['project_code'];
|
$data['project_code'] = $project['project_code'];
|
||||||
$data['custom_name'] = $custom['name'];
|
$data['custom_name'] = $custom['name'];
|
||||||
$data['contract_code'] = $contract['contract_code'];
|
$data['contract_code'] = $contract['contract_code'];
|
||||||
$data['project_type_name'] = $projectType['name'];
|
$data['project_type_name'] = $projectType['name'];
|
||||||
$data['project_manager_name'] = $admin['name'];
|
$data['project_manager_name'] = $admin['name'];
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -17,8 +17,6 @@
|
|||||||
|
|
||||||
use app\common\model\auth\Admin;
|
use app\common\model\auth\Admin;
|
||||||
use app\common\model\contract\Contract;
|
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\Project;
|
||||||
use app\common\model\project\ProjectManagerAppointment;
|
use app\common\model\project\ProjectManagerAppointment;
|
||||||
use app\common\model\project\ProjectTypeSet;
|
use app\common\model\project\ProjectTypeSet;
|
||||||
@ -39,8 +37,6 @@
|
|||||||
*/
|
*/
|
||||||
protected $rule = [
|
protected $rule = [
|
||||||
'id' => 'require|checkData',
|
'id' => 'require|checkData',
|
||||||
'org_id' => 'require|checkOrg',
|
|
||||||
'dept_id' => 'require|checkDept',
|
|
||||||
'project_id' => 'require|checkProject',
|
'project_id' => 'require|checkProject',
|
||||||
'contract_id' => 'require|checkContract',
|
'contract_id' => 'require|checkContract',
|
||||||
'project_type_id' => 'require|checkProjectType',
|
'project_type_id' => 'require|checkProjectType',
|
||||||
@ -53,8 +49,6 @@
|
|||||||
|
|
||||||
protected $message = [
|
protected $message = [
|
||||||
'id.require' => '缺少必要参数',
|
'id.require' => '缺少必要参数',
|
||||||
'org_id.require' => '请选择组织',
|
|
||||||
'dept_id.require' => '请选择部门',
|
|
||||||
'project_id.require' => '请选择项目',
|
'project_id.require' => '请选择项目',
|
||||||
'contract_id.require' => '请选择合同',
|
'contract_id.require' => '请选择合同',
|
||||||
'project_type_id.require' => '请选择项目类型',
|
'project_type_id.require' => '请选择项目类型',
|
||||||
@ -79,8 +73,6 @@
|
|||||||
'id' => 'id',
|
'id' => 'id',
|
||||||
'project_id' => '项目id',
|
'project_id' => '项目id',
|
||||||
'contract_id' => '合同id',
|
'contract_id' => '合同id',
|
||||||
'org_id' => '组织id',
|
|
||||||
'dept_id' => '部门id',
|
|
||||||
'project_type_id' => '项目类型',
|
'project_type_id' => '项目类型',
|
||||||
'project_manager' => '项目经理',
|
'project_manager' => '项目经理',
|
||||||
'amount' => '项目金额',
|
'amount' => '项目金额',
|
||||||
@ -147,27 +139,6 @@
|
|||||||
return true;
|
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
|
public function checkProject($value): bool|string
|
||||||
{
|
{
|
||||||
$data = Project::where('id', $value)->findOrEmpty();
|
$data = Project::where('id', $value)->findOrEmpty();
|
||||||
|
@ -12,41 +12,37 @@
|
|||||||
// | author: likeadminTeam
|
// | author: likeadminTeam
|
||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
namespace app\common\model\project;
|
namespace app\common\model\project;
|
||||||
|
|
||||||
|
|
||||||
use app\common\model\BaseModel;
|
use app\common\model\BaseModel;
|
||||||
use think\model\concern\SoftDelete;
|
use think\model\concern\SoftDelete;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目经理委任模型
|
* 项目经理委任模型
|
||||||
* Class ProjectManagerAppointment
|
* Class ProjectManagerAppointment
|
||||||
* @package app\common\model\project
|
* @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) : '';
|
use SoftDelete;
|
||||||
}
|
|
||||||
|
|
||||||
public function getStartDateAttr($value)
|
protected $name = 'project_manager_appointment';
|
||||||
{
|
protected $deleteTime = 'delete_time';
|
||||||
return !empty($value) ? date('Y-m-d',$value) : '';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getDeliveryDateAttr($value)
|
public function getProjectApprovalDateAttr($value)
|
||||||
{
|
{
|
||||||
return !empty($value) ? date('Y-m-d',$value) : '';
|
return !empty($value) ? date('Y-m-d', $value) : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getAnnexAttr($value)
|
public function getStartDateAttr($value)
|
||||||
{
|
{
|
||||||
return !empty($value) ? json_decode($value,true) : '';
|
return !empty($value) ? date('Y-m-d', $value) : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDeliveryDateAttr($value)
|
||||||
|
{
|
||||||
|
return !empty($value) ? date('Y-m-d', $value) : '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user