更新审核机制

This commit is contained in:
yaooo 2023-11-18 15:19:27 +08:00
parent c8fb615970
commit 8e861aa10a
7 changed files with 86 additions and 47 deletions

View File

@ -180,7 +180,7 @@ class FinanceExpense extends ApiController
}
$leader_id = Db::name('department')->where('id', $pid)->value('leader_id');
if (empty($leader_id)) {
$this->apiError('当前部门分管领导不存在');
$this->apiError('上一级部门分管领导不存在');
}
}
}

View File

@ -208,7 +208,7 @@ class FinanceInvoice extends ApiController
}
$leader_id = Db::name('department')->where('id', $pid)->value('leader_id');
if (empty($leader_id)) {
$this->apiError('当前部门分管领导不存在');
$this->apiError('上一级部门分管领导不存在');
}
}
}

View File

@ -182,7 +182,7 @@ class OaApprove extends ApiController
}
$leader_id = Db::name('department')->where('id', $pid)->value('leader_id');
if (empty($leader_id)) {
$this->apiError('当前部门分管领导不存在');
$this->apiError('上一级部门分管领导不存在');
}
}
}

View File

@ -209,7 +209,7 @@ function get_department_son($did = 0, $is_self = 1)
return $department_array;
}
//读取员工所在部门的负责人pid=1上一级负责人
//读取员工所在部门的分管领导pid=1上一级负责人
function get_department_leader($uid=0,$pid=0)
{
$did = get_admin($uid)['did'];
@ -228,6 +228,25 @@ function get_department_leader($uid=0,$pid=0)
return $leader;
}
//读取员工所在部门的负责人pid=1上一级负责人
function get_department_manager($uid=0,$pid=0)
{
$did = get_admin($uid)['did'];
if($pid==0){
$manager = Db::name('Department')->where(['id' => $did])->value('manager_id');
}
else{
$pdid = Db::name('Department')->where(['id' => $did])->value('pid');
if($pdid == 0){
$manager = 0;
}
else{
$manager = Db::name('Department')->where(['id' => $pdid])->value('manager_id');
}
}
return $manager;
}
//读取部门负责人所在部门的数据权限【包括员工所在部门+其子部门】
function get_department_role($uid = 0)
{
@ -340,19 +359,39 @@ function set_flow($flow_id,$check_admin_ids,$uid)
if ($check_type == 1) {
if($flow[0]['flow_type'] == 1){
//部门负责人
$manager = get_department_manager($uid);
if($manager == 0){
return to_assign(1,'审批流程设置有问题当前部门负责人还未设置请联系HR或者管理员');
}
else{
$check_admin_ids = $manager;
}
}
else if($flow[0]['flow_type'] == 2){
//上级部门负责人
$manager = get_department_manager($uid,1);
if($manager == 0){
return to_assign(1,'审批流程设置有问题上级部门负责人还未设置请联系HR或者管理员');
}
else{
$check_admin_ids = $manager;
}
}
else if($flow[0]['flow_type'] == 5){
//部门分管领导
$leader = get_department_leader($uid);
if($leader == 0){
return to_assign(1,'审批流程设置有问题当前部门负责人还未设置请联系HR或者管理员');
return to_assign(1,'审批流程设置有问题:部门分管领导还未设置请联系HR或者管理员');
}
else{
$check_admin_ids = $leader;
}
}
else if($flow[0]['flow_type'] == 2){
//上级部门负责人
else if($flow[0]['flow_type'] == 6){
//上级部门分管领导
$leader = get_department_leader($uid,1);
if($leader == 0){
return to_assign(1,'审批流程设置有问题上级部门负责人还未设置请联系HR或者管理员');
return to_assign(1,'审批流程设置有问题:上级部门分管领导还未设置请联系HR或者管理员');
}
else{
$check_admin_ids = $leader;
@ -385,10 +424,18 @@ function get_flow($uid,$flows)
$check_user_ids = [];
if($flows['flow_type']==1){
$check_user = '部门负责人-';
$check_user_ids[]=get_department_leader($uid);
$check_user_ids[]=get_department_manager($uid);
}
else if($flows['flow_type']==2){
$check_user = '上级部门负责人-';
$check_user_ids[]=get_department_manager($uid,1);
}
else if($flows['flow_type']==5){
$check_user = '部门分管领导-';
$check_user_ids[]=get_department_leader($uid);
}
else if($flows['flow_type']==6){
$check_user = '上级部门分管领导-';
$check_user_ids[]=get_department_leader($uid,1);
}
else{

View File

@ -187,7 +187,7 @@ class Expense extends BaseController
}
$leader_id = Db::name('department')->where('id', $pid)->value('leader_id');
if (empty($leader_id)) {
return to_assign(1,'当前部门分管领导不存在');
return to_assign(1,'上一级部门分管领导不存在');
}
}
}

View File

@ -187,7 +187,7 @@ class Invoice extends BaseController
}
$leader_id = Db::name('department')->where('id', $pid)->value('leader_id');
if (empty($leader_id)) {
return to_assign(1,'当前部门分管领导不存在');
return to_assign(1,'上一级部门分管领导不存在');
}
}
}

