LD 5 лет назад
Родитель
Сommit
5e2dbc7a7d

+ 10 - 1
app/Http/Controllers/TestController.php

@@ -21,6 +21,7 @@ use App\OracleDOCWaveDetails;
 use App\Order;
 use App\OrderIssue;
 use App\OrderPackage;
+use App\OrderPackageCommodities;
 use App\OrderTracking;
 use App\OrderTrackingOwner;
 use App\Owner;
@@ -662,5 +663,13 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         app(OrderPackageService::class)->删除多余的订单包裹_根据WMS订单($orderHeaders);
     }
 
-
+    public function get11()
+    {
+        $orderPackageCommodities = OrderPackageCommodities::query()->with(['package.order','commodity'])
+            ->get();
+        $orderNos =array_unique(data_get($orderPackageCommodities,'*.package.order.code'));
+//        $orderHeaders = OracleDOCOrderHeader::query()->with(['actAllocationDetails'])->whereIn('orderno',$orderNos)->get();
+//        $arr = app(OrderPackageCommoditiesService::class)->将orderPackageCommodity抽象成数组($orderPackageCommodities);
+//        dd($arr);
+    }
 }

+ 4 - 4
app/Services/OrderIssuePerformanceService.php

@@ -40,10 +40,10 @@ class OrderIssuePerformanceService
         $sql.=" from order_issue_process_logs left join users on order_issue_process_logs.user_id = users.id left join order_issues on order_issue_process_logs.order_issue_id = order_issues.id left join orders on order_issues.order_id = orders.id left join owners on orders.owner_id = owners.id ";
         $sql.=" where 1=1 ";
         if(isset($params['create_start'])){
-            $sql.= " and order_issue_process_logs.created_at >= ".$params['create_start'].' 00:00:00 ';
+            $sql.= " and order_issue_process_logs.created_at >= '".$params['create_start']." 00:00:00' ";
         }
         if(isset($params['create_end'])){
-            $sql.= " and order_issue_process_logs.created_at <= ".$params['create_end'].' 23:59:59 ';
+            $sql.= " and order_issue_process_logs.created_at <= '".$params['create_end']." 23:59:59' ";
         }
         if (isset($params['timeFrame'])) {
             $create_start ='';$create_end ='';
@@ -53,12 +53,12 @@ class OrderIssuePerformanceService
             } else if ($params['timeFrame'] == 'yesterday') {
                 $create_start = date('Y-m-d', strtotime('-1 day'));
                 $create_end = date('Y-m-d', strtotime('-1 day'));
-            } else if ($params['timeFrame']) {
+            } else if ($params['timeFrame'] == 'week') {
                 $date = date('Y-m-d', strtotime('-1 weeks', strtotime('Monday')));
                 $create_start = $date;
                 $create_end = date('Y-m-d');
             } else if ($params['timeFrame'] == 'month') {
-                $create_start = date('Y-m-1');
+                $create_start = date('Y-m-01', strtotime(date("Y-m-d")));
                 $create_end = date('Y-m-d');
             }
             $sql.= " and order_issue_process_logs.created_at >= '".$create_start." 00:00:00' ";

+ 184 - 0
app/Services/OrderPackageCommoditiesService.php

@@ -390,4 +390,188 @@ class OrderPackageCommoditiesService
         return $this->getByOrderNos(data_get($orders,'*.code'));
     }
 
