Browse Source

Merge remote-tracking branch 'origin/master'

gogs 1 year ago
parent
commit
d65257def6

+ 12 - 0
app/Http/Controllers/Api/CheckController.php

@@ -19,4 +19,16 @@ class CheckController extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function getOrderDetail(Request $request){
+        $service = new CheckService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->getOrderDetail($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 1 - 1
app/Http/Controllers/Api/ConstructionController.php

@@ -62,7 +62,7 @@ class ConstructionController extends BaseController
     public function constructionDetail(Request $request)
     {
         $service = new ConstructionService();
-        list($status,$data) = $service->constructionDetail($request->all());
+        list($status,$data) = $service->detail($request->all());
 
         if($status){
             return $this->json_return(200,'',$data);

+ 1 - 1
app/Http/Controllers/Api/SalesOrderController.php

@@ -62,7 +62,7 @@ class SalesOrderController extends BaseController
     public function salesOrderDetail(Request $request)
     {
         $service = new SalesOrderService();
-        list($status,$data) = $service->salesOrderDetail($request->all());
+        list($status,$data) = $service->detail($request->all());
 
         if($status){
             return $this->json_return(200,'',$data);

+ 26 - 0
app/Service/CheckService.php

@@ -833,6 +833,32 @@ class CheckService extends Service
         return [true,''];
     }
 
+    public function getOrderDetail($data,$user){
+        if(empty($data['order_number'])) return [false,'必传参数不能为空'];
+        $array = [];
+        foreach (Construction::$prefix as $value){
+            $array[$value] = "\App\Service\\ConstructionService";
+        }
+        foreach (ReturnExchangeOrder::$prefix as $value){
+            $array[$value] = "\App\Service\\ReturnExchangeOrderService";
+        }
+        foreach (SalesOrder::$prefix as $value){
+            $array[$value] = "\App\Service\\SalesOrderService";
+        }
+        $array[PurchaseOrder::prefix] = "\App\Service\\PurchaseOrderService";
+
+        $status = true;
+        $msg = [];
+        foreach ($array as $key => $value){
+            if(strpos($data['order_number'],$key) !== false) {
+                list($status, $msg) = (new $value)->detail($data);
+                return [$status, $msg];
+            }
+        }
+
+        return [$status, $msg];
+    }
+
     public function checkAll($data,$user){
         if(empty($data['id']) || empty($data['order_number'])|| empty($data['opt_case'])) return [false,'必传参数不能为空或者参数值错误!'];
 

+ 20 - 5
app/Service/ConstructionService.php

@@ -270,12 +270,19 @@ class ConstructionService extends Service
      * @param $data
      * @return array
      */
-    public function constructionDetail($data){
-        if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
+    public function detail($data){
+        if(empty($data['id']) && empty($data['order_number'])) return [false,'请选择数据!'];
 
-        $construction = Construction::where('del_time',0)
-            ->where('id',$data['id'])
-            ->first();
+        if(! empty($data['id'])){
+            $construction = Construction::where('del_time',0)
+                ->where('id',$data['id'])
+                ->first();
+        }else{
+            $construction = Construction::where('del_time',0)
+                ->where('order_number',$data['order_number'])
+                ->first();
+            $data['id'] = empty($construction->id) ? 0 : $construction->id;
+        }
         if(empty($construction)) return [false,'施工订单不存在或已被删除'];
         $construction = $construction->toArray();
         $address = '';
@@ -399,6 +406,14 @@ class ConstructionService extends Service
             $model->where('start_time','>=',$return[0]);
             $model->where('end_time','<=',$return[1]);
         }
+        if(! empty($data['sale_order'])){
+            $model2 = SalesOrder::Clear($user,$data);
+            $sale = $model2->where('del_time',0)
+                ->where('order_number', 'LIKE', '%'.$data['sale_order'].'%')
+                ->select('id')
+                ->get()->toArray();
+            $model->whereIn('sales_order_id',array_unique(array_column($sale,'id')));
+        }
 
         $list = $this->limit($model,'',$data);
         $list = $this->fillData($list);

+ 10 - 0
app/Service/CustomerService.php

@@ -475,6 +475,16 @@ class CustomerService extends Service
             }
         }
         if(! empty($data['model_type'])) $model->where('model_type',$data['model_type']);
+        if(! empty($data['consulting_product'])) $model->where('consulting_product','LIKE', '%'.$data['consulting_product'].'%');
+        if(! empty($data['mark'])) $model->where('mark','LIKE', '%'.$data['mark'].'%');
+        if(! empty($data['customer_intention'])) $model->where('customer_intention',$data['customer_intention']);
+        if(! empty($data['customer_from'])) $model->where('customer_from',$data['customer_from']);
+        if(! empty($data['customer_type'])) $model->where('customer_type',$data['customer_type']);
+        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]);
+        }
 
         $list = $this->limit($model,'',$data);
         $list = $this->fillData($list);

+ 16 - 0
app/Service/InvoiceOrderService.php

@@ -239,6 +239,22 @@ class InvoiceOrderService extends Service
                 $model->where('crt_time','<=',$end);
             }
         }
