This commit is contained in:
mkm 2024-03-26 11:32:17 +08:00
parent 4880420620
commit 8c2cb05cff

View File

@ -1,11 +1,15 @@
<?php <?php
/** /**
* @copyright Copyright (c) 2021 勾股工作室 * @copyright Copyright (c) 2021 勾股工作室
* @license https://opensource.org/licenses/GPL-3.0 * @license https://opensource.org/licenses/GPL-3.0
* @link https://www.gougucms.com * @link https://www.gougucms.com
*/ */
declare(strict_types=1); declare(strict_types=1);
namespace app\api\controller; namespace app\api\controller;
use app\project\model\ProjectTask as TaskList; use app\project\model\ProjectTask as TaskList;
use app\api\BaseController; use app\api\BaseController;
use think\facade\Db; use think\facade\Db;
@ -26,12 +30,10 @@ class Index extends BaseController
if ($sourse == 'file' || $sourse == 'tinymce') { if ($sourse == 'file' || $sourse == 'tinymce') {
if (request()->file('file')) { if (request()->file('file')) {
$file = request()->file('file'); $file = request()->file('file');
} } else {
else{
return to_assign(1, '没有选择上传文件'); return to_assign(1, '没有选择上传文件');
} }
} } else {
else{
if (request()->file('editormd-image-file')) { if (request()->file('editormd-image-file')) {
$file = request()->file('editormd-image-file'); $file = request()->file('editormd-image-file');
} else { } else {
@ -103,12 +105,10 @@ class Index extends BaseController
if ($sourse == 'editormd') { if ($sourse == 'editormd') {
//editormd编辑器上传返回 //editormd编辑器上传返回
return json(['success' => 1, 'message' => '上传成功', 'url' => $data['filepath']]); return json(['success' => 1, 'message' => '上传成功', 'url' => $data['filepath']]);
} } else if ($sourse == 'tinymce') {
else if($sourse == 'tinymce'){
//tinymce编辑器上传返回 //tinymce编辑器上传返回
return json(['success' => 1, 'message' => '上传成功', 'location' => $data['filepath']]); return json(['success' => 1, 'message' => '上传成功', 'location' => $data['filepath']]);
} } else {
else{
//普通上传返回 //普通上传返回
return to_assign(0, '上传成功', $res); return to_assign(0, '上传成功', $res);
} }
@ -183,8 +183,7 @@ class Index extends BaseController
$did = get_params('did'); $did = get_params('did');
if ($did == 1) { if ($did == 1) {
$department = $did; $department = $did;
} } else {
else{
$department = get_department_son($did); $department = get_department_son($did);
} }
$employee = Db::name('admin') $employee = Db::name('admin')
@ -339,20 +338,17 @@ class Index extends BaseController
$detail = Db::name('Approve')->where(['id' => $id])->find(); $detail = Db::name('Approve')->where(['id' => $id])->find();
$subject = '一个日常审批'; $subject = '一个日常审批';
$msg_title_type = $detail['type']; $msg_title_type = $detail['type'];
} } else if ($type == 2) {
else if($type==2){
//报销审核 //报销审核
$detail = Db::name('Expense')->where(['id' => $id])->find(); $detail = Db::name('Expense')->where(['id' => $id])->find();
$subject = '一个报销审批'; $subject = '一个报销审批';
$msg_title_type = 22; $msg_title_type = 22;
} } else if ($type == 3) {
else if($type==3){
//发票审核 //发票审核
$detail = Db::name('Invoice')->where(['id' => $id])->find(); $detail = Db::name('Invoice')->where(['id' => $id])->find();
$subject = '一个发票审批'; $subject = '一个发票审批';
$msg_title_type = 23; $msg_title_type = 23;
} } else if ($type == 4) {
else if($type==4){
//合同审核 //合同审核
$detail = Db::name('Contract')->where(['id' => $id])->find(); $detail = Db::name('Contract')->where(['id' => $id])->find();
$subject = '一个合同审批'; $subject = '一个合同审批';
@ -383,28 +379,23 @@ class Index extends BaseController
//存在下一步审核 //存在下一步审核
if ($next_step['flow_type'] == 1) { if ($next_step['flow_type'] == 1) {
$param['check_admin_ids'] = get_department_leader($detail['admin_id']); $param['check_admin_ids'] = get_department_leader($detail['admin_id']);
} } else if ($next_step['flow_type'] == 2) {
else if($next_step['flow_type'] == 2){
$param['check_admin_ids'] = get_department_leader($detail['admin_id'], 1); $param['check_admin_ids'] = get_department_leader($detail['admin_id'], 1);
} } else {
else{
$param['check_admin_ids'] = $next_step['flow_uids']; $param['check_admin_ids'] = $next_step['flow_uids'];
} }
$param['check_step_sort'] = $detail['check_step_sort'] + 1; $param['check_step_sort'] = $detail['check_step_sort'] + 1;
$param['check_status'] = 1; $param['check_status'] = 1;
} } else {
else{
//不存在下一步审核,审核结束 //不存在下一步审核,审核结束
$param['check_status'] = 2; $param['check_status'] = 2;
$param['check_admin_ids'] = ''; $param['check_admin_ids'] = '';
} }
} } else {
else{
$param['check_status'] = 1; $param['check_status'] = 1;
$param['check_admin_ids'] = $step['flow_uids']; $param['check_admin_ids'] = $step['flow_uids'];
} }
} } else if ($step['flow_type'] == 0) {
else if($step['flow_type'] == 0){
//自由人审批 //自由人审批
if ($param['check_node'] == 2) { if ($param['check_node'] == 2) {
$next_step = $detail['check_step_sort'] + 1; $next_step = $detail['check_step_sort'] + 1;
@ -420,30 +411,25 @@ class Index extends BaseController
$param['check_admin_ids'] = $param['check_admin_ids']; $param['check_admin_ids'] = $param['check_admin_ids'];
$param['check_step_sort'] = $next_step; $param['check_step_sort'] = $next_step;
$param['check_status'] = 1; $param['check_status'] = 1;
} } else {
else{
//不存在下一步审核,审核结束 //不存在下一步审核,审核结束
$param['check_status'] = 2; $param['check_status'] = 2;
$param['check_admin_ids'] = ''; $param['check_admin_ids'] = '';
} }
} } else {
else{
$next_step = Db::name('FlowStep')->where(['action_id' => $id, 'type' => $type, 'sort' => ($detail['check_step_sort'] + 1), 'delete_time' => 0])->find(); $next_step = Db::name('FlowStep')->where(['action_id' => $id, 'type' => $type, 'sort' => ($detail['check_step_sort'] + 1), 'delete_time' => 0])->find();
if ($next_step) { if ($next_step) {
//存在下一步审核 //存在下一步审核
if ($next_step['flow_type'] == 1) { if ($next_step['flow_type'] == 1) {
$param['check_admin_ids'] = get_department_leader($detail['admin_id']); $param['check_admin_ids'] = get_department_leader($detail['admin_id']);
} } else if ($next_step['flow_type'] == 2) {
else if($next_step['flow_type'] == 2){
$param['check_admin_ids'] = get_department_leader($detail['admin_id'], 1); $param['check_admin_ids'] = get_department_leader($detail['admin_id'], 1);
} } else {
else{
$param['check_admin_ids'] = $next_step['flow_uids']; $param['check_admin_ids'] = $next_step['flow_uids'];
} }
$param['check_step_sort'] = $detail['check_step_sort'] + 1; $param['check_step_sort'] = $detail['check_step_sort'] + 1;
$param['check_status'] = 1; $param['check_status'] = 1;
} } else {
else{
//不存在下一步审核,审核结束 //不存在下一步审核,审核结束
$param['check_status'] = 2; $param['check_status'] = 2;
$param['check_admin_ids'] = ''; $param['check_admin_ids'] = '';
@ -459,16 +445,13 @@ class Index extends BaseController
if ($type == 1) { if ($type == 1) {
//日常审核 //日常审核
$res = Db::name('Approve')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param); $res = Db::name('Approve')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param);
} } else if ($type == 2) {
else if($type==2){
//报销审核 //报销审核
$res = Db::name('Expense')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param); $res = Db::name('Expense')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param);
} } else if ($type == 3) {
else if($type==3){
//发票审核 //发票审核
$res = Db::name('Invoice')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param); $res = Db::name('Invoice')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param);
} } else if ($type == 4) {
else if($type==4){
//合同审核 //合同审核
$res = Db::name('Contract')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param); $res = Db::name('Contract')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param);
} }
@ -502,12 +485,10 @@ class Index extends BaseController
sendMessage($users, ($type * 10 + 12), $msg); sendMessage($users, ($type * 10 + 12), $msg);
} }
return to_assign(); return to_assign();
} } else {
else{
return to_assign(1, '操作失败'); return to_assign(1, '操作失败');
} }
} } else if ($param['check'] == 2) {
else if($param['check'] == 2){
$check_admin_ids = explode(",", strval($detail['check_admin_ids'])); $check_admin_ids = explode(",", strval($detail['check_admin_ids']));
if (!in_array($this->uid, $check_admin_ids)) { if (!in_array($this->uid, $check_admin_ids)) {
return to_assign(1, '您没权限审核该审批'); return to_assign(1, '您没权限审核该审批');
@ -525,8 +506,7 @@ class Index extends BaseController
$param['check_step_sort'] = $prev_step['sort']; $param['check_step_sort'] = $prev_step['sort'];
$param['check_admin_ids'] = $prev_step['flow_uids']; $param['check_admin_ids'] = $prev_step['flow_uids'];
$param['check_status'] = 1; $param['check_status'] = 1;
} } else {
else{
//不存在上一步审核,审核初始化步骤 //不存在上一步审核,审核初始化步骤
$param['check_step_sort'] = 0; $param['check_step_sort'] = 0;
$param['check_admin_ids'] = ''; $param['check_admin_ids'] = '';
@ -536,16 +516,13 @@ class Index extends BaseController
if ($type == 1) { if ($type == 1) {
//日常审核 //日常审核
$res = Db::name('Approve')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param); $res = Db::name('Approve')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param);
} } else if ($type == 2) {
else if($type==2){
//报销审核 //报销审核
$res = Db::name('Expense')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param); $res = Db::name('Expense')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param);
} } else if ($type == 3) {
else if($type==3){
//发票审核 //发票审核
$res = Db::name('Invoice')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param); $res = Db::name('Invoice')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param);
} } else if ($type == 4) {
else if($type==4){
//合同审核 //合同审核
$res = Db::name('Contract')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param); $res = Db::name('Contract')->strict(false)->field('check_step_sort,check_status,last_admin_id,flow_admin_ids,check_admin_ids')->update($param);
} }
@ -572,12 +549,10 @@ class Index extends BaseController
$users = $detail['admin_id']; $users = $detail['admin_id'];
sendMessage($users, ($type * 10 + 13), $msg); sendMessage($users, ($type * 10 + 13), $msg);
return to_assign(); return to_assign();
} } else {
else{
return to_assign(1, '操作失败'); return to_assign(1, '操作失败');
} }
} } else if ($param['check'] == 3) {
else if($param['check'] == 3){
if ($detail['admin_id'] != $this->uid) { if ($detail['admin_id'] != $this->uid) {
return to_assign(1, '你没权限操作'); return to_assign(1, '你没权限操作');
} }
@ -588,16 +563,13 @@ class Index extends BaseController
if ($type == 1) { if ($type == 1) {
//日常审核 //日常审核
$res = Db::name('Approve')->strict(false)->field('check_step_sort,check_status,check_admin_ids')->update($param); $res = Db::name('Approve')->strict(false)->field('check_step_sort,check_status,check_admin_ids')->update($param);
} } else if ($type == 2) {
else if($type==2){
//报销审核 //报销审核
$res = Db::name('Expense')->strict(false)->field('check_step_sort,check_status,check_admin_ids')->update($param); $res = Db::name('Expense')->strict(false)->field('check_step_sort,check_status,check_admin_ids')->update($param);
} } else if ($type == 3) {
else if($type==3){
//发票审核 //发票审核
$res = Db::name('Invoice')->strict(false)->field('check_step_sort,check_status,check_admin_ids')->update($param); $res = Db::name('Invoice')->strict(false)->field('check_step_sort,check_status,check_admin_ids')->update($param);
} } else if ($type == 4) {
else if($type==4){
//合同审核 //合同审核
$res = Db::name('Contract')->strict(false)->field('check_step_sort,check_status,check_admin_ids')->update($param); $res = Db::name('Contract')->strict(false)->field('check_step_sort,check_status,check_admin_ids')->update($param);
} }
@ -692,45 +664,7 @@ class Index extends BaseController
if (isset($param['end_time'])) { if (isset($param['end_time'])) {
$param['end_time'] = strtotime(urldecode($param['end_time'])); $param['end_time'] = strtotime(urldecode($param['end_time']));
} }
if (!empty($param['id']) && $param['id'] > 0) {
$task = (new TaskList())->detail($param['id']);
try {
validate(TaskCheck::class)->scene('edit')->check($param);
} catch (ValidateException $e) {
// 验证失败 输出错误信息
return to_assign(1, $e->getError());
}
if (isset($param['flow_status'])) {
if ($param['flow_status'] == 3) {
$param['over_time'] = time();
$param['done_ratio'] = 100;
if($task['before_task']>0){
$flow_status = Db::name('ProjectTask')->where(['id' => $task['before_task']])->value('flow_status');
if($flow_status !=3){
return to_assign(1, '前置任务未完成,不能设置已完成');
}
}
} else {
$param['over_time'] = 0;
$param['done_ratio'] = 0;
}
}
if(isset($param['before_task'])){
$after_task_array = admin_after_task_son($param['id']);
//包括自己在内
$after_task_array[] = $param['id'];
if (in_array($param['before_task'], $after_task_array)) {
return to_assign(1, '前置任务不能是该任务本身或其后置任务');
}
}
$param['update_time'] = time();
$res = TaskList::where('id', $param['id'])->strict(false)->save($param);
if ($res) {
add_log('edit', $param['id'], $param);
add_project_log(1,'task',$param, $task);
}
return to_assign();
} else {
try { try {
validate(TaskCheck::class)->scene('add')->check($param); validate(TaskCheck::class)->scene('add')->check($param);
} catch (ValidateException $e) { } catch (ValidateException $e) {
@ -739,6 +673,12 @@ class Index extends BaseController
} }
$param['create_time'] = time(); $param['create_time'] = time();
$param['admin_id'] = 1; $param['admin_id'] = 1;
if(!empty($param['md5']) &&strlen($param['md5'])>2){
$id = TaskList::where('md5',$param['md5'])->value('id');
if($id){
return to_assign(1,'已存在');
}
}
$sid = TaskList::strict(false)->field(true)->insertGetId($param); $sid = TaskList::strict(false)->field(true)->insertGetId($param);
if ($sid) { if ($sid) {
add_log('add', $sid, $param); add_log('add', $sid, $param);
@ -760,5 +700,3 @@ class Index extends BaseController
} }
} }
} }
}