View File

@ -257,38 +257,30 @@ class Approve extends BaseController
foreach($flow as $item) {
// 当前部门负责人
if ($item['flow_type'] == 1) {
$manager_id = Db::name('department')->where('id', $this->did)->value('manager_id');
if (empty($manager_id)) {
$manager = get_department_manager($this->uid);
if (empty($manager)) {
return to_assign(1,'当前部门负责人不存在');
}
}
// 上级部门负责人
// 上级部门负责人
if ($item['flow_type'] == 2) {
$pid = Db::name('department')->where('id', $this->did)->value('pid');
if (empty($pid)) {
return to_assign(1,'上一级部门不存在');
}
$manager_id = Db::name('department')->where('id', $pid)->value('manager_id');
if (empty($manager_id)) {
return to_assign(1,'上一级部门负责人不存在');
$manager = get_department_manager($this->uid, 1);
if (empty($manager)) {
return to_assign(1,'上级部门负责人不存在');
}
}
// 当前部门分管领导
if ($item['flow_type'] == 5) {
$leader_id = Db::name('department')->where('id', $this->did)->value('leader_id');
if (empty($leader_id)) {
$leader = get_department_leader($this->uid);
if (empty($leader)) {
return to_assign(1,'当前部门分管领导不存在');
}
}
// 上级部门分管领导
// 上级部门分管领导
if ($item['flow_type'] == 6) {
$pid = Db::name('department')->where('id', $this->did)->value('pid');
if (empty($pid)) {
return to_assign(1,'上一级部门不存在');
}
$leader_id = Db::name('department')->where('id', $pid)->value('leader_id');
if (empty($leader_id)) {
return to_assign(1,'当前部门分管领导不存在');
$leader = get_department_leader($this->uid, 1);
if (empty($leader)) {
return to_assign(1,'上级部门分管领导不存在');
}
}
}
@ -367,24 +359,24 @@ class Approve extends BaseController
if (!isset($param['check_admin_ids'])) {
if($flow[0]['flow_type'] == 1){
//部门负责人
$leader = get_department_leader($this->uid);
if($leader == 0){
return to_assign(1,'当前部门负责人还未设置请联系HR或者管理员');
}
else{
$param['check_admin_ids'] = $leader;
}
// 部门负责人
$manager = get_department_manager($this->uid);
$param['check_admin_ids'] = $manager;
}
else if($flow[0]['flow_type'] == 2){
//上级部门负责人
$leader = get_department_leader($this->uid,1);
if($leader == 0){
return to_assign(1,'上级部门负责人还未设置请联系HR或者管理员');
}
else{
$param['check_admin_ids'] = $leader;
}
// 上级部门负责人
$manager = get_department_manager($this->uid, 1);
$param['check_admin_ids'] = $manager;
}
else if($flow[0]['flow_type'] == 5){
// 部门分管领导
$leader = get_department_leader($this->uid);
$param['check_admin_ids'] = $leader;
}
else if($flow[0]['flow_type'] == 6){
// 上级部门分管领导
$leader = get_department_leader($this->uid, 1);
$param['check_admin_ids'] = $leader;
}
else{
$param['check_admin_ids'] = $flow[0]['flow_uids'];