cqpCow 1 년 전
부모
커밋
7f9ea96e5e
5개의 변경된 파일115개의 추가작업 그리고 15개의 파일을 삭제
  1. 13 0
      app/Http/Controllers/Api/AssetController.php
  2. 16 0
      app/Service/AssetService.php
  3. 61 15
      app/Service/InventoryService.php
  4. 22 0
      app/Service/Service.php
  5. 3 0
      routes/api.php

+ 13 - 0
app/Http/Controllers/Api/AssetController.php

@@ -60,4 +60,17 @@ class AssetController extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function getDepAndArea(Request $request)
+    {
+        $service = new AssetService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->getDepAndArea($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 16 - 0
app/Service/AssetService.php

@@ -90,6 +90,8 @@ class AssetService extends Service
             ->orderby('id', 'desc');
         if(! empty($data['name'])) $model->where('name', 'LIKE', '%'.$data['name'].'%');
         if(! empty($data['singleCode'])) $model->where('singleCode', 'LIKE', '%'.$data['singleCode'].'%');
+        if(! empty($data['located'])) $model->where('located', 'LIKE', '%'.$data['located'].'%');
+        if(! empty($data['useDept'])) $model->where('useDept', 'LIKE', '%'.$data['useDept'].'%');
 
         $list = $this->limit($model,'',$data);
 
@@ -115,4 +117,18 @@ class AssetService extends Service
 
         return [true, ''];
     }
+
+    public function getDepAndArea($data){
+        $list = Asset::where('del_time',0)
+            ->select('located','useDept')
+            ->get()->toArray();
+
+        $located = $dep = [];
+        foreach ($list as $value){
+            if(! in_array($value['located'], $located)) $located[] = $value['located'];
+            if(! in_array($value['useDept'], $dep)) $dep[] = $value['useDept'];
+        }
+
+        return [true,['located' => $located,'dep' => $dep]];
+    }
 }

+ 61 - 15
app/Service/InventoryService.php

@@ -2,6 +2,7 @@
 
 namespace App\Service;
 
+use App\Model\Asset;
 use App\Model\Employee;
 use App\Model\InventoryOrder;
 use App\Model\InventoryOrderAsset;
