|
|
@@ -11,6 +11,7 @@ use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
use Illuminate\Support\Facades\Gate;
|
|
|
+use Illuminate\Support\Facades\Http;
|
|
|
use Maatwebsite\Excel\Facades\Excel;
|
|
|
|
|
|
class OrderController extends Controller
|
|
|
@@ -177,6 +178,10 @@ class OrderController extends Controller
|
|
|
$orders=DB::connection('oracle')->select(DB::raw($sql));
|
|
|
$commodities=[];
|
|
|
$picktotraceids=[];
|
|
|
+ /*
|
|
|
+ * 第二种扁平化方式(节省空间): 使用快慢指针,因拿到数据正常为顺序数据,自下标1开始与上一条对比orderno唯一标识,不同则更新慢指针下标,
|
|
|
+ * 相同则为指定下标map类型数组追加一个键值对属性来记录同类数量,如N条,每次追加属性时先看属性是否存在,存在+1
|
|
|
+ * */
|
|
|
foreach ($orders as $index=>$order){
|
|
|
if ($order->picktotraceid){
|
|
|
if (array_key_exists($order->orderno,$picktotraceids)){
|
|
|
@@ -200,7 +205,7 @@ class OrderController extends Controller
|
|
|
$orders = new Collection($orders);
|
|
|
$commodities=new Collection($commodities);
|
|
|
if ($checkData || $export)return $this->export($orders,$commodities);
|
|
|
- $customers=OracleBasCustomer::select('customerid','descr_c')->where('customer_type','OW')->where('active_flag','Y')->get();
|
|
|
+ $customers=OracleBasCustomer::query()->select('customerid','descr_c')->where('customer_type','OW')->where('active_flag','Y')->get();
|
|
|
$request=$request->input();
|
|
|
$codes=DB::connection('oracle')->table('BAS_CODES')->select('code','codename_c')->where('codeid','SO_STS')->orderBy('code','asc')->get();
|
|
|
return view('order/index/delivering',compact('orders','customers','request','codes','commodities','page','picktotraceids'));
|
|
|
@@ -210,15 +215,15 @@ class OrderController extends Controller
|
|
|
if(!Gate::allows('订单管理-批量备注')){ return redirect(url('/')); }
|
|
|
$checkData=$request->input('checkData');
|
|
|
$content=$request->input('content');
|
|
|
- $ordersNotNull=OracleDOCOrderHeader::select('OrderNo','Notes')->whereIn('orderno',$checkData)
|
|
|
+ $ordersNotNull=OracleDOCOrderHeader::query()->select('OrderNo','Notes')->whereIn('orderno',$checkData)
|
|
|
->whereNotNull('notes')->get();
|
|
|
- OracleDOCOrderHeader::select('OrderNo','Notes')->whereIn('orderno',$checkData)
|
|
|
+ OracleDOCOrderHeader::query()->select('OrderNo','Notes')->whereIn('orderno',$checkData)
|
|
|
->whereNull('notes')->update(['notes'=>$content]);
|
|
|
$ordersNotNullArr=array_column($ordersNotNull->toArray(),'orderno');
|
|
|
$ordersNullArr=array_diff($checkData,$ordersNotNullArr);
|
|
|
$data=[];
|
|
|
foreach ($ordersNotNull as $order){
|
|
|
- OracleDOCOrderHeader::where('orderno',$order->orderno)->update(["notes"=>($order->notes).",".$content]);
|
|
|
+ OracleDOCOrderHeader::query()->where('orderno',$order->orderno)->update(["notes"=>($order->notes).",".$content]);
|
|
|
$this->log(__METHOD__,'批量备注追加修改'.__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
|
|
|
$order->notes=($order->notes).",".$content;
|
|
|
array_push($data,$order);
|