Zhouzhendong 3 vuotta sitten
vanhempi
commit
fb5dcd0bbb

+ 23 - 12
app/Http/Controllers/InventoryController.php

@@ -8,6 +8,7 @@ use App\Services\InventoryDailyLogService;
 use App\Services\InventoryService;
 use App\Services\OwnerService;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Gate;
 use Oursdreams\Export\Export;
 
@@ -68,18 +69,28 @@ class InventoryController extends Controller
             $params = $request->input();
             unset($params['checkAllSign']);
             $sql=app('AllInventoryService')->getSql($request->input());
-            $e = new Export();
-            $e->setOracleConnection(config('database.connections.oracle.host'),
-                config('database.connections.oracle.port'),config('database.connections.oracle.database')
-                ,config('database.connections.oracle.username'),config('database.connections.oracle.password'));
-            $e->setFileName("全部库存");
-            return $e->sql($sql,[
-                "货主"=>"货主","库位"=>"库位",
-                "产品编码"=>"产品编码","产品条码"=>"产品条码",
-                "商品名称"=>"商品名称","属性仓"=>"属性仓",
-                "质量状态"=>"质量状态","失效日期"=>"失效日期",
-                "批号"=>"批号","在库数量"=>"在库数量","占用数量"=>"占用数量"
-            ])->direct();
+            $result = DB::connection("oracle")->select($sql);
+            $row = [
+                "货主","库位", "产品编码","产品条码",
+                "商品名称","属性仓", "质量状态","失效日期", "批号","在库数量","占用数量"
+            ];
+            $list = [];
+            foreach ($result as $item) {
+                $list[] = [
+                    $item->货主,
+                    $item->库位,
+                    $item->产品编码,
+                    $item->产品条码,
+                    $item->商品名称,
+                    $item->属性仓,
+                    $item->质量状态,
+                    $item->失效日期,
+                    $item->批号,
+                    $item->在库数量,
+                    $item->占用数量
+                ];
+            }
+            return Export::make($row, $list, "库存报表记录");
         }else return "暂时关闭,如需开启请联系管理员";
     }
 

+ 46 - 2
app/Http/Controllers/OrderController.php

@@ -76,7 +76,51 @@ class OrderController extends Controller
             new OrderDelivering();
             $req["sql"] = $orderService->getSql($request->input());
         }
-        $e = new Export();
+        $row = [
+            "编号","订单状态","备注","接口下发时间","店铺名称","客户",
+            "客户订单号","承运人","快递单号","收货人名称","收货人电话","省",
+            "市","区","收货人地址","波次编号","仓库","快递获取标记",
+            "快递获取时间","产品代码","产品条码","明细状态","产品名称","订单数量",
+            "复核时间","接口取消标记","拣货单打印标记","接口回传标记","接口回传异常备注","订单冻结",
+        ];
+        $result = DB::connection("oracle")->select($req["sql"]);
+        $list = [];
+        foreach ($result as $item) {
+            $list[] = [
+                $item->orderno,
+                $item->ordercodename,
+                $item->notes,
+                $item->addtime,
+                $item->issuepartyname,
+                $item->customer_descr_c,
+                $item->soreference1,
+                $item->carriername,
+                $item->soreference5,
+                $item->c_contact,
+                $item->c_tel2,
+                $item->c_province,
+                $item->c_city,
+                $item->c_district,
+                $item->c_address1,
+                $item->waveno,
+                $item->warehouseid,
+                $item->edisendflag2,
+                $item->edisendtime2,
+                $item->sku,
+                $item->alternate_sku1,
+                $item->orderdetailcodename,
+                $item->descr_c,
+                $item->qtyordered,
+                $item->checktime,
+                $item->erpcancelflag,
+                $item->picking_print_flag,
+                $item->edisendflag,
+                $item->ediremarks2,
+                $item->releasestatus
+            ];
+        }
+        return Export::make($row, $list, "订单记录-" . date('ymdHis'));
+        /*$e = new Export();
         $e->setOracleConnection(config('database.connections.oracle.host'),
             config('database.connections.oracle.port'), config('database.connections.oracle.database')
             , config('database.connections.oracle.username'), config('database.connections.oracle.password'));
@@ -99,7 +143,7 @@ class OrderController extends Controller
             "SKU" => "产品代码", "ALTERNATE_SKU1" => "产品条码", "ORDERDETAILCODENAME" => "明细状态", "DESCR_C" => "产品名称",
             "QTYORDERED" => "订单数量", "CHECKTIME" => "复核时间", "ERPCANCELFLAG" => "接口取消标记",
             "PICKING_PRINT_FLAG" => "拣货单打印标记", "EDISENDFLAG" => "接口回传标记", "EDIREMARKS2" => "接口回传异常备注",
-            "RELEASESTATUS" => "订单冻结"], ["ADDTIME" => "date", "EDISENDTIME2" => "date"])->direct();
+            "RELEASESTATUS" => "订单冻结"], ["ADDTIME" => "date", "EDISENDTIME2" => "date"])->direct();*/
     }
 
     public function createRejectedBill(Request $request)