+    /**
+     * @param OracleDOCOrderHeader $orderHeader
+     * @param Order $order
+     * @return array|Collection|\Tightenco\Collect\Support\Collection
+     */
+    public function 返回创建数组($orderHeader,$order)
+    {
+        /** @var DataHandlerService $dataHandlerService */
+        $dataHandlerService = app(DataHandlerService::class);
+        if($orderHeader->sostatus == 90){return [];}
+        $actAllocationDetails = $orderHeader->actAllocationDetails->collect();
+        $orderPackages = $dataHandlerService->dataHeader(['logistic_number'],$order->packages);
+        $innerParams = collect();
+        $actAllocationDetails->each(function($detail)use($orderPackages,$dataHandlerService,$innerParams){
+            $orderPackage = $dataHandlerService->getKeyValue(['logistic_number'=>$detail->picktotraceid],$orderPackages);
+            $sku =  $detail->sku;
+            $amount =  $detail->qty_each;
+            $order_package_id =  $orderPackage->id;
+            $logistic_number =  $orderPackage->logistic_number;
+            $params = [
+                'ownerCode' > $detail->customerid,
+                'orderNo' => $detail->orderno,
+                'sku' => $sku,
+                'amount' => $amount,
+                'order_package_id' => $order_package_id,
+                'logistic_number' => $logistic_number,
+            ];
+            $innerParam = $innerParams->where('order_package_id',$orderPackage->id)->where('sku',$sku)->first();
+            if(!$innerParam){
+                $innerParams->push($params);
+            }else{
+                $innerParam['amount'] += $amount;
+            }
+        });
+        return $innerParams;
+    }
+
+    /**
+     * @param array $innerParams
+     * @param OracleDOCOrderHeader $orderHeaders
+     * @return array
+     */
+    public function 生成OrderPackageCommodities_基于创建数组($innerParams,$orderHeaders)
+    {
+        /** @var DataHandlerService $dataHandlerService */
+        $dataHandlerService = app(DataHandlerService::class);
+        $commodities = app(CommodityService::class)->getByWmsOrder($orderHeaders);
+        $owners = app(OwnerService::class)->getByWmsOrders($orderHeaders);
+        $owner_id_map = $dataHandlerService->dataHeader(['id'],$owners);
+        $commodities_owner_code_sku_map = [];
+        foreach ($commodities as $commodity) {
+            $owner_code = $dataHandlerService->getKeyValue(['id'=>$commodity->owner_id],$owner_id_map);
+            $key = ' owner_code='.$owner_code.' sku='.$commodity->sku;
+            $commodities_owner_code_sku_map[$key] = $commodity;
+        }
+
+        $dataTime = Carbon::now()->format('Y-m-d H:i:s');
+        $createParams = [];
+        foreach ($innerParams as $innerParam) {
+            $key = ' owner_code='.$innerParam['ownerCode'].' sku='.$innerParam['sku'];
+            $commodity =  $commodities_owner_code_sku_map[$key]  ?? null;
+            $createParams[] = [
+                'order_package_id' => $innerParam['order_package_id'],
+                'commodity_id' => $commodity->id ?? null,
+                'amount' => $innerParam['amount'],
+                'created_at' => $dataTime,
+                'updated_at' => $dataTime,
+            ];
+        }
+        return $createParams;
+    }
+
+    /**
+     * @param OrderPackageCommodities $orderPackageCommodities
+     * @return Collection|\Tightenco\Collect\Support\Collection
+     */
+    public function 将orderPackageCommodity抽象成数组($orderPackageCommodities)
+    {
+        /** @var DataHandlerService $dataHandlerService */
+        $dataHandlerService = app(DataHandlerService::class);
+        $collect = collect();
+        $ownerIds = array_unique(data_get($orderPackageCommodities,'*.commodity.owner_id'));
+        $owners = Owner::query()->whereIn('id',$ownerIds)->get();
+        $owner_id_map = $dataHandlerService->dataHeader(['id'],$owners);
+        foreach ($orderPackageCommodities as $orderPackageCommodity) {
+            $owner = $dataHandlerService->getKeyValue(['id'=>$orderPackageCommodity->commodity->owner_id],$owner_id_map);
+            $params = [
+                'id' => $orderPackageCommodity->id,
+                'ownerCode' => $owner->code,
+                'orderNo' => $orderPackageCommodity->package->order->code,
+                'sku' => $orderPackageCommodity->commodity->sku,
+                'amount' => $orderPackageCommodity->amount,
+                'order_package_id' => $orderPackageCommodity->package->id,
+                'logistic_number' => $orderPackageCommodity->package->logistic_number,
+            ];
+            $collect->push($params);
+        }
+        return $collect;
+    }
+
+    public function 数据重组(&$orderPackageCommoditiesCollect,&$params)
+    {
+        $collect_map = [];$params_map = [];$order_no_map = [];
+
+        foreach ($orderPackageCommoditiesCollect as $item) {
+            $orderNo = $item['orderNo'];
+            if(!isset($collect_map[$orderNo])){$collect_map[$orderNo] = collect();}
+            $collect_map[$orderNo]->push($item);
+        }
+
+        foreach ($params as $param) {
+            $orderNo =  $param['orderNo'];
+            if(isset($params_map[$orderNo])){$params_map[$orderNo] = collect();}
+            $order_no_map[] = $orderNo;
+            $params_map[$orderNo]->push($param);
+        }
+        $order_no_map = array_unique($order_no_map);
+        $orderPackageCommoditiesCollect = $collect_map;
+        $params = $params_map;
+        return $order_no_map;
+    }
+
+    /**
+     * @param Collection $OPCCollects
+     * @param array $paramsCollect
+     */
+    public function 删选出能保留的OrderPackageCommodities(&$OPCCollects,&$paramsCollect,$orderMap)
+    {
+        $retains = collect();
+        foreach ($orderMap as $orderNo) {
+            $OPCCollect = $OPCCollects[$orderNo];
+            $params = $paramsCollect[$orderNo];
+        }
+    }
+
+
+    public function 删选可以保留的OrderPackageCommodities(&$OPCCollect,&$params)
+    {
+        $retain = collect();
+        $map = [];
+        foreach ($params as $param) {
+            $key = ' logistic_number='.$param['logistic_number'].' sku='.$param['sku'].' amount='.$param['amount'];
+            if(!$map[$key] ?? false){
+                $map[$key] = [];
+            }
+            $map[$key][] = $param;
+        }
+
+        foreach ($OPCCollect as $item) {
+            $key = ' logistic_number='.$item['logistic_number'].' sku='.$item['sku'].' amount='.$item['amount'];
+            if(isset($map[$key])){
+                $value = $map[$key][0];
+                array_shift($map);
+                $params->filter(function($param)use($value){
+                    return count(array_diff_assoc($param,$value)) != 0 ;
+                });
+                $retain->push($value);
+            }
+        }
+        return $retain;
+    }
+
+//
+//    public function 删选需要修改的OrderPackageCommodities(&$OPCCollect,&$params)
+//    {
+//        $update = collect();
+//        $map = [];
+//        foreach ($OPCCollect as $item) {
+//            $key = ' logistic_number='.$item['logistic_number'].' sku='.$item['sku'];
+//            if(!isset($map[$key])){
+//                $map[$key] = [];
+//            }
+//            $map[$key][] = $item;
+//        }
+//
+//        foreach ($params as $param) {
+//            $key = ' logistic_number='.$param['logistic_number'].' sku='.$param['sku'];
+//            if(isset($map[$key])){
+//
+//            }
+//        }
+//    }
+
+
 }

