Parcourir la source

统计资产书

moonsflyer il y a 9 mois
Parent
commit
28104c89f6

+ 5 - 8
app/adminapi/controller/asset/AssetController.php

@@ -29,6 +29,7 @@ use app\adminapi\validate\notice\NoticeValidate;
  */
 class AssetController extends BaseAdminController
 {
+    public array $notNeedLogin = ['getAssetData'];
     /**
      * @notes 查看资产列表
      * @return \think\response\Json
@@ -95,18 +96,14 @@ class AssetController extends BaseAdminController
     }
 
     /**
-     * @notes 通知设置
+     * @notes 获取资产数据
      * @return \think\response\Json
      * @author 段誉
      * @date 2022/3/29 11:18
      */
-    public function set()
+    public function getAssetData()
     {
-        $params = $this->request->post();
-        $result = NoticeLogic::set($params);
-        if ($result) {
-            return $this->success('设置成功');
-        }
-        return $this->fail(NoticeLogic::getError());
+        $result = AssetLists::getAssetData();
+        return $this->success('查询成功', $result, 1, 1);
     }
 }

+ 10 - 3
app/adminapi/controller/asset/AssetLeaseController.php

@@ -108,9 +108,16 @@ class AssetLeaseController extends BaseAdminController
 
     public function getApprovalSattusDesc(){
         $list = AssetEnum::APPROVAL_STATUS_SCENE;
-        $lists =[ ['id'=>0,'status_desc'=>'全部']];
-        $lists = array_merge($lists,$list);
-        return $this->success('查询成功',$lists, 1, 1);
+        $params = $this->request->get();
+        if(isset($params['flag'])){
+            if($params['flag']){
+                $lists =[ ['id'=>0,'status_desc'=>'全部']];
+                $list = array_merge($lists,$list);
+            }
+        }
+
+
+        return $this->success('查询成功',$list, 1, 1);
     }
 
     public function doApprove(){

+ 35 - 0
app/adminapi/lists/asset/AssetLists.php

@@ -15,6 +15,7 @@
 namespace app\adminapi\lists\asset;
 
 use app\adminapi\lists\BaseAdminDataLists;
+use app\common\enum\asset\AssetEnum;
 use app\common\lists\ListsSearchInterface;
 use app\common\model\article\Article;
 use app\common\model\notice\NoticeSetting;
@@ -162,4 +163,38 @@ class AssetLists extends BaseAdminDataLists implements ListsSearchInterface
 
         return $assetList;
     }
+
+    public static function getAssetData():array
+    {
+        $where = [] ;
+
+        $where[]=['status','=',1];
+        $assetList = AssetInfo::where($where)->field('lease_status,count(id) total_number')->append(['lease_status_desc'])->group('lease_status')->select()->toArray();
+        $all_lease_status = AssetEnum::LEASE_STATTUS_SCENE;
+        $lease_satus = array_column($assetList,'lease_status');
+        $diff_lease_satus = array_diff($all_lease_status, $lease_satus);
+        if(!empty($diff_lease_satus)){
+            foreach($diff_lease_satus as $dv){
+                $pushData['lease_status_desc'] = AssetEnum::getLeaseStatusDesc($dv);
+                $pushData['lease_status'] = $dv;
+                $pushData['total_number'] = 0;
+
+                $assetList[]=$pushData;
+            }
+        }
+        $totalNumber = sumValues($assetList,'total_number');
+        $leave_unused = 0;
+        foreach($assetList as $av){
+            if($av['lease_status'] == 1){
+                $leave_unused = $av['total_number'];
+            }
+        }
+
+        $unused_rate = $totalNumber?round(($leave_unused/$totalNumber*100),2):100;
+        $return_data['leave_unused_num'] = $leave_unused;
+        $return_data['unused_rate'] = $unused_rate;
+        $return_data['asset_list'] = $assetList;
+
+        return $return_data;
+    }
 }

+ 12 - 1
app/common.php

@@ -16,7 +16,18 @@ function create_password(string $plaintext, string $salt) : string
     return md5($salt . md5($plaintext . $salt));
 }
 
-
+function sumValues($array, $key) {
+    $sum = 0;
+    foreach ($array as $element) {
+        if (is_array($element)) {
+            $sum += $element[$key]; // 递归调用
+        }
+//        elseif (isset($element[$key])) {
+//            $sum += $element[$key]; // 累加符合条件的值
+//        }
+    }
+    return $sum;
+}
 /**
  * @notes 随机生成token值
  * @param string $extra