Browse Source

抄送人 - 我的-申购申请-我收到的申请-手动添加的抄送人没有收到抄送,传飞没有收到

zhanglinxin 1 year ago
parent
commit
7dc038b4c0

+ 6 - 3
application/api/controller/Approve.php

@@ -108,6 +108,7 @@ class Approve extends Base
      *
      * @Apidoc\Method("POST")
      * @Apidoc\Param("approve_id", type="integer",require=true, desc="审批ID")
+     * @Apidoc\Param("group", type="string",require=true, desc="类别:approve=审批,approve_copy=审批抄送")
      * @Apidoc\Returned("approve_id", type="integer", desc="审批ID")
      * @Apidoc\Returned("approve_status", type="integer", desc="审批状态:1=待审批,2=审批中,3=审批同意,4=审批驳回")
      * @Apidoc\Returned("is_maintain", type="bool", desc="是否显示维修人员:false=不显示,true=显示 module=8 && approve_status=2判断此字段")
@@ -116,8 +117,9 @@ class Approve extends Base
     public function get_detail()
     {
         $id = input('approve_id') ?: 0;
+        $group = input('group') ?: 'approve';
         $user = $this->user;
-        $info = ApproveService::get_detail($id, $user, 'detail');
+        $info = ApproveService::get_detail($id, $user, $group,'detail');
         $this->success('详情', $info);
     }
 
@@ -134,7 +136,7 @@ class Approve extends Base
     {
         $id = input('approve_id') ?: 0;
         $user = $this->user;
-        $info = ApproveService::get_detail($id, $user, 'info');
+        $info = ApproveService::get_detail($id, $user, 'approve','info');
         $this->success('信息', $info);
     }
 
@@ -164,7 +166,8 @@ class Approve extends Base
      *
      * @Apidoc\Desc("维修模块")
      * @Apidoc\Method("POST")
-     * @Apidoc\Param("approve_id", type="integer",require=true, desc="审批ID")
+     * @Apidoc\Param("approve_id", type="integer",re
+     *     quire=true, desc="审批ID")
      * @Apidoc\Param("feedback", type="sting",require=true, desc="反馈结果")
      * @Apidoc\Param("feedback_images", type="sting",require=false, desc="反馈图片(多个用英文逗号隔开)")
      **/

+ 6 - 0
application/common/model/ApproveCopy.php

@@ -25,4 +25,10 @@ class ApproveCopy extends Model
         return $this->belongsTo(User::class, 'approve_user', 'userid');
     }
 
+    // 关联审批申请关联用户 (审批列表)
+    public function approveInfoUser()
+    {
+        return $this->belongsTo(User::class, 'user_id', 'userid');
+    }
+
 }

+ 59 - 24
application/common/service/ApproveService.php

@@ -6,6 +6,7 @@ use app\common\constant\ApplyConstant;
 use app\common\constant\CommonConstant;
 use app\common\model\Approve;
 use app\common\model\ApproveApplyGoods;
+use app\common\model\ApproveCopy;
 use app\common\model\ApproveEvectionPeerUser;
 use app\common\model\ApproveInfo;
 use app\common\model\ApproveInfoLog;
@@ -88,26 +89,42 @@ class ApproveService
         $userids = $search && !is_numeric($search) ? User::where('name', 'like', '%' . $search . '%')->column('userid') : [];
 
         $userid = $user['userid'];
+        $group = $status == 3 ? 'approve_copy' : 'approve';
+        if ($group == 'approve') {
+            $model = Approve::class;
+            $field = 'id as approve_id,info_id,status,create_at';
+        } else {
+            $model = ApproveCopy::class;
+            $field = 'id as approve_id,info_id,create_at';
+        }
         $aliasName = 'approve.';
         $jobName = 'approveInfo.';
-        $field = 'id as approve_id,info_id,status,create_at';
         $joinField = 'module,user_id,apply_user_id,order_no,apply_date,reason,type,desc,start_time,end_time';
         $field = CommonService::getAliasField($field, $aliasName);
         $joinField = CommonService::getAliasField($joinField, $jobName);
         $field = implode(',', array_merge($field, $joinField));
-        $list = Approve::alias('approve')
+        $list = $model::alias('approve')
             ->field($field)
             ->when($status, function ($query) use ($aliasName, $status) {
                 if ($status == 1) {
-                    $query->where($aliasName . 'status', 'in', [CommonConstant::STATUS_1, CommonConstant::STATUS_2]);
+                    $query->where($aliasName . 'status', CommonConstant::STATUS_1);
+//                    $query->where($aliasName . 'status', 'in', [CommonConstant::STATUS_1, CommonConstant::STATUS_2]);
                 }
                 if ($status == 2) {
                     $query->where($aliasName . 'status', 'in', [CommonConstant::STATUS_3, CommonConstant::STATUS_4]);
                 }
             })
             ->where($aliasName . 'is_deleted', CommonConstant::IS_DELETED_0)