@@ -16,6 +17,9 @@ class InventoryService extends Service
         try{
             DB::beginTransaction();
             $inventory_model = InventoryOrder::where('order_no',$data['order_no'])->first();
+            $inventory_model->inventory_time = $data['inventory_time'] ? json_encode($data['inventory_time']) : '';
+            $inventory_model->inventory_start_time = $data['inventory_start_time'] ?? 0;
+            $inventory_model->inventory_end_time = $data['inventory_end_time'] ?? 0;
             $inventory_model->order_no = $data['order_no'];
             $inventory_model->oa_employee_id = $data['oa_employee_id'] ?? 0;
             $inventory_model->save();
@@ -28,9 +32,8 @@ class InventoryService extends Service
                 foreach ($data['sub'] as $value){
                     $sub[] = [
                         'asset_id' => $value['asset_id'],
-                        'remark' => $value['remark'],
                         'order_no' => $data['order_no'],
-                        'area' => $value['area'],
+                        'located' => $value['located'],
                     ];
                 }
                 InventoryOrderAsset::insert($sub);
@@ -48,10 +51,14 @@ class InventoryService extends Service
     public function add($data,$user){
         list($status,$msg) = $this->orderRule($data);
         if(!$status) return [$status,$msg];
+
         try{
             DB::beginTransaction();
             $inventory_model = new InventoryOrder();
             $inventory_model->order_no = $data['order_no'];
+            $inventory_model->inventory_time = $data['inventory_time'] ? json_encode($data['inventory_time']) : '';
+            $inventory_model->inventory_start_time = $data['inventory_start_time'] ?? 0;
+            $inventory_model->inventory_end_time = $data['inventory_end_time'] ?? 0;
             $inventory_model->oa_employee_id = $data['oa_employee_id'] ?? 0;
             $inventory_model->crt_id = $user['id'];
             $inventory_model->save();
@@ -61,9 +68,8 @@ class InventoryService extends Service
                 foreach ($data['sub'] as $value){
                     $sub[] = [
                         'asset_id' => $value['asset_id'],
-                        'remark' => $value['remark'],
                         'order_no' => $data['order_no'],
-                        'area' => $value['area'],
+                        'located' => $value['located'],
                     ];
                 }
                 InventoryOrderAsset::insert($sub);
@@ -81,38 +87,63 @@ class InventoryService extends Service
     public function detail($data){
         if($this->isEmpty($data,'order_no')) return [false,'请选择数据'];
 
-        $order = InventoryOrder::where('order_no',$data['order_number'])
+        $order = InventoryOrder::where('order_no',$data['order_no'])
             ->where('del_time',0)
-            ->select('id','order_no','crt_time','state','crt_id')
+            ->select('id','order_no','crt_time','state','crt_id','inventory_time')
             ->first();
         if(empty($order)) return [true,[]];
         $order = $order->toArray();
+        if($order['inventory_time']) {
+            $return = $this->changeDateToNewDate(json_decode($order['inventory_time'],true));
+            $order['inventory_time'] = $return[0] . '-' . $return[1];
+        }
 
         $apply = InventoryOrderAsset::where('order_no',$data['order_no'])
             ->where('del_time',0)
-            ->select('id','asset_id','state','remark','order_no','area')
+            ->select('id','asset_id','state','remark','order_no','located')
             ->get()
             ->toArray();
-        $order['sub'] = $apply;
+        $asset = Asset::whereIn('id',array_column($apply,'asset_id'))->get()->toArray();
+        $asset = array_column($asset,null,'id');
+
+        $sub = [];$externalArray = [];
+        foreach ($apply as $value){
+            $tmp = [];
+            $tmp = $asset[$value['asset_id']];
+            $tmp['t_id'] = $value['id'];
+            $tmp['t_state'] = $value['state'];
+            $tmp['t_remark'] = $value['remark'];
+            if(! isset($sub[$value['located']])){
+                $sub[$value['located']] = [
+                    'located' => $value['located'],
+                    'children' => [$tmp]
+                ];
+            }else{
+                $sub[$value['located']]['children'] = array_merge($sub[$value['located']]['children'] ,[$tmp]);
+            }
+
+        }
 
-        return [true,$order];
+        $order['sub'] = array_values($sub);
+
+        return [true, $order];
     }
 
     public function del($data){
         if($this->isEmpty($data,'order_no')) return [false,'请选择数据!'];
 
-        $bool = InventoryOrder::whereIn('order_no',$data['order_no'])
-            ->where('status','>',InventoryOrder::STATE_ZERO)
+        $bool = InventoryOrder::where('order_no',$data['order_no'])
+            ->where('state','>',InventoryOrder::STATE_ZERO)
             ->exists();
         if($bool) return [false,'请确认盘点单状态,删除失败!'];
 
         try{
             DB::beginTransaction();
 
-            InventoryOrder::whereIn('order_no',$data['order_no'])
+            InventoryOrder::where('order_no',$data['order_no'])
                 ->where('del_time',0)
                 ->update(['del_time' => time()]);
-            InventoryOrderAsset::whereIn('order_no',$data['order_no'])
+            InventoryOrderAsset::where('order_no',$data['order_no'])
                 ->where('del_time',0)
                 ->update(['del_time' => time()]);
 
@@ -127,13 +158,18 @@ class InventoryService extends Service
 
     public function getList($data){
         $model = InventoryOrder::where('del_time',0)
-            ->select('order_no','id','crt_time','state','crt_id')
+            ->select('order_no','id','crt_time','state','crt_id','inventory_time')
             ->orderby('id', 'desc');
         if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])){
             $return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
             $model->where('crt_time','>=',$return[0]);
             $model->where('crt_time','<',$return[1]);
         }
+        if(! empty($data['inventory_time'][0]) && ! empty($data['inventory_time'][1])){
+            $return = $this->changeDateToTimeStampAboutRange($data['inventory_time']);
+            $model->where('inventory_start_time','>=',$return[0]);
+            $model->where('inventory_end_time','<',$return[1]);
+        }
         if(! empty($data['order_no'])) $model->where('order_no', 'LIKE', '%'.$data['order_no'].'%');
         if(! empty($data['state'])) $model->where('state', $data['state']);
 
@@ -152,6 +188,11 @@ class InventoryService extends Service
         foreach ($data['data'] as $key => $value){
             $data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d",$value['crt_time']) : '';
             $data['data'][$key]['crt_name'] = $emp_map[$value['crt_id']] ?? '';
+            if($value['inventory_time']) {
+                $return = $this->changeDateToNewDate(json_decode($value['inventory_time'],true));
+                $value['inventory_time'] = $return[0] . ' ' . $return[1];
+            }
+            $data['data'][$key]['inventory_time'] = $value['inventory_time'];
         }
 
         return $data;
@@ -171,8 +212,13 @@ class InventoryService extends Service
                 ->exists();
             if($bool) return [false,'编辑失败,请确认盘点单状态!'];
         }
+        if(! empty($data['inventory_time'])){
+            $return = $this->changeDateToTimeStampAboutRange($data['inventory_time']);
+            $data['inventory_start_time'] = $return[0];
+            $data['inventory_end_time'] = $return[1];
+        }
 
-        return [true, ];
+        return [true, ''];
     }
 
     public function createOrderNumber(){

+ 22 - 0
app/Service/Service.php

@@ -248,4 +248,26 @@ class Service
 
         return $return;
     }
+
+    function changeDateToNewDate($time_range){
+        if(empty($time_range[0]) || empty($time_range[1])) return [];
+
+        // 创建一个 DateTime 对象并设置时区为 UTC
+        $dateTime = new \DateTime($time_range[0], new \DateTimeZone('UTC'));
+        $dateTime1 = new \DateTime($time_range[1], new \DateTimeZone('UTC'));
+
+        // 将时区设置为 PRC
+        $dateTime->setTimezone(new \DateTimeZone('Asia/Shanghai'));
+        $dateTime1->setTimezone(new \DateTimeZone('Asia/Shanghai'));
+
+        // 将日期时间格式化为特定格式
+        $formattedDate = $dateTime->format('Y-m-d');
+        $formattedDate1 = $dateTime1->format('Y-m-d');
+
+        $return = [];
+        $return[] = $formattedDate;
+        $return[] = $formattedDate1;
+
+        return $return;
+    }
 }

+ 3 - 0
routes/api.php

@@ -55,11 +55,14 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('assetEdit', 'Api\AssetController@edit');
     $route->any('assetDel', 'Api\AssetController@del');
     $route->any('assetList', 'Api\AssetController@assetList');
+    //区域和部门
+    $route->any('getDepAndArea','Api\AssetController@getDepAndArea');
 
     //盘点
     $route->any('inventoryAdd', 'Api\InventoryController@add');
     $route->any('inventoryEdit', 'Api\InventoryController@edit');
     $route->any('inventoryDel', 'Api\InventoryController@del');
+    $route->any('inventoryDetail', 'Api\InventoryController@detail');
     $route->any('inventoryList', 'Api\InventoryController@orderList');
     $route->any('inventoryAssetUpdateState', 'Api\InventoryController@updateAssetState');
     $route->any('inventoryOrderUpdateState', 'Api\InventoryController@updateOrderState');