+ 2 - 2
resources/views/order/issue/index.blade.php

@@ -4,7 +4,7 @@
 @section('content')
     @component("order.issue.menu")@endcomponent
     <div class="container-fluid" id="issue_div">
-        <div style="min-width: 3300px;" >
+        <div style="@cannot('订单管理-问题件-客户不可见')min-width: 3000px;@else min-width: 1990px; @endcannot">
             <div id="list" class="d-none container-fluid">
                 <div id="form_div" style="min-width: 2250px;"></div>
                 <div class="form-inline mt-1" id = "btn">
@@ -45,7 +45,7 @@
                         </button>
                     </span>
                 </div>
-                <table class="table table-sm table-striped table-bordered table-hover card-body p-0 m-0" style="background: #fff;min-width: 3000px;">
+                <table class="table table-sm table-striped table-bordered table-hover card-body p-0 m-0" style="background: #fff;@cannot('订单管理-问题件-客户不可见')min-width: 3000px;@else min-width: 1990px; @endcannot">
                     <tr class="tr-yellow" align="center">
                         <th class=" font-weight-bolder header-1" ></th>
                         <th class="td-yellow  font-weight-bolder original-class table-head-warning  header-2">

+ 1 - 1
serves/excelExportGo/utilities/connect.go

@@ -25,7 +25,7 @@ func Mysql()(baseDB *sql.DB, err error)  {
 		DATABASE: "bswas",
 		USERNAME: "developer",
 		PASSWORD: "developer",
-		CHARSET: "utf8mb4",
+		CHARSET: "utf8mb4",.
 		PARSETIME: "True",
 	}
 	driver := mysql.USERNAME+":"+mysql.PASSWORD+"@"+"tcp("+mysql.HOST+":"+mysql.PORT+")/"+mysql.DATABASE+"?charset="+mysql.CHARSET