+ 16 - 5
app/Http/Controllers/ReceiveRecordController.php

@@ -29,12 +29,14 @@ class ReceiveRecordController extends Controller
         $timeEn = $request->input("record_at_end");
         $logisticNumber = $request->input("logistic_number");
         $delayed = $request->input("delayed");
+        $logistic = $request->input("logistic_id");
+        $warehouse = $request->input("warehouse");
 
         if ($timeSt && $timeEn){
-            $builder->whereBetween("record_at",[$timeSt, $timeEn]);
+            $builder->whereBetween("record_at",[$timeSt.':00', $timeEn.':00']);
         }else{
-            if ($timeSt)$builder->where("record_at",'>=',$timeSt);
-            if ($timeEn)$builder->where("record_at",'<=',$timeEn);
+            if ($timeSt)$builder->where("record_at",'>=',$timeSt.':00');
+            if ($timeEn)$builder->where("record_at",'<=',$timeEn.':00');
         }
         if ($logisticNumber!==null){
             mb_regex_encoding('utf-8');
@@ -42,6 +44,12 @@ class ReceiveRecordController extends Controller
             if (count($par)!=1) $builder->whereIn("logistic_number",$par);
             else $builder->where("logistic_number",'like',$par[0]."%");
         }
+        if ($logistic !== null) {
+            $builder->whereIn("logistic_id", explode(",",$logistic));
+        }
+        if ($warehouse !== null) {
+            $builder->where("warehouse_id", $warehouse);
+        }
         if ($delayed!==null)$builder->where("delayed",$delayed);
         return $builder;
     }
@@ -54,7 +62,9 @@ class ReceiveRecordController extends Controller
         $records = $records->paginate($request->input("paginate",50),['*'],'page',$request->input("page",1));
         $status = ReceiveRecord::DELAYED;
         $paginateParams = $request->input();
-        return view("rejected.receiveRecord",compact("records","status","paginateParams"));
+        $logistics = app('LogisticService')->getSelection();
+        $warehouses = app('WarehouseService')->getSelection();
+        return view("rejected.receiveRecord",compact("records","status","paginateParams","logistics","warehouses"));
     }
 
     public function export(Request $request)
@@ -74,10 +84,11 @@ class ReceiveRecordController extends Controller
                 $item->logistic_number,
                 $item->logistic->name ?? '未知',
                 $item->record_at,
+                $item->location_at,
                 ReceiveRecord::DELAYED[$item->delayed],
             ];
         }
-        return Export::make(["仓库","快递单号","快递公司","记录时间","延时标记"],$list,"退件记录");
+        return Export::make(["仓库","快递单号","快递公司","上传时间","本地记录时间","延时标记"],$list,"退件记录");
     }
 
     public function record()

+ 67 - 7
app/Http/Controllers/TestController.php

@@ -2,15 +2,28 @@
 
 namespace App\Http\Controllers;
 