+        if(! empty($data['send_man'])){
+            $emp = Employee::where('del_time',0)
+                ->where('emp_name', 'LIKE', '%'.$data['send_man'].'%')
+                ->select('id')
+                ->get()->toArray();
+            $model->whereIn('send',array_unique(array_column($emp,'id')));
+        }
+        if(! empty($data['take'])) $model->where('take', 'LIKE', '%'.$data['take'].'%');
+        if(! empty($data['sale_order'])){
+            $model2 = SalesOrder::Clear($user,$data);
+            $sale = $model2->where('del_time',0)
+                ->where('order_number', 'LIKE', '%'.$data['sale_order'].'%')
+                ->select('id')
+                ->get()->toArray();
+            $model->whereIn('sales_order_id',array_unique(array_column($sale,'id')));
+        }
 
         $list = $this->limit($model,'',$data);
         $list = $this->fillListData($list);

+ 2 - 0
app/Service/ProductActivityService.php

@@ -171,7 +171,9 @@ class ProductActivityService extends Service
             ->select('id','title','crt_id','mark','start_time','end_time','crt_time','type')
             ->orderby('id', 'desc');
 
+        if(! empty($data['type'])) $model->where('type', $data['type']);
         if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
+        if(! empty($data['mark'])) $model->where('mark', 'LIKE', '%'.$data['mark'].'%');
         if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
             $return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
             $model->where('crt_time','>=',$return[0]);

+ 15 - 0
app/Service/ProductService.php

@@ -514,6 +514,21 @@ class ProductService extends Service
         if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
         if(isset($data['state'])) $model->where('state', $data['state']);
         if(! empty($data['product_category_id'])) $model->where('product_category_id', $data['product_category_id']);
+        if(! empty($data['product_category'])) {
+            $model2 = ProductCategory::TopClear($user,$data);
+            $product_category = $model2->where('del_time',0)
+                ->where('title', 'LIKE', '%'.$data['title'].'%')
+                ->select('id')
+                ->get()->toArray();
+            $model->whereIn('product_category_id',array_unique(array_column($product_category,'id')));
+        }
+        if(! empty($data['code'])) $model->where('code', 'LIKE', '%'.$data['code'].'%');
+        if(! empty($data['bar_code'])) $model->where('bar_code', 'LIKE', '%'.$data['bar_code'].'%');
+        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]);
+        }
 
         $list = $this->limit($model,'',$data);
         $list = $this->fillData($list,$user,$data);

+ 48 - 5
app/Service/ReturnExchangeOrderService.php

@@ -168,12 +168,19 @@ class ReturnExchangeOrderService extends Service
     }
 
     public function detail($data){
-        if($this->isEmpty($data,'id')) return [false,'请选择数据'];
+        if(empty($data['id']) && empty($data['order_number'])) return [false,'请选择数据!'];
+
+        if(! empty($data['id'])){
+            $order = ReturnExchangeOrder::where('del_time',0)
+                ->where('id',$data['id'])
+                ->first();
+        }else{
+            $order = ReturnExchangeOrder::where('del_time',0)
+                ->where('order_number',$data['order_number'])
+                ->first();
+            $data['id'] = empty($order->id) ? 0 : $order->id;
+        }
 
-        $order = ReturnExchangeOrder::where('id',$data['id'])
-            ->where('del_time',0)
-            ->select('id','order_number','model_type','data_id','difference_amount','crt_id','mark','state','crt_time','storehouse_id','depart_id','top_depart_id','type')
-            ->first();
         if(empty($order)) return [false, '退换货订单不存在或已被删除'];
         $order = $order->toArray();
         $order['storehouse_title'] = Storehouse::where('id',$order['storehouse_id'])->value('title');
@@ -262,6 +269,12 @@ class ReturnExchangeOrderService extends Service
             $model->whereBetween('crt_time',[$return[0],$return[1]]);
         }
         if(isset($data['type'])) $model->where('type',$data['type']);
