浏览代码

审批操作

moonsflyer 9 月之前
父节点
当前提交
2910cf6e0a

+ 11 - 0
app/adminapi/controller/asset/AssetLeaseController.php

@@ -111,4 +111,15 @@ class AssetLeaseController extends BaseAdminController
         $lists = array_merge($lists,$list);
         return $this->success('查询成功',$lists, 1, 1);
     }
+
+    public function doApprove(){
+        $params = (new AssetLeaseValidate())->post()->goCheck('approve');
+        $params['approve_uid'] =$this->adminId;
+        $result = AssetLeaseLists::approve($params);
+
+        if (true === $result) {
+            return $this->success('审核完成!', [], 1, 1);
+        }
+        return $this->fail(AssetLeaseLists::getError());
+    }
 }

+ 102 - 2
app/adminapi/lists/asset/AssetLeaseLists.php

@@ -212,12 +212,30 @@ class AssetLeaseLists extends BaseAdminDataLists implements ListsSearchInterface
             'lease_contract_image' => $params['lease_contract_image'] ?? '',
             'lease_money' => $params['lease_money'] ?? 0,
             'lease_start_time' => $params['lease_start_time'] ?? '',
-            'lease_end_time' => $params['lease_end_time'] ?? '', // 联系人
+            'lease_end_time' => $params['lease_end_time'] ?? '',
             'purpose' => $params['purpose'] ?? '',
             'referee_name' =>$params['referee_name'],
             'referee_uid' =>$params['referee_uid'],
             'remark' => $params['remark'] ?? '',
         ]);
+
+        $assetInfo = AssetInfo::find($params['a_id']);
+        $updateAssetData['id'] = $params['a_id'];
+        $updateFlag = false ;
+        if($assetInfo['lease_status']==2){
+            if(strtotime($params['lease_end_time']) > strtotime($assetInfo['lease_expiration_time'])){
+                $updateAssetData['lease_expiration_time'] = $params['lease_end_time'];
+                $updateFlag = true ;
+            }
+        }else{
+            $updateAssetData['lease_expiration_time'] = $params['lease_end_time'];
+            $updateAssetData['lease_status'] = 2;
+            $updateFlag = true ;
+        }
+
+        if($updateFlag){
+            AssetInfo::update($updateAssetData);
+        }
         return ['code' => 200, 'msg' => '新增租赁信息成功!'];
 
     }