+use App\Batch;
+use App\CommodityBarcode;
 use App\Components\AsyncResponse;
 use App\Components\Database;
 use App\Components\ErrorPush;
 use App\Exceptions\Exception;
+use App\OracleDOCWaveDetails;
+use App\Order;
+use App\OrderBin;
+use App\OrderCommodity;
 use App\Rejected;
 use App\RejectedBill;
 use App\RejectedBillItem;
+use App\Services\LogService;
+use App\Services\OracleDOCOrderHeaderService;
+use App\Services\OrderCommodityService;
+use App\Services\OrderService;
+use App\Services\WaveService;
 use App\Services\WaybillService;
+use App\SortingStation;
 use App\User;
+use App\UserToken;
 use App\Waybill;
 use Illuminate\Database\Eloquent\Collection;
 use Illuminate\Http\Request;
@@ -18,6 +31,7 @@ use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Hash;
 use Illuminate\Support\Facades\Http;
+use Illuminate\Support\Str;
 use Zttp\Zttp;
 
 class TestController extends Controller
@@ -39,15 +53,61 @@ class TestController extends Controller
             dd("方法不存在");
         }
     }
-    public function test()
+    public function a1(){
+        dd(phpinfo());
+        dd(DB::table('BAS_CODES')->select('code', 'codename_c')->where('codeid', 'SO_STS')->orderBy('code', 'asc')->sql());
+        $response = Http::post("https://api.baoshi56.com/api/flux/getList", [
+            "sql" => "SELECT * FROM BAS_CODES WHERE CODEID = 'ABC'"
+        ]);
+        dd(json_decode($response->body(), true)->data);
+    }
+    public function test(Request $request)
+    {
+        dd(Hash::make("zhao123456"));
+    }
+
+    public function syncOrder($code)
     {
-        $url = config('api.java.base').config('api.java.device.picking.getContainerOfWave');
-        $get = Http::get($url, ["container" => "JH028"]);
-        $result = $get->json();
-        if ($result["code"] != 200) {
-            return response()->json(['result'=>'failure','fail_info'=>$result["message"]])->setEncodingOptions(JSON_UNESCAPED_UNICODE);
+        $orderHeaders = app(OracleDOCOrderHeaderService::class)->getQuery()->where('DOC_Order_Header.WaveNo',$code)->get();
+        app(OrderService::class)->syncOrderByWMSOrderHeaders($orderHeaders);
+        app(OrderCommodityService::class)->syncOrderCommodity($orderHeaders);
+        $this->syncOrderBin($code);
+    }
+    public function syncOrderBin($code)
+    {
+        $wave = DB::connection("oracle")->selectOne(DB::raw("select * from DOC_WAVE_HEADER where WAVENO = ?"), [$code]);
+        if (!$wave) return;
+        $owner = app("OwnerService")->codeGetOwner($wave->customerid);
+        $obj = [
+            "wms_status" => $this->wms_status($wave),
+            "wms_type" => $wave->descr,
+            "created_at" => date("Y-m-d H:i:s"),
+            "wms_created_at" => $wave->addtime,
+            "updated_at" => $wave->edittime,
+            "owner_id" => $owner->id,
+        ];
+        $batch = Batch::query()->where("code", $code)->first();
+        if (!$batch) {
+            $obj["code"] = $code;
+            $batch = Batch::query()->create($obj);
+        } else {
+            Batch::query()->where("code", $code)->update($obj);
         }
-        dd($result["data"]);
+        $order_nos = array_column(DB::connection("oracle")->select(DB::raw("select orderno from DOC_WAVE_DETAILS where WAVENO = ?"), [$code]), "orderno");
+
+        Order::query()->whereIn("code", $order_nos)->update(["batch_id" => $batch->id]);
+
+        Order::query()->with(["batch", "bin"])->whereIn("code", $order_nos)->get()->each(function ($order) {
+            if (!$order->bin) {
+                $bin = DB::connection("oracle")->selectOne(DB::raw("select seqno from DOC_WAVE_DETAILS where waveno = ? and orderno = ?"), [$order->batch->code, $order->code]);
+                if ($bin) {
+                    OrderBin::query()->create([
+                        'order_id' => $order->id,
+                        'number' => $bin->seqno,
+                    ]);
+                }
+            }
+        });
     }
 }
 

