zhanglinxin 1 year ago
parent
commit
7dde75e72a

+ 0 - 1
application/api/controller/Approveinfo.php

@@ -2,7 +2,6 @@
 
 namespace app\api\controller;
 
-use app\common\constant\CommonConstant;
 use app\common\service\ApproveInfoService;
 use hg\apidoc\annotation as Apidoc;
 use think\Db;

+ 54 - 24
application/common/constant/CommonConstant.php

@@ -8,30 +8,6 @@ namespace app\common\constant;
 class CommonConstant
 {
 
-    // 删除状态:0=正常,1=删除
-    const IS_DELETED_0 = '0';
-    const IS_DELETED_1 = '1';
-
-    public static function get_is_deleted_list()
-    {
-        return [
-            self::IS_DELETED_0 => '正常',
-            self::IS_DELETED_1 => '删除',
-        ];
-    }
-
-    // 是否状态:0=否,1=是
-    const IS_WHO_0 = '0';
-    const IS_WHO_1 = '1';
-
-    public static function get_is_who_list()
-    {
-        return [
-            self::IS_WHO_0 => '否',
-            self::IS_WHO_1 => '是',
-        ];
-    }
-
     // 模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件
     const MODULE_1 = '1';
     const MODULE_2 = '2';
@@ -45,6 +21,18 @@ class CommonConstant
     const MODULE_10 = '10';
     const MODULE_11 = '11';
 
+    const MODULE_1_MODEL = 'app\common\model\UserCandidate';
+    const MODULE_2_MODEL = 'app\common\model\UserHr';
+    const MODULE_3_MODEL = 'app\common\model\UserHeadhunter';
+    const MODULE_4_MODEL = 'app\common\model\UserSchool';
+    const MODULE_5_MODEL = \app\common\model\ApproveEvection::class;
+    const MODULE_6_MODEL = 'app\admin\model\Admin';
+    const MODULE_7_MODEL = 'app\admin\model\Admin';
+    const MODULE_8_MODEL = 'app\admin\model\Admin';
+    const MODULE_9_MODEL = 'app\admin\model\Admin';
+    const MODULE_10_MODEL = 'app\admin\model\Admin';
+    const MODULE_11_MODEL = 'app\admin\model\Admin';
+
     public static function get_module_list()
     {
         return [
@@ -62,6 +50,48 @@ class CommonConstant
         ];
     }
 
+    public static function get_module_model_list()
+    {
+        return [
+            self::MODULE_1 => self::MODULE_1_MODEL,
+            self::MODULE_2 => self::MODULE_2_MODEL,
+            self::MODULE_3 => self::MODULE_3_MODEL,
+            self::MODULE_4 => self::MODULE_4_MODEL,
+            self::MODULE_5 => self::MODULE_5_MODEL,
+            self::MODULE_6 => self::MODULE_6_MODEL,
+            self::MODULE_7 => self::MODULE_7_MODEL,
+            self::MODULE_8 => self::MODULE_8_MODEL,
+            self::MODULE_9 => self::MODULE_9_MODEL,
+            self::MODULE_10 => self::MODULE_10_MODEL,
+            self::MODULE_11 => self::MODULE_11_MODEL,
+        ];
+    }
+
+
+    // 删除状态:0=正常,1=删除
+    const IS_DELETED_0 = '0';
+    const IS_DELETED_1 = '1';
+
+    public static function get_is_deleted_list()
+    {
+        return [
+            self::IS_DELETED_0 => '正常',
+            self::IS_DELETED_1 => '删除',
+        ];
+    }
+
+    // 是否状态:0=否,1=是
+    const IS_WHO_0 = '0';
+    const IS_WHO_1 = '1';
+
+    public static function get_is_who_list()
+    {
+        return [
+            self::IS_WHO_0 => '否',
+            self::IS_WHO_1 => '是',
+        ];
+    }
+
     // 流程类型:1=审批人,2=抄送人
     const TYPE_1 = '1';
     const TYPE_2 = '2';

+ 54 - 0
application/common/model/ApproveEvection.php

@@ -0,0 +1,54 @@
+<?php
+
+namespace app\common\model;
+
+use app\common\constant\CommonConstant;
+use think\Model;
+
+/**
+ * 出差信息模型
+ */
+class ApproveEvection extends Model
+{
+    // 表名
+    protected $name = 'approve_evection';
+
+    // 追加属性
+    protected $append = [
+        'document_text',
+        'images_text',
+    ];
+
+
+    public function getDocumentTextAttr($value, $data)
+    {
+        $value = $value ? $value : (isset($data['document']) ? $data['document'] : '');
+        return $value ? explode(',', $value) : [];
+    }
+
+    public function getImagesTextAttr($value, $data)
+    {
+        $value = $value ? $value : (isset($data['images']) ? $data['images'] : '');
+        return $value ? explode(',', $value) : [];
+    }
+
+
+    // 关联出差同行人员
+    public function peerUser()
+    {
+        return $this->hasMany(ApproveEvectionPeerUser::class, 'info_id', 'id');
+    }
+
+    // 关联出差审批
+    public function approve()
+    {
+        return $this->hasMany(Approve::class, 'info_id', 'id')->where('is_deleted',CommonConstant::IS_DELETED_0);
+    }
+
+    // 关联出差审批
+    public function approveInfo()
+    {
+        return $this->hasOne(Approve::class, 'info_id', 'id')->where('is_deleted',CommonConstant::IS_DELETED_0)->where('approve_type', CommonConstant::TYPE_1);
+    }
+
+}

+ 11 - 0
application/common/model/ApproveInfo.php

@@ -33,6 +33,17 @@ class ApproveInfo extends Model
     }
 
 