-            ->where($aliasName . 'group', CommonConstant::IS_WHO_0)
-            ->where($aliasName . 'state', CommonConstant::IS_WHO_0)
+            ->when($group, function ($query) use ($aliasName, $group) {
+                if ($group == 'approve') {
+                    $query->where($aliasName . 'group', CommonConstant::IS_WHO_0);
+                }
+            })
+            ->when($group, function ($query) use ($aliasName, $group) {
+                if ($group == 'approve') {
+                    $query->where($aliasName . 'state', CommonConstant::IS_WHO_0);
+                }
+            })
             ->where($aliasName . 'approve_user', $userid)
             ->where($jobName . 'is_deleted', CommonConstant::IS_DELETED_0)
             ->when($module, function ($query) use ($jobName, $module) {
@@ -287,35 +304,53 @@ class ApproveService
      *
      * @param integer $id 审批ID
      * @param mixed $user 用户信息
+     * @param string $group 类别:approve=审批,approve_copy=审批抄送
      * @param string $type 类型:detail=详情,info=信息
      **/
-    public static function get_detail($id, $user, $type)
+    public static function get_detail($id, $user, $group, $type)
     {
         $userid = $user['userid'];
-        $info = Approve::field('id,info_id,status')
+        if ($group == 'approve') {
+            $model = Approve::class;
+            $field = 'id,info_id,status';
+        } else {
+            $model = ApproveCopy::class;
+            $field = 'id,info_id';
+        }
+        $info = $model::field($field)
             ->where('is_deleted', CommonConstant::IS_DELETED_0)
-            ->where('group', CommonConstant::IS_WHO_0)
-            ->where('state', CommonConstant::IS_WHO_0)
+            ->when($group, function ($query) use ($group) {
+                if ($group == 'approve') {
+                    $query->where('group', CommonConstant::IS_WHO_0);
+                }
+            })
+            ->when($group, function ($query) use ($group) {
+                if ($group == 'approve') {
+                    $query->where('state', CommonConstant::IS_WHO_0);
+                }
+            })
             ->where('approve_user', $userid)
             ->find($id);
         $data = [];
+        $is_maintain = false;
+        $is_feedback = false;
         if ($info) {
             $data = ApproveInfoService::get_detail($info['info_id'], $user, CommonConstant::IS_WHO_0, $type);
             if ($data) {
                 $data['approve_id'] = $id;
-                $data['approve_status'] = $info['status'];
-                // 条件:维修模块 审批状态是审批中 用户是物业主管或信息负责人 是否显示维修人员:false=不显示,true=显示 目的:审批
-                // 条件:维修模块 审批状态是审批同意 用户是物业主管或信息负责人 反馈状态 是否显示上传反馈结果:false=不显示,true=显示 目的:上传反馈结果
-                $is_maintain = false;
-                $is_feedback = false;
-                if ($data['module'] == CommonConstant::MODULE_8) {
-                    if ($data['approve_status'] == CommonConstant::STATUS_2) {
-                        $is_maintain = CommonService::isMaintain($user);
-                    }
-                    if ($data['approve_status'] == CommonConstant::STATUS_3) {
+                $data['approve_status'] = isset($info['status']) ? $info['status'] : CommonConstant::STATUS_1;
+                if ($group == 'approve') {
+                    // 条件:维修模块 审批状态是审批中 用户是物业主管或信息负责人 是否显示维修人员:false=不显示,true=显示 目的:审批
+                    // 条件:维修模块 审批状态是审批同意 用户是物业主管或信息负责人 反馈状态 是否显示上传反馈结果:false=不显示,true=显示 目的:上传反馈结果
+                    if ($data['module'] == CommonConstant::MODULE_8) {
+                        if ($data['approve_status'] == CommonConstant::STATUS_2) {
+                            $is_maintain = CommonService::isMaintain($user);
+                        }
+                        if ($data['approve_status'] == CommonConstant::STATUS_3) {
 //                        if (CommonService::isMaintain($user) && $data['maintain_user_id'] > 0 && $data['module']['feedback_status'] == CommonConstant::IS_WHO_0) {
-                        if (CommonService::isMaintain($user) && $data['module']['feedback_status'] == CommonConstant::IS_WHO_0) {
-                            $is_feedback = true;
+                            if (CommonService::isMaintain($user) && $data['module']['feedback_status'] == CommonConstant::IS_WHO_0) {
+                                $is_feedback = true;
+                            }
                         }
                     }
                 }
@@ -406,7 +441,7 @@ class ApproveService
                     except(CommonConstant::get_module_list()[CommonConstant::MODULE_8] . '记录不存在或已删除');
                 }
                 $is_maintain = CommonService::isMaintain($user);
-                if(!$is_maintain){
+                if (!$is_maintain) {
                     except('您没有权限操作');
                 }
                 // TODO 没有判断反馈状态
@@ -508,8 +543,8 @@ class ApproveService
             'reason' => $params['reason'],
             'type' => $params['type'],
             'desc' => $params['desc'],
-            'start_time' => $params['module'] == CommonConstant::MODULE_6 ? $params['start_time'].' '.$params['start_am'] : $params['start_time'],
-            'end_time' => $params['module'] == CommonConstant::MODULE_6 ? $params['end_time'].' '.$params['end_am'] : $params['end_time'],
+            'start_time' => $params['module'] == CommonConstant::MODULE_6 ? $params['start_time'] . ' ' . $params['start_am'] : $params['start_time'],
+            'end_time' => $params['module'] == CommonConstant::MODULE_6 ? $params['end_time'] . ' ' . $params['end_am'] : $params['end_time'],
             'apply_id' => $params['apply_id'],
         ];