+ 3 - 2
app/Services/OrderService.php

@@ -431,8 +431,9 @@ SQL;
             $params['soreference'] = '';
             $sql = $this->getSql($params, $params['page'] ?? 1, $params['paginate'] ?? 50);
         }
-        if ($sql) $orders = DB::connection('oracle')->select(DB::raw($sql));
-        else $orders = [];
+        if ($sql) {
+            $orders = DB::connection('oracle')->select(DB::raw($sql));
+        } else $orders = [];
         return $this->orderFormat($orders);
     }
 

+ 1 - 1
app/UserDetail.php

@@ -41,7 +41,7 @@ class UserDetail extends Model
     {
         $laborCompanyId=$this['userLabor']['labor_company_id']??0;
         $laborCompany=LaborCompany::find($laborCompanyId);
-        return $this['user_labor_company']=$laborCompany['name'];
+        return $this['user_labor_company']=$laborCompany['name'] ?? '';
     }
     public function getDutyCheckToken($expireTime)
     {

+ 17 - 2
resources/views/rejected/receiveRecord.blade.php

@@ -44,16 +44,31 @@
             records:[@foreach($records as $record)@json($record),@endforeach],
             status:[@foreach($status as $index=>$s){name:"{{$index}}",value:"{{$s}}"},@endforeach],
             delayed:[@foreach($status as $s)"{{$s}}",@endforeach],
+            logistics:[
+                    @foreach($logistics as $logistic)
+                {name:'{{$logistic->id}}', value: '{{$logistic->name}}'},
+                @endforeach
+            ],
+            warehouses: [
+                    @foreach( $warehouses as $item )
+                {
+                    name: '{{ $item->id }}', value: '{{ $item->name }}'
+                },
+                @endforeach
+            ],
         },
         mounted:function(){
             $('#container').removeClass('d-none');
             let data=[
                 [
-                    {name:'record_at_start',type:'dateTime',tip:'选择显示记录日期的起始时间'},
+                    {name:'record_at_start',type:'time',tip:'选择显示本地记录日期的起始时间'},
                     {name:'logistic_number',type:'input',tip:'可支持多单号,糊模查找需要在右边打上%符号',placeholder:'快递单号'},
+                    {name:'logistic_id',type:'select_multiple_select',tip:['输入关键词快速定位下拉列表,回车确定','选择要显示的物流公司'],
+                        placeholder:['物流公司','定位或多选物流公司'],data:this.logistics},
                 ],[
-                    {name:'record_at_end',type:'dateTime',tip:'选择显示记录日期的结束时间'},
+                    {name:'record_at_end',type:'time',tip:'选择显示本地记录日期的结束时间'},
                     {name:'delayed',type:'select',placeholder: '状态',data:this.status},
+                    {name:'warehouse',type:'select',placeholder: '仓库',data:this.warehouses},
                 ]
             ];
             this.form=new query({

+ 3 - 2
resources/views/station/monitor/visual.blade.php

@@ -129,7 +129,8 @@
                     }
                     this.mapping.push(arr);
                     let max = this.columnSize * this.heightSize;
-                    window.tempTip.postBasicRequest("{{url('station/monitor/visual/getData')}}",{arr:arr},res=>{
+                    console.log(arr);
+                    /*window.tempTip.postBasicRequest("{{url('station/monitor/visual/getData')}}",{arr:arr},res=>{
                         let sub = {};
                         arr.forEach((ar,i)=>{
                             for (let key in this.blacklist){
@@ -158,7 +159,7 @@
                             this.statistic.np2 = this.accDivCoupon(this.statistic.number2,this.statistic.sum);
                             this.statistic.np3 = this.accDivCoupon(this.statistic.number3,this.statistic.sum);
                         });
-                    });
+                    });*/
                 },
                 loadDetail(index,j){
                     $("#modal").modal('show');