@@ -282,7 +300,7 @@ class AssetLeaseLists extends BaseAdminDataLists implements ListsSearchInterface
      */
     public static function delete(array $params)
     {
-        AssetInfo::destroy($params['id']);
+        AssetLeaseInfo::destroy($params['id']);
     }
 
     /**
@@ -296,4 +314,86 @@ class AssetLeaseLists extends BaseAdminDataLists implements ListsSearchInterface
     {
         return AssetLeaseInfo::with('asset')->findOrEmpty($params['id'])->append(['first_status_desc','second_status_desc'])->toArray();
     }
+
+    /**
+     * @notes  租赁资产信息审核
+     * @param array $params
+     * @return bool
+     * @author heshihu
+     * @date 2022/2/22 10:12
+     */
+    public static function approve(array $params) : bool
+    {
+        try {
+
+            $id = $params['id'];
+            $leaseAssetInfo = AssetLeaseInfo::find($id);
+            $updateData['id'] = $id;
+            if(in_array($leaseAssetInfo['approval_status'],[1,2,3])){
+                if(in_array($params['approval_status'],[4,5,6])){
+                    throw new \Exception('请先进行初审操作!');
+                }
+                $approval_status = $params['approval_status'];
+                $ramark = '';
+                if( $approval_status == 3){
+                    $approval_status = 4;
+                    $ramark = '';
+                    $updateData['remark'] = $ramark;
+                }elseif($approval_status == 2){
+                    if(isset($params['remark'])){
+                        if(empty($params['remark'])){
+                            throw new \Exception('请输入驳回原因!');
+                        }else{
+                            $remark = $params['remark'];
+                        }
+                    }else{
+                        throw new \Exception('请输入驳回原因!');
+                    }
+                }else{
+                    $updateData['remark'] = $ramark;
+                }
+
+                if(!empty($remark)){
+                    $updateData['remark'] = $remark;
+                }
+                $updateData['approval_status'] = $approval_status;
+                $updateData['first_uid'] = $params['approve_uid'];
+                $updateData['first_approval_time'] = time();
+            }else{
+                //终审
+                if(in_array($params['approval_status'],[1,2,3])){
+                    throw new \Exception('初审已完成无需再次操作');
+                }
+                $approval_status = $params['approval_status'];
+                $ramark = '';
+                if($approval_status == 6){
+                    if(isset($params['remark'])){
+                        if(empty($params['remark'])){
+                            throw new \Exception('请输入驳回原因!');
+                        }else{
+                            $remark = $params['remark'];
+                        }
+                    }else{
+                        throw new \Exception('请输入驳回原因!');
+                    }
+                }else{
+                    $updateData['remark'] = $ramark;
+                }
+
+                if(!empty($remark)){
+                    $updateData['remark'] = $remark;
+                }
+                $updateData['approval_status'] = $approval_status;
+                $updateData['second_uid'] = $params['approve_uid'];
+                $updateData['end_approval_time'] = time();
+            }
+
+            AssetLeaseInfo::update($updateData);
+
+            return true ;
+        } catch (\Exception $e) {
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
 }

+ 7 - 2
app/adminapi/validate/asset/AssetLeaseValidate.php

@@ -37,10 +37,11 @@ class AssetLeaseValidate extends BaseValidate
         'referee_name'=>'require',
         'first_status' => 'in:1,2,3',
         'second_status' => 'in:0,1,2,3',
+        'approval_status'=>'in:1,2,3,4,5,6',
     ];
 
     protected $message = [
-        'id.require' => '租赁资产信息id必传',
+        'id.require' => '租赁资产订单信息id必传',
         'tenant_name.require' => '租赁人姓名必传!',
         'tenant_name.length' => '资产名称长度须在1-50位字符',
         'tenant_mobile.require' => '租赁人联系方式必传!',
@@ -50,6 +51,7 @@ class AssetLeaseValidate extends BaseValidate
         'lease_contract_image.require' => '合同照片必传',
         'lease_money.require' => '租赁金额必传',
         'referee_name.require' => '提审人不能为空',
+        'approval_status.in' => '审批状态值错误',
     ];
 
     /**
@@ -101,6 +103,9 @@ class AssetLeaseValidate extends BaseValidate
         return $this->only(['id']);
     }
 
+    public function sceneApprove(){
+        return $this->only(['id', 'approval_status']);
+    }
     /**
      * @notes  检查指定资讯是否存在
      * @param $value
@@ -112,7 +117,7 @@ class AssetLeaseValidate extends BaseValidate
     {
         $article = AssetLeaseInfo::findOrEmpty($value);
         if ($article->isEmpty()) {
-            return '租赁资产信息不存在';
+            return '租赁资产订单信息不存在';
         }
         return true;
     }

+ 6 - 3
app/common/enum/asset/AssetEnum.php

@@ -74,15 +74,17 @@ class AssetEnum
     //审核状态  1:等待初审  2 初审驳回  3:等待终审 4:终审通过 5:终审驳回
     const approval_status_first = 1;//等待初审
     const approval_status_unfirst = 2;//初审驳回
-    const approval_status_second = 3;//等待终审
-    const approval_status_seconded = 4;//终审通过
-    const approval_status_unsecond = 5;//终审驳回
+    const approval_status_firsted = 3;//初审通过
+    const approval_status_second = 4;//等待终审
+    const approval_status_seconded = 5;//终审通过
+    const approval_status_unsecond = 6;//终审驳回
 
     /**
     * 显示状态场景 second_status
     */
     const APPROVAL_STATUS_SCENE = [
         ['id'=> self::approval_status_first,'status_desc'=>'等待初审'],
+        ['id'=> self::approval_status_firsted,'status_desc'=>'初审通过'],
         ['id'=> self::approval_status_unfirst,'status_desc'=>'初审驳回'],
         ['id'=> self::approval_status_second,'status_desc'=>'等待终审'],
         ['id'=> self::approval_status_seconded,'status_desc'=>'终审通过'],
@@ -101,6 +103,7 @@ class AssetEnum
         $desc = [
             self::approval_status_first => '等待初审',
             self::approval_status_unfirst => '初审驳回',
+            self::approval_status_firsted=>'初审通过',
             self::approval_status_second => '等待终审',
             self::approval_status_seconded => '终审通过',
             self::approval_status_unsecond=>'终审驳回',