+    // 审批多态显示
+    public function moduleInfo()
+    {
+        $models = CommonConstant::get_module_model_list();
+
+        return $this->morphTo([
+            'group_id',
+            'module_id'
+        ], $models);
+    }
+
     // 关联出差同行人员
     public function peerUser()
     {

+ 30 - 8
application/common/service/ApproveInfoService.php

@@ -6,6 +6,7 @@ use app\common\constant\CommonConstant;
 use app\common\model\Department;
 use app\common\model\Approve;
 use app\common\model\ApproveInfo;
+use app\common\model\ApproveEvection;
 use app\common\model\ApproveEvectionPeerUser;
 use app\common\model\User;
 use think\Exception;
@@ -46,19 +47,15 @@ class ApproveInfoService
         $copy_user = explode(',', $params['copy_user']);
         $approve_num = count($approve_user);
         $data = [
+            'module' => $module,
             'user_id' => $userid,
+            'approve_num' => $approve_num,
+            'cur_num' => 0,
             'order_no' => $order_no,
             'apply_date' => date("Y-m-d"),
             'reason' => $params['reason'],
             'start_time' => $params['start_time'],
             'end_time' => $params['end_time'],
-            'document' => $params['document'],
-            'images' => $params['images'],
-            'type' => $params['type'],
-            'is_who' => $params['is_who'],
-            'remark' => $params['remark'],
-            'approve_num' => $approve_num,
-            'cur_num' => 0,
         ];
         if ($id > 0) {
             // 编辑出差申请
@@ -77,9 +74,12 @@ class ApproveInfoService
 
 
         } else {
-            // 添加出差申请
+            // 添加审批申请
             $info = ApproveInfo::create($data);
 
+            // 添加对应模块
+            self::create_module($module,$params);
+
             // 添加审批
             self::create_approve($info->id, $approve_user, $copy_user);
 
@@ -90,6 +90,28 @@ class ApproveInfoService
         }
     }
 
+    protected static function create_module($module,$params){
+        $data = [
+            'module' => $module,
+            'user_id' => $userid,
+            'approve_num' => $approve_num,
+            'cur_num' => 0,
+            'order_no' => $order_no,
+            'apply_date' => date("Y-m-d"),
+            'reason' => $params['reason'],
+            'start_time' => $params['start_time'],
+            'end_time' => $params['end_time'],
+            'document' => $params['document'],
+            'images' => $params['images'],
+            'type' => $params['type'],
+            'is_who' => $params['is_who'],
+            'remark' => $params['remark'],
+        ];
+
+        $models = CommonConstant::get_module_model_list();
+        $models = $models[$module] ?? '';
+    }
+
     protected static function create_approve($info_id, $approve_user, $copy_user,$type = 'create')
     {
         if($type == 'update'){