+        if(! empty($data['order'])){
+            $search = -1;
+            if(isset($data['type'])) $search = $data['type'];
+            $id = $this->getDataId($search,$user,$data);
+            $model->whereIn('data_id',$id);
+        }
 
         $list = $this->limit($model,'',$data);
         $list = $this->fillListData($list);
@@ -269,6 +282,36 @@ class ReturnExchangeOrderService extends Service
         return [true, $list];
     }
 
+    public function getDataId($search,$user,$data){
+        if($search < 0){
+            $model2 = SalesOrder::Clear($user,$data);
+            $sale = $model2->where('del_time',0)
+                ->where('order_number', 'LIKE', '%'.$data['order'].'%')
+                ->select('id')
+                ->get()->toArray();
+            $model2 = PurchaseOrder::Clear($user,$data);
+            $purchase = $model2->where('del_time',0)
+                ->where('order_number', 'LIKE', '%'.$data['order'].'%')
+                ->select('id')
+                ->get()->toArray();
+            return array_unique(array_merge_recursive(array_column($sale,'id'),array_column($purchase,'id')));
+        }elseif ($search == 0){
+            $model2 = SalesOrder::Clear($user,$data);
+            $sale = $model2->where('del_time',0)
+                ->where('order_number', 'LIKE', '%'.$data['order'].'%')
+                ->select('id')
+                ->get()->toArray();
+            return array_column($sale,'id');
+        }else{
+            $model2 = PurchaseOrder::Clear($user,$data);
+            $purchase = $model2->where('del_time',0)
+                ->where('order_number', 'LIKE', '%'.$data['order'].'%')
+                ->select('id')
+                ->get()->toArray();
+            return array_column($purchase,'id');
+        }
+    }
+
     public function fillListData($data){
         if(empty($data['data'])) return $data;
 

+ 39 - 6
app/Service/SalesOrderService.php

@@ -377,12 +377,20 @@ class SalesOrderService extends Service
      * @param $data
      * @return array
      */
-    public function salesOrderDetail($data){
-        if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
+    public function detail($data){
+        if(empty($data['id']) && empty($data['order_number'])) return [false,'请选择数据!'];
+
+        if(! empty($data['id'])){
+            $sales = SalesOrder::where('del_time',0)
+                ->where('id',$data['id'])
+                ->first();
+        }else{
+            $sales = SalesOrder::where('del_time',0)
+                ->where('order_number',$data['order_number'])
+                ->first();
+            $data['id'] = empty($sales->id) ? 0 : $sales->id;
+        }
 
-        $sales = SalesOrder::where('del_time',0)
-            ->where('id',$data['id'])
-            ->first();
         if(empty($sales)) return [false,'合同不存在或已被删除'];
         $sales = $sales->toArray();
         $customer = Customer::where('id',$sales['customer_id'])->value('title');
@@ -585,6 +593,31 @@ class SalesOrderService extends Service
                 $model->where('state', '>=', SalesOrder::State_four);
             }
         }
+        if(isset($data['state'])) $model->where('state',$data['state']);
+        if(isset($data['invoice_state'])) $model->where('invoice_state',$data['invoice_state']);
+        if(! empty($data['order_type'])) $model->where('order_type',$data['order_type']);
+        if(! empty($data['business_type'])) $model->where('business_type',$data['business_type']);
+        if(! empty($data['sale_type'])) $model->where('sale_type',$data['sale_type']);
+        if(! empty($data['plat_type'])) $model->where('order_type',$data['plat_type']);
+        if(! empty($data['plat_order'])) $model->where('plat_order','LIKE', '%'.$data['plat_order'].'%');
+        if(! empty($data['customer'])) {
+            $model2 = Customer::Clear($user,$data);
+            $customer = $model->where('del_time',0)
+                ->where('title', 'LIKE', '%'.$data['title'].'%')
+                ->select('id')
+                ->get()->toArray();
+            $model->whereIn('customer_id',array_unique(array_column($customer,'id')));
+        }
+        if(! empty($data['sign_time'])){
+            $return = $this->changeDateToNewDate2($data['sign_time']);
+            $model->where('sign_time','>=',$return[0]);
+            $model->where('sign_time','<=',$return[1]);
+        }
+        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]);
+        }
 
         $list = $this->limit($model,'',$data);
         $list = $this->fillData($list,$data);
@@ -751,7 +784,7 @@ class SalesOrderService extends Service
             $data['data'][$key]['send_state_title'] = $basic_map[$value['send_state']] ?? '';
             $data['data'][$key]['logistics_company_title'] = $basic_map[$value['logistics_company']] ?? '';
             $data['data'][$key]['customer_title'] = $customer[$value['customer_id']] ?? '';
-            $data['data'][$key]['sign_time'] = $value['sign_time'] ? date('Y-m-d H:i:s',$value['sign_time']) : '';
+            $data['data'][$key]['sign_time'] = $value['sign_time'] ? date('Y-m-d',$value['sign_time']) : '';
             $data['data'][$key]['construction_time'] = $value['construction_time'] ? date('Y-m-d H:i:s',$value['construction_time']) : '';
             $data['data'][$key]['handover_time'] = $value['handover_time'] ? date('Y-m-d H:i:s',$value['handover_time']) : '';
             $data['data'][$key]['expire_time'] = $value['expire_time'] ? date('Y-m-d H:i:s',$value['expire_time']) : '';

+ 20 - 0
app/Service/Service.php

@@ -312,6 +312,26 @@ class Service
         return $return;
     }
 
+    function changeDateToNewDate2($time){
+        if(empty($time_range)) return [];
+
+        // 创建一个 DateTime 对象并设置时区为 UTC
+        $dateTime = new \DateTime($time_range, new \DateTimeZone('UTC'));
+
+        // 将时区设置为 PRC
+        $dateTime->setTimezone(new \DateTimeZone('Asia/Shanghai'));
+
+        // 将日期时间格式化为特定格式
+        $formattedDate = $dateTime->format('Y-m-d 00:00:00');
+        $formattedDate1 = $dateTime->format('Y-m-d 23:59:59');
+
+        $return = [];
+        $return[] = strtotime($formattedDate);
+        $return[] = strtotime($formattedDate1);
+
+        return $return;
+    }
+
     //前端传来的时间 转为时间戳
     //精确到分
     function changeDateToDateMin($time){

+ 1 - 0
app/Service/SportsBagService.php

@@ -180,6 +180,7 @@ class SportsBagService extends Service
             $model->where('end_time','>=',$time);
         }
         if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
+        if(! empty($data['mark'])) $model->where('mark', 'LIKE', '%'.$data['mark'].'%');
         if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
             $return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
             $model->where('crt_time','>=',$return[0]);

+ 8 - 0
app/Service/SupplierService.php

@@ -144,6 +144,14 @@ class SupplierService extends Service
             ->orderby('id', 'asc');
 
         if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
+        if(! empty($data['mobile'])) $model->where('mobile', 'LIKE', '%'.$data['mobile'].'%');
+        if(! empty($data['mark'])) $model->where('mark', 'LIKE', '%'.$data['mark'].'%');
+        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['get_all'])) $model->orWhere('is_main',Supplier::is_main);
         $list = $this->limit($model,'',$data);
         $list = $this->fillData($list);

+ 3 - 0
routes/api.php

@@ -246,4 +246,7 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('getTableHead','Api\TableHeadController@tableHeadGet');
     //设置表头
     $route->any('setTableHead','Api\TableHeadController@tableHeadAdd');
+
+    //获取审核单据的详情
+    $route->any('checkDetail', 'Api\CheckController@getOrderDetail');
 });