Эх сурвалжийг харах

Merge branch 'master' into Haozi

haozi 5 жил өмнө
parent
commit
24bd7c0cf9
74 өөрчлөгдсөн 496 нэмэгдсэн , 63329 устгасан
  1. 3 3
      app/Console/Commands/InventoryDailyLoggingOwner.php
  2. 2 1
      app/Http/Controllers/OrderIssueController.php
  3. 6 4
      app/Http/Controllers/ProcessController.php
  4. 11 1
      app/Http/Controllers/ProcessStatisticController.php
  5. 2 3
      app/Http/Controllers/StoreCheckingReceiveController.php
  6. 1 1
      app/Http/Controllers/TestController.php
  7. 64 37
      app/Http/Controllers/api/thirdPart/haiq/StorageController.php
  8. 0 8
      app/Imports/StoreCheckingReceiveImport.php
  9. 17 0
      app/Imports/StoreCheckingReceiveSheets.php
  10. 12 2
      app/OrderIssue.php
  11. 4 0
      app/OrderPackageCommodities.php
  12. 5 5
      app/Process.php
  13. 4 0
      app/ProcessStatistic.php
  14. 3 0
      app/Providers/RouteServiceProvider.php
  15. 2 1
      app/Services/CommodityService.php
  16. 9 5
      app/Services/OrderIssueService.php
  17. 8 269
      app/Services/OrderPackageCommoditiesService.php
  18. 0 187
      app/Services/OrderPackageService.php
  19. 0 329
      app/Services/OrderService.php
  20. 10 181
      app/Services/OrderTrackingService.php
  21. 2 2
      app/Services/ProcessStatisticService.php
  22. 3 2
      config/api.php
  23. 1 1
      database/migrations/2020_07_29_160826_create_order_issues_table.php
  24. 0 24
      public/css/app.css
  25. 0 61995
      public/js/app.js
  26. 29 5
      resources/js/queryForm/queryForm.js
  27. 6 14
      resources/js/utilities/tempTip.js
  28. 3 3
      resources/views/inventory/statement/changeInventory.blade.php
  29. 3 3
      resources/views/inventory/statement/dailyLog.blade.php
  30. 3 3
      resources/views/inventory/statement/inventoryCompare.blade.php
  31. 2 2
      resources/views/inventory/stockInventory/inventoryMission.blade.php
  32. 3 3
      resources/views/inventory/stockInventory/mission.blade.php
  33. 2 2
      resources/views/layouts/app.blade.php
  34. 2 2
      resources/views/maintenance/role/index.blade.php
  35. 2 2
      resources/views/maintenance/tutorial/create.blade.php
  36. 2 2
      resources/views/maintenance/tutorial/edit.blade.php
  37. 2 2
      resources/views/maintenance/user/index.blade.php
  38. 1 1
      resources/views/maintenance/userLabor/index.blade.php
  39. 8 10
      resources/views/order/index/delivering.blade.php
  40. 41 41
      resources/views/order/issue/index.blade.php
  41. 2 2
      resources/views/order/issue/performance.blade.php
  42. 3 3
      resources/views/order/issue/workload.blade.php
  43. 33 16
      resources/views/order/tracking/index.blade.php
  44. 1 1
      resources/views/order/wave/search.blade.php
  45. 1 1
      resources/views/personnel/checking-in/QRcode.blade.php
  46. 1 1
      resources/views/personnel/checking-in/clock.blade.php
  47. 1 1
      resources/views/personnel/checking-in/createUserDetail.blade.php
  48. 1 1
      resources/views/personnel/checking-in/enterGroupClock.blade.php
  49. 1 1
      resources/views/personnel/checking-in/importAndExportClock.blade.php
  50. 1 1
      resources/views/personnel/checking-in/importAndExportQRCode.blade.php
  51. 1 1
      resources/views/personnel/checking-in/updateUserLaborCompanies.blade.php
  52. 3 3
      resources/views/personnel/laborReport/index.blade.php
  53. 8 2
      resources/views/process/create.blade.php
  54. 4 4
      resources/views/process/index.blade.php
  55. 6 4
      resources/views/process/statistic.blade.php
  56. 3 3
      resources/views/rejected/search/analyze.blade.php
  57. 3 3
      resources/views/rejected/search/general.blade.php
  58. 2 2
      resources/views/store/blindReceive/layout.blade.php
  59. 2 2
      resources/views/store/checkingReceive/mission.blade.php
  60. 62 27
      resources/views/store/checkingReceive/show.blade.php
  61. 1 1
      resources/views/store/fast/index.blade.php
  62. 1 1
      resources/views/store/fast/storeItem.blade.php
  63. 2 2
      resources/views/waybill/delivering.blade.php
  64. 3 3
      resources/views/waybill/index.blade.php
  65. 2 2
      resources/views/waybill/waybillFinancialSnapshot/index.blade.php
  66. 3 3
      resources/views/weight/package/index.blade.php
  67. 2 2
      resources/views/weight/package/statistics.blade.php
  68. 2 2
      resources/views/weight/weightExcepted/index.blade.php
  69. 13 0
      routes/api/thirdPart/haiq.php
  70. 12 9
      serves/excelExportGo/api/controller/controller.go
  71. 16 14
      serves/excelExportGo/api/controller/orderController.go
  72. 0 50
      serves/excelExportGo/api/controller/processController.go
  73. 13 0
      tests/webApi/thirdPart/haiq/storage.http
  74. 9 5
      webpack.mix.js

+ 3 - 3
app/Console/Commands/InventoryDailyLoggingOwner.php

@@ -71,11 +71,11 @@ class InventoryDailyLoggingOwner extends Command
         $inventoryDailyLogs = [];
         foreach ($invLots as $invLot){
             //以MAP形式记录进数组,货主code与商品sku作为联合主键唯一标识,如重复叠加其数量
-            if ($inventoryDailyLogs[$owners[$invLot->customerid].'-'.$invLot->sku] ?? false){
-                $inventoryDailyLogs[$owners[$invLot->customerid].'-'.$invLot->sku]['amount'] += $invLot->qty;
+            if ($inventoryDailyLogs[$owners[$invLot->customerid].'-'.$invLot->sku.'-'.$invLot->lotatt05] ?? false){
+                $inventoryDailyLogs[$owners[$invLot->customerid].'-'.$invLot->sku.'-'.$invLot->lotatt05]['amount'] += $invLot->qty;
             }else{
                 //符合的结果取此对象的关键信息存进第一个数组
-                $inventoryDailyLogs[$owners[$invLot->customerid].'-'.$invLot->sku] = [
+                $inventoryDailyLogs[$owners[$invLot->customerid].'-'.$invLot->sku.'-'.$invLot->lotatt05] = [
                     'commodity' => [
                         'owner_id'=>$owners[$invLot->customerid],
                         'sku'=>$invLot->sku,

+ 2 - 1
app/Http/Controllers/OrderIssueController.php

@@ -41,8 +41,9 @@ class OrderIssueController extends Controller
         $orderIssues = $orderIssueService->paginate($request->all());
         $orderIssueType = OrderIssueType::all();
         $qualityLabel = QualityLabel::all();
+        $logistics = Logistic::all();
         $userWorkgroup = UserWorkgroup::all();
-        return view('order.issue.index', compact('owners', 'orderIssues', 'orderIssueType', 'qualityLabel','userWorkgroup'));
+        return view('order.issue.index', compact('owners', 'orderIssues', 'orderIssueType', 'qualityLabel','userWorkgroup','logistics'));
     }
 
     public function create()

+ 6 - 4
app/Http/Controllers/ProcessController.php

@@ -525,6 +525,7 @@ class ProcessController extends Controller
             'process_method_id'=>$request->input('process_method_id'),
             'unit_price'=>$request->input('unit_price'),
             'remark'=>$request->input('remark'),
+            'balance_remark'=>$request->input('balance_remark'),
             'amount'=>$request->input('amount'),
             'status'=>'待审核',
         ]);
@@ -715,12 +716,13 @@ class ProcessController extends Controller
             if (count($error)>0)$errors[$processContent['wms_code']]=$error;
         }
         if (count($errors)>0)return ['error'=>$errors];
-        $process=Process::find($id);
+        $process=Process::query()->find($id);
         if (!$request->is_hide){
             $process->owner_id=$request->input('owner_id');
             $process->process_method_id=$request->input('process_method_id');
             $process->unit_price=$request->input('unit_price');
             $process->remark=$request->input('remark');
+            $process->balance_remark=$request->input('balance_remark');
             $process->amount=$request->input('amount');
             if ($process->status=='已驳回')$process->status='待接单';
             $process->update();
@@ -737,7 +739,7 @@ class ProcessController extends Controller
         }else{
             $ProcessesContents=ProcessesContent::where('process_id',$process->id)->get();
             $ids=array_column($ProcessesContents->toArray(),'id');
-            Sign::where('signable_type','processes_contents')->whereIn('signable_id',$ids)->delete();
+            Sign::query()->where('signable_type','processes_contents')->whereIn('signable_id',$ids)->delete();
             ProcessesContent::where('process_id',$process->id)->delete();
             foreach ($request->input('processContents') as $processContent){
                 if ($processContent['addBtnShow'])continue;
@@ -805,7 +807,7 @@ class ProcessController extends Controller
     function rollback(Request $request){
         if(!Gate::allows('二次加工管理-回滚')){ return ['success'=>false,'data'=>'您无权进行该操作!'];  }
         if (!$request->id)return ['success'=>false];
-        $process=Process::find($request->id);
+        $process=Process::query()->find($request->id);
         switch ($process->status){
             case '待接单':
                 $process->status='待审核';break;
@@ -828,7 +830,7 @@ class ProcessController extends Controller
     //加工完成
     function processAccomplish(Request $request){
         if(!Gate::allows('二次加工管理-登记工时')){ return ['success'=>false,'data'=>'您无权进行该操作!'];  }
-        $process= Process::find($request->id);
+        $process= Process::query()->find($request->id);
         if (!$process)return ['success'=>false];
         $process->update([
             'status'=>'待验收'

+ 11 - 1
app/Http/Controllers/ProcessStatisticController.php

@@ -26,7 +26,17 @@ class ProcessStatisticController extends Controller
             unset($params['checkAllSign']);
             $sql = app('processStatisticService')->getSql($params);
         }else $sql = app('processStatisticService')->getSql(["process_id"=>$request->data]);
-        $post = Http::post(config('go.export.url'),['type'=>'processStatistic','sql'=>$sql]);
+
+        $row = ["任务号", "货主", "开始日期", "完成日期","创建日期", "单价", "预期数量", "完成数量", "收入合计",
+            "完成时间(天)'", "总工时", "加工类型", "最高日产能", "最低日产能", "日均产能", "合计成本", "毛利润",
+            "毛利率", "状态","加工备注","结算备注"];
+        $column = ["process_code", "owner_name", "started_at", "ended_at","process_created_at", "process_unit_price", "process_amount", "process_completed_amount", "revenue",
+		"duration_days", "duration_man_hours", "process_method_name", "top_capacity", "bottom_capacity",
+		"average_capacity", "total_cost", "gross_profit", "gross_profit_rate", "process_status", "process_remark", "process_balance_remark"];
+        $rule = ["gross_profit_rate"=> "percent", "started_at"=>"mysqlDate", "ended_at"=>"mysqlDate", "process_created_at"=>"mysqlDate"];
+        $post = Http::post(config('go.export.url'),['type'=>'unify','sql'=>$sql, 'connection'=>'mysql',
+            'row'=>json_encode($row,JSON_UNESCAPED_UNICODE), 'column'=>json_encode($column), 'rule'=>json_encode($rule)]);
+
         if ($post->status() == 500){
             throw new Exception($post->header("Msg"));
         }

+ 2 - 3
app/Http/Controllers/StoreCheckingReceiveController.php

@@ -2,7 +2,7 @@
 
 namespace App\Http\Controllers;
 
-use App\Imports\StoreCheckingReceiveImport;
+use App\Imports\StoreCheckingReceiveSheets;
 use App\Services\CommodityService;
 use App\Services\LogService;
 use App\Services\OracleDocAsnDetailService;
@@ -33,11 +33,10 @@ class StoreCheckingReceiveController extends Controller
         $fileSuffix=$request->file('file')->getClientOriginalExtension();
         if ($fileSuffix != 'xlsx' && $fileSuffix != 'xls' && $fileSuffix != 'csv')
             return ['success'=>false,'data'=>'不支持该文件类型'];
-        $isCovering = $request->input('isCovering');
         ini_set('max_execution_time',2500);
         ini_set('memory_limit','1526M');
         $fileSuffix = ucwords($fileSuffix);
-        Excel::import(new StoreCheckingReceiveImport($isCovering),$request->file('file')->path(),null,$fileSuffix);
+        Excel::import(new StoreCheckingReceiveSheets(),$request->file('file')->path(),null,$fileSuffix);
         if (Cache::has('storeCheckingReceive')){
             return Cache::pull('storeCheckingReceive');
         }

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

@@ -623,7 +623,7 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         $startDate = \Illuminate\Support\Carbon::parse('2020-05-06 13:16:51')->toDateTimeString();
         /** @var OrderTrackingService $orderTrackingService */
         $orderTrackingService  = app('orderTrackingService');
-        /** @var OrderService $orderSerivce */
+        /** @var OrderService $orderService */
         $orderService = app(OrderService::class);
         /** @var OracleDOCOrderHeaderService $orderHeaderService */
         $orderHeaderService = app(OracleDOCOrderHeaderService::class);

+ 64 - 37
app/Http/Controllers/api/thirdPart/haiq/StorageController.php

@@ -10,53 +10,80 @@ use Illuminate\Support\Facades\Request;
 
 class StorageController
 {
+    protected $request;
+
+    public function __construct()
+    {
+        $stockInfo = [
+            "skuCode" => "TEST-BSSKU",//商品编码 sku
+            "qty" => 9,//数量
+        ];
+        $bin = [
+            "taskCode" => "TEST-BS2010100001",//任务编号
+            "binCode" => "TEST-BIN01",//料箱编码
+            "fromLocCode" => "TEST-J04-058-3",//源库位编码
+            "toLocCode" => "TEST-J24-128-7",//目标库位编码 出库填多个,表示这些库位都可以支持
+            "sequence" => -1,//出库顺序 -1表示没有顺序,只有移库出库时需要指定顺序,其他可为-1
+            "stockInfo" => [$stockInfo],//商品信息
+        ];
+        $this->request = [[
+            "groupCode" => 1,//组号/波次号 决定了出库的顺序,越大优先级越高
+            "taskMode" => 1,//任务模式 1(拣货出库) 2(入库指定料箱出库) 3(盘点出库) 4(移库出库) 5(入库不指定料箱出库)
+            "priority" => 99,//优先级 1-100 1最低
+            "sequenceFlag" => -1,//出库顺序 -1表示没有顺序,只有移库出库时需要指定顺序,其他可为-1
+            "bins" => [$bin],//可执行货箱任务
+        ]];
+    }
+
     public function out(Request $request){
-        $bin = json_encode([
-            "taskCode" => "",
-            "binCode" => "",
-            "sequence" => 0,
-            "fromLocCode" => "",
-            "toLocCode" => "",
-        ],JSON_UNESCAPED_UNICODE);
-        $req = [
-            "groupCode" => 0,
-            "priority" => 0,
-            "taskMode" => 0,
-            "emptyBinQty" => 0,
-            "toWorkStations" => [""],
-            "bins" => [$bin],
+        $bin = [
+            "taskCode" => "TEST-BS2010100001",//任务编号
+            "binCode" => "TEST-BIN01",//料箱编码
+            "sequence" => -1,//出库顺序 -1表示没有顺序,只有移库出库时需要指定顺序,其他可为-1
+            "fromLocCode" => "TEST-J04-058-3",//源库位编码
+            "toLocCode" => "TEST-J24-128-7",//目标库位编码 出库填多个,表示这些库位都可以支持
         ];
+        $req = [[
+            "groupCode" => 1,//组号/波次号 决定了出库的顺序,越大优先级越高
+            "priority" => 99,//优先级 1-100 1最低
+            "taskMode" => 1,//任务模式 1(拣货出库) 2(入库指定料箱出库) 3(盘点出库) 4(移库出库) 5(入库不指定料箱出库)
+            "emptyBinQty" => -1,//需求空料箱数量 taskMode 为 3 时必填, 其他时候可以传-1
+            "toWorkStations" => ["TEST-HQ01","TEST-HQ02",],//出库工作站 不指定具体一个,指定多个
+            "bins" => [$bin],//可执行货箱任务
+        ]];
 
-        $req = json_encode($req, JSON_UNESCAPED_UNICODE);
-        $response = Http::post(config('api.haiq.storage.out'));
-        $msg = "haiq-料箱出库成功";
+        $response = Http::post(config('api.haiq.storage.out'),$this->request);
+        return $response;
         if ($response["code"] != 200){
-            $msg = "haiq-料箱出库失败";
+            LogService::log(__METHOD__,"haiq-料箱出库失败","REQUEST:".json_encode($req)." | RESPONSE:".$response);
+            return ['success'=>false,"data"=>$response["errMsg"]];
         }
-        LogService::log(__METHOD__,$msg,"REQUEST:".$req." | RESPONSE:".json_encode($response,JSON_UNESCAPED_UNICODE));
+        LogService::log(__METHOD__,"haiq-料箱出库成功","REQUEST:".json_encode($req)." | RESPONSE:".$response);
+        return ["success"=>true];
     }
     public function in(Request $request){
-        $stockInfo = json_encode([
-            "skuCode" => "",
-            "qty" => 0,
-        ]);
-        $req = [
-            "taskCode" => "",
-            "taskMode" => 0,
-            "binCode" => "",
-            "fromWorkStation" => "",
-            "fromLocCode" => "",
-            "toLocCode" => "",
-            "isEmpty" => 0,
-            "stockInfo" => [$stockInfo],
+        $stockInfo = [
+            "skuCode" => "TEST-BSSKU",//商品编码 sku
+            "qty" => 9,//数量
         ];
+        $req = [[
+            "taskCode" => "TEST-BSSTIN2010100001",//任务编号
+            "taskMode" => 1,//任务类型 1(出库回库) 2(入库回库) 3(盘点回库) 4(移库回库)
+            "binCode" => "TEST-BIN01",//料箱编号
+            "fromWorkStation" => "TEST-HQ01",//回库工作站
+            "fromLocCode" => "TEST-JH-0025",//源库位编码
+            "toLocCode" => "TEST-JH-001",//目标库位编码
+            "isEmpty" => 1,//料箱是否为空 0(为空) 1(不为空)
+            "stockInfo" => [$stockInfo],//商品信息
+        ]];
 
-        $req = json_encode($req, JSON_UNESCAPED_UNICODE);
-        $response = Http::post(config('api.haiq.storage.in'));
-        $msg = "haiq-料箱回库成功";
+        $response = Http::post(config('api.haiq.storage.in'),$this->request);
+        return $response;
         if ($response["code"] != 200){
-            $msg = "haiq-料箱回库失败";
+            LogService::log(__METHOD__,"haiq-料箱回库失败","REQUEST:".json_encode($req)." | RESPONSE:".$response);
+            return ['success'=>false,'data'=>$response["errMsg"]];
         }
-        LogService::log(__METHOD__,$msg,"REQUEST:".$req." | RESPONSE:".json_encode($response,JSON_UNESCAPED_UNICODE));
+        LogService::log(__METHOD__,"haiq-料箱回库成功","REQUEST:".json_encode($req)." | RESPONSE:".$response);
+        return ["success"=>true];
     }
 }

+ 0 - 8
app/Imports/StoreCheckingReceiveImport.php

@@ -14,14 +14,6 @@ use Maatwebsite\Excel\Imports\HeadingRowFormatter;
 HeadingRowFormatter::default('none');
 class StoreCheckingReceiveImport implements ToCollection,WithHeadingRow
 {
-    /** @var bool $isOverride
-     *  是否覆盖
-     */
-    protected $isOverride;
-    public function __construct($isOverride)
-    {
-        $this->isOverride=$isOverride ? true : false;
-    }
 
     /**
      * @param Collection $collection

+ 17 - 0
app/Imports/StoreCheckingReceiveSheets.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Imports;
+
+use Maatwebsite\Excel\Concerns\WithMultipleSheets;
+
+class StoreCheckingReceiveSheets implements WithMultipleSheets
+{
+    public function sheets(): array
+    {
+        // TODO: Implement sheets() method.
+        return [
+          0 => new StoreCheckingReceiveImport(),
+        ];
+    }
+
+}

+ 12 - 2
app/OrderIssue.php

@@ -102,16 +102,27 @@ class OrderIssue extends Model
         $orderItems = [];
         $orderIssueId = $this['id'];
         if ($this->logistic_number_return ?? false) {
-            $rejectedBillItems = RejectedBillItem::query()
+            $rejectedBillItems = RejectedBillItem::query()->with('quality')
                 ->whereHas('rejectedBill.orderIssue', function ($query) use ($orderIssueId) {
                     $query->where('id',$orderIssueId);
                 })->get();
+            $barcode_goods = data_get($rejectedBillItems,'*.barcode_goods');
+
+            if($rejectedBillItems->where('quality.name','残次')->count() > 0){
+                $this->update(['rejecting_status' => '差异退回']);
+                return;
+            }
+
+            $commodityBarcode = CommodityBarcode::query()->with('commodity')->whereIn('code',$barcode_goods)->get();
             if (count($rejectedBillItems) == 0) {
                 $this->update(['rejecting_status' => '未退回']);
                 return;
             }
             foreach ($rejectedBillItems as $item) {
                 $barcode_goods = (string)$item->barcode_goods;
+                if($commodityBarcode->where('code',$barcode_goods)->count()){
+                    $barcode_goods = $commodityBarcode->where('code',$barcode_goods)->first()->commodity->sku;
+                }
                 if (!isset($rejectedItems[$barcode_goods])){
                     $rejectedItems[$barcode_goods] = 0;
                 }
@@ -170,7 +181,6 @@ class OrderIssue extends Model
                 $isLack++;
         }
 
-        //dd($isAccord,$rejectedReview,$isLack,$isExcess,$isDiff,$rejectedExcess);
         if($isAccord == $rejectedReview && $isLack == 0 && $isExcess == 0 && $isDiff==0 && $rejectedExcess == 0 )
             $this->update(['rejecting_status' => '全部退回']);
         else if($isExcess > 0 && $isAccord ==  $rejectedReview && $isDiff == 0 && $isLack == 0)

+ 4 - 0
app/OrderPackageCommodities.php

@@ -10,8 +10,12 @@ class OrderPackageCommodities extends Model
     //
     use ModelTimeFormat;
 
+    /*
+     * amount => OracleActAllocationDetails->qty_each
+     */
     protected $fillable = ['order_package_id','commodity_id','amount'];
 
+
     public function package(){
         return $this->belongsTo('App\OrderPackage','order_package_id','id');
     }

+ 5 - 5
app/Process.php

@@ -12,7 +12,7 @@ class Process extends Model
     use ModelTimeFormat;
     use SoftDeletes;
     protected $fillable=[
-        'code','owner_id','process_method_id','unit_price','status','remark','amount','completed_amount','created_at','updated_at','deleted_at'
+        'code','owner_id','process_method_id','unit_price','status','remark','balance_remark','amount','completed_amount','created_at','updated_at','deleted_at'
     ];
     protected $appends=[
         'owner_name','process_method_name',
@@ -72,7 +72,7 @@ class Process extends Model
 
 
     public function createOperatorLog($operation){
-        OperatorLog::create([
+        OperatorLog::query()->create([
             'operator_logable_type'=>'processes',
             'operator_logable_id'=>$this->id,
             'user_id'=>Auth::id(),
@@ -81,7 +81,7 @@ class Process extends Model
     }
 
     public function createSign($mark){
-        return Sign::create([
+        return Sign::query()->create([
             'signable_type'=>'processes',
             'signable_id'=>$this->id,
             'field'=>'unit_price',
@@ -90,7 +90,7 @@ class Process extends Model
     }
 
     public function createSignUnitPrice($unit_price){
-        return Sign::create([
+        return Sign::query()->create([
             'signable_type'=>'processes',
             'signable_id'=>$this->id,
             'field'=>'update_unit_price_value',
@@ -99,7 +99,7 @@ class Process extends Model
     }
 
     public function destroySign(){
-        Sign::where('signable_type','processes')->where('signable_id',$this->id)->where('field','unit_price')
+        Sign::query()->where('signable_type','processes')->where('signable_id',$this->id)->where('field','unit_price')
             ->orWhere('field','update_unit_price_value')->delete();
     }
 }

+ 4 - 0
app/ProcessStatistic.php

@@ -26,4 +26,8 @@ class ProcessStatistic extends Model
         return $this->hasOne('App\OperatorLog','operator_logable_id','process_id')
             ->where('operator_logable_type','processes');
     }
+    /*public function operatorLogSubmit(){
+        return $this->hasOne('App\OperatorLog','operator_logable_id','process_id')
+            ->where('operator_logable_type','processes')->where('operation','质量验收');
+    }*/
 }

+ 3 - 0
app/Providers/RouteServiceProvider.php

@@ -87,5 +87,8 @@ class RouteServiceProvider extends ServiceProvider
         Route::prefix('api/thirdPart/weixin')
             ->namespace('App\Http\Controllers\Api\thirdPart\weixin')
             ->group(base_path('routes/api/thirdPart/weixin.php'));
+        Route::prefix('api/thirdPart/haiq')
+            ->namespace('App\Http\Controllers\api\thirdPart\haiq')
+            ->group(base_path('routes/api/thirdPart/haiq.php'));
     }
 }

+ 2 - 1
app/Services/CommodityService.php

@@ -145,6 +145,7 @@ Class CommodityService
         return $query->get();
     }
 
+    /* 批量更新 */
     public function batchUpdate(array $params){
         return app(BatchUpdateService::class)->batchUpdate('commodities', $params);
     }
@@ -174,7 +175,7 @@ Class CommodityService
         return $commodities->get();
     }
 
-    /* 通过货主代码与条形码寻找FLUX商品补充至WMS */
+    /* 通过货主代码与条形码寻找FLUX商品补充至WMS 单条*/
     public function ownerAndBarcodeFirstOrCreate(Owner $owner,$barcode){
         $wmsCommodity = app('oracleBasSkuService')->first(['customerid'=>$owner->code, 'barcode'=>$barcode]);
         if (!$wmsCommodity) return null;

+ 9 - 5
app/Services/OrderIssueService.php

@@ -55,10 +55,17 @@ class OrderIssueService
                 }
             });
         }
+
         if(isset($arr['is_new_rejecting'])){
             $query->where('is_new_rejecting','=',$arr['is_new_rejecting']);
         }
 
+        if(isset($arr['logistic_id'])){
+            $query->whereHas('order',function($query) use($arr){
+                $query->where('logistic_id',$arr['logistic_id']);
+            });
+        }
+
         $query->selectRaw('order_issues.* ,order_issue_on_tops.id top_id ,order_issue_on_tops.remark,order_issue_on_tops.updated_at top_update')
             ->leftJoin('order_issue_on_tops', 'order_issue_on_tops.order_issue_id', '=', 'order_issues.id')
             ->whereNull('order_issue_on_tops.deleted_at')
@@ -261,9 +268,6 @@ class OrderIssueService
             try {
                 $orderIssue = $this->createOrFindByOrderNo($orderNo);
                 if($orderIssue != null){
-
-
-
                     OrderIssue::query()->where('id', $orderIssue['id'])->update(['order_issue_type_id' => $params['typeId'], 'result_explain' => $params['result_explain']]);
                     OrderIssueProcessLog::query()->create(['order_issue_id' => $orderIssue['id'], 'user_id' => Auth::user()['id'], 'content' => '', 'type' => '创建']);
                     LogService::log(__METHOD__, __FUNCTION__, '标记订单问题件' . json_encode($orderNo).json_encode($orderIssue));
@@ -353,9 +357,9 @@ class OrderIssueService
 
     public function create(array $arr)
     {
-        $orderIssue = OrderIssue::create($arr);
+        $orderIssue = OrderIssue::query()->create($arr);
         if (!$arr['order_id']) {
-            $order = Order::create($arr);
+            $order = Order::query()->create($arr);
             $orderIssue->order_id = $order['id'];
             $orderIssue->save();
         }

+ 8 - 269
app/Services/OrderPackageCommoditiesService.php

@@ -37,7 +37,7 @@ class OrderPackageCommoditiesService
     public function basedOnActAllocationDetailsStoreByOrderNo($orderNo,$orderPackage){
         $details = OracleActAllocationDetails::query()->where('orderno', $orderNo)->get();
         $orderPackageCommodities =  OrderPackageCommodities::query()->where('order_package_id',$orderPackage['id'])->get();
-        $this->根据详情更新OrderPackage下的商品信息($orderPackage,$orderPackageCommodities,$details,'qty');
+        $this->根据详情更新OrderPackage下的商品信息($orderPackage,$orderPackageCommodities,$details,'qty_each');
         unset($details,$orderPackageCommodities);
     }
 
@@ -103,7 +103,7 @@ class OrderPackageCommoditiesService
     {
         $details = OracleActAllocationDetails::query()->where('picktotraceid', $orderPackage->logistic_number)->get();
         $orderPackageCommodities =  OrderPackageCommodities::query()->where('order_package_id',$orderPackage['id'])->get();
-        $this->根据详情更新OrderPackage下的商品信息($orderPackage,$orderPackageCommodities,$details,'qty');
+        $this->根据详情更新OrderPackage下的商品信息($orderPackage,$orderPackageCommodities,$details,'qty_each');
         unset($details,$orderPackageCommodities);
     }
 
@@ -133,9 +133,9 @@ class OrderPackageCommoditiesService
             $commodity = Commodity::query()->create(['sku' => $sku, 'owner_id' => $owner_id, 'name' => $basSku->descr_c]);
         }
         try {
-            $count  = OrderPackageCommodities::query()->where(['order_package_id' => $orderPackage['id'], 'commodity_id' => $commodity['id'], 'amount' => $detail['qty']])->count();
+            $count  = OrderPackageCommodities::query()->where(['order_package_id' => $orderPackage['id'], 'commodity_id' => $commodity['id'], 'amount' => $detail['qty_each']])->count();
             if($count == 0){
-                $orderPackageCommodities = OrderPackageCommodities::query()->firstOrCreate(['order_package_id' => $orderPackage['id'], 'commodity_id' => $commodity['id'], 'amount' => $detail['qty']]);
+                $orderPackageCommodities = OrderPackageCommodities::query()->firstOrCreate(['order_package_id' => $orderPackage['id'], 'commodity_id' => $commodity['id'], 'amount' => $detail['qty_each']]);
                 LogService::log(__METHOD__,__FUNCTION__,'创建订单包裹详情'.json_encode($orderPackageCommodities));
             }
         } catch (\Exception $e) {
@@ -145,265 +145,6 @@ class OrderPackageCommoditiesService
         }
     }
 
-    public function getOrderPackageCommoditiesByOrderId($orderId)
-    {
-        $order = Order::query()->where('id', $orderId)->first();
-        if (!$order) {
-            return null;
-        }
-        $orderPackageIds = OrderPackage::query()->select('id')->where('order_id', $order['id'])->get();
-        if (!$orderPackageIds) {
-            return null;
-        }
-        return OrderPackageCommodities::query()->with('commodity')->whereIn('order_package_id', $orderPackageIds)->get();
-    }
-
-    public function createByOrderDetail(OracleDOCOrderDetail $detail, OrderPackage $orderPackage)
-    {
-        $owner = Owner::query()->where('code', $detail['customerid'])->first();      // 货主
-        $sku = $detail->sku;    // sku
-        $owner_id = $owner->id; // 货主id
-        $commodity = Commodity::query()->where('sku', $sku)->where('owner_id', $owner_id)->first(); // 商品
-        if ($commodity == null) {
-            $basSku = OracleBasSKU::query()->where('sku', $sku)->where('customerid' , $detail->customerid)->first();   // 没有找到对应的商品信息
-            $commodity = Commodity::query()->create(['sku' => $sku, 'owner_id' => $owner_id, 'name' => $basSku->descr_c]);
-        }
-        return OrderPackageCommodities::query()->create(['order_package_id' => $orderPackage['id'], 'commodity_id' => $commodity['id'], 'amount' => $detail['qtyordered']]);
-    }
-
-    public function 根据WMS订单信息创建WAS订单包裹商品($orderHeaders,$oracleDOCOrderDetails,$actAllocationDetails,$orders)
-    {
-        /** @var CommodityService $commodityService */
-        $commodityService = app('commodityService');
-        $commodities = $commodityService->getWASCommoditiesByWMSOrderHeaders($orderHeaders); // 商品
-
-        $orderPackages = [];
-        $orderList = [];
-        foreach ($orders as $order) {
-            $orderList[$order['id']] = $order;
-            $packages = $order['packages'] ?? [];
-            foreach ($packages as $package) {
-                $orderPackages[$package['logistic_number']]  = $package;
-            }
-        }
-        $fillables = [];
-        foreach ($orderPackages as $key=>$orderPackage) {
-            $logistic_number = $key;
-            $order = $orderList[$orderPackage['order_id']];
-            $details1 =  $actAllocationDetails[strval($logistic_number)] ?? [];
-            $details2 = [];
-            if(count($details1)== 0){
-                $details2 = $actAllocationDetails[$order['code']] ?? [];
-            }
-            if(count($details1) > 0 ||  count($details2) > 0){
-                $items = $this->根据订单分配详情返回创建数组($details1,$orderPackage,$commodities,$order);
-                foreach ($items as $item){
-                    $fillables[] = $item;
-                }
-                $items = $this->根据订单分配详情返回创建数组($details2,$orderPackage,$commodities,$order);
-                foreach ($items as $item){
-                    $fillables[] = $item;
-                }
-                continue;
-             }
-            $details =  $oracleDOCOrderDetails[$order['code']] ?? [];
-            if($details->count() >0){
-                $items = $this->根据订单详情返回创建数组($details,$orderPackage,$commodities,$order);
-                foreach ($items as $item){
-                    $fillables[] = $item;
-                }
-            }
-        }
-        try {
-            if(count($fillables) > 0){
-                OrderPackageCommodities::query()->insert($fillables);
-                LogService::log(__METHOD__,__FUNCTION__,'批量创建 OrderPackageCommodities'.count($fillables).json_encode($fillables));
-            }
-        } catch (\Exception $e) {
-            LogService::log(__METHOD__,__FUNCTION__,'批量创建异常 OrderPackageCommodities error '.json_encode($fillables).$e->getMessage().$e->getTraceAsString());
-        } finally {
-            $orderIds = data_get($orders,'*.id');
-            return Order::query()->with('packages.commodities')->whereIn('id',$orderIds)->get();
-        }
-    }
-
-    // XXX 逻辑优化 删除不存在未完成
-    public function 更新WAS订单快递打包商品信息($orderHeaders,$orders,$commodities)
-    {
-        $newItems = $this->获取WMS订单打包信息($orderHeaders,$commodities,$orders);
-        $orderPackagesCommodities = $this->basedOrdersReturnOrderPackageCommodities($orders);
-
-        $multipleData = [['id','order_package_id','commodity_id']];
-        $packageCommodity_list_amount = [];
-        $packageCommodity_list = [];
-
-        foreach ($orderPackagesCommodities as $item) {
-            $key = 'order_package_id='.$item['order_package_id'].' commodity_id='.$item['commodity_id'].' amount='.$item['amount'];
-            if(!($packageCommodity_list_amount[$key] ?? false)){
-                $packageCommodity_list_amount[$key] = [];
-            }
-            $packageCommodity_list_amount[$key][] = $item;
-            $key2 = 'order_package_id'.$item['order_package_id'].' commodity_id='.$item['commodity_id'];
-            if($packageCommodity_list[$key2] ?? false){
-                $packageCommodity_list[$key2] = [];
-            }
-            $packageCommodity_list[$key2][] = $item;
-        }
-        foreach ($newItems as $key=>$newItem) {
-            $key1 = 'order_package_id='.$newItem['order_package_id'].' commodity_id='.$newItem['commodity_id'].' amount='.$newItem['amount'];
-            $packageCommodity = $packageCommodity_list_amount[$key1][0] ?? false;
-            if($packageCommodity ?? false){
-                unset($newItems[$key]);
-                array_shift($packageCommodity_list_amount[$key1]);
-            }else{
-                $key2 = 'order_package_id'.$newItem['order_package_id'].' commodity_id='.$newItem['commodity_id'];
-                $packageCommodity = $packageCommodity_list[$key2][0] ?? false;
-                if($packageCommodity ?? false) {
-                    $amount = intval($newItem['amount']);
-                    if($packageCommodity['amount'] !== $amount){
-                        $data = [
-                            'order_package_id' => $packageCommodity['order_package_id'],
-                            'commodity_id' => $packageCommodity['commodity_id'],
-                            'amount' => $amount,
-                        ];
-                        $multipleData[]  = $data;
-                    }
-                    array_shift($packageCommodity_list[$key2]);
-                    unset($newItems[$key]);
-                }
-            }
-        }
-        try {
-            if (count($newItems) > 0) {
-                OrderPackageCommodities::query()->insert($newItems);
-                LogService::log(__METHOD__, __FUNCTION__, '添加打包信息' . json_encode($newItems));
-            }
-        }catch (\Exception $e) {
-            LogService::log(__METHOD__, __FUNCTION__, '添加打包信息失败' . json_encode($newItems).$e->getMessage().$e->getTraceAsString());
-        }
-
-        if(count($multipleData) > 1){
-            try {
-                /** @var BatchUpdateService $batchUpdateService */
-                $batchUpdateService = app('batchUpdateService');
-                $batchUpdateService->batchUpdate('order_package_commodities', $multipleData);
-                LogService::log(__METHOD__,__FUNCTION__,'批量更新'.count($multipleData).json_encode($multipleData));
-            } catch (\Exception $e) {
-                LogService::log(__METHOD__,__FUNCTION__,'批量更新失败'.json_encode($multipleData).$e->getMessage(),$e->getTraceAsString());
-            } finally {
-                unset($multipleData);
-            }
-        }
-    }
-
-    private function 获取WMS订单打包信息($orderHeaders,$commodities,$orders){
-        $newItems = [];
-
-        $commodities_list = [];
-        foreach ($commodities as $commodity) {
-            $key = 'sku='.$commodity['sku'].' owner_id='.$commodity['owner_id'];
-            $commodities_list[$key] = $commodity;
-        }
-        foreach ($orderHeaders as $orderHeader) {
-            $order = $orders[$orderHeader['orderno']] ?? null;
-            if(!isset($order)){
-                continue;
-            }
-            $orderPackages = $order['packages'];
-            $oracleDOCOrderDetails = $orderHeader['oracleDOCOrderDetails'] ?? [];
-            $actAllocationDetails = $orderHeader['actAllocationDetails'] ?? [];
-
-            if($actAllocationDetails->count() > 0){
-                foreach ($orderPackages as $orderPackage) {
-                    $details = [];
-                    if($orderPackage['logistic_number'] == $orderHeader['soreference5'] ){
-                        foreach ($actAllocationDetails as $detail) {
-                            if($detail['picktotraceid'] == '*' || $detail['picktotraceid'] == $orderHeader['soreference5'])
-                                $details[] = $detail;
-                        }
-                    }else{
-                        $logistic_number = $orderPackage['logistic_number'];
-                        foreach ($actAllocationDetails as $detail) {
-                            if($detail['picktotraceid'] == $logistic_number)
-                                $details[] = $detail;
-                        }
-                    }
-                    $addArr = $this->basedDetailsReturnFillables($details,$orderPackage,$commodities_list,$order,'qty');
-                    $newItems = array_merge($newItems,$addArr);
-                }
-            }elseif($oracleDOCOrderDetails->count() > 0){
-                foreach ($orderPackages as $orderPackage) {
-                    $details = [];
-                    $logistic_number = $orderPackage['logistic_number'];
-                    foreach ($actAllocationDetails as $detail) {
-                        if($detail['dropid'] == $logistic_number){
-                            array_push($details,$detail);
-                        }
-                    }
-                    $addArr = $this->basedDetailsReturnFillables($details,$orderPackage,$commodities_list,$order,'qtyordered');
-                    $newItems = array_merge($newItems,$addArr);
-                }
-            }
-        }
-        return $newItems;
-    }
-
-    public function 根据订单详情返回创建数组($details,$orderPackage,$commodities,$order){
-        $orderPackagerCommodities = [];
-        foreach ($details as $detail) {
-            $commodity = $commodities->where('sku', $detail['sku'])->where('owner_id', $order['owner_id'])->first();
-            $fillable = [
-                'order_package_id' => $orderPackage['id'] ?? '',
-                'commodity_id' => $commodity['id'] ?? '',
-                'amount' => $detail['qtyordered'],
-            ];
-            $orderPackagerCommodities[] = $fillable;
-        }
-        return $orderPackagerCommodities;
-    }
-
-    public function 根据订单分配详情返回创建数组($details,$orderPackage,$commodities,$order){
-        $orderPackagerCommodities = [];
-        foreach ($details as $detail) {
-
-            $commodity = $commodities->where('sku', $detail['sku'])->where('owner_id', $order['owner_id'])->first();
-            $fillable = [
-                'order_package_id' => $orderPackage['id'] ?? '',
-                'commodity_id' => $commodity['id'] ?? '',
-                'amount' => $detail['qty'] ?? '',
-            ];
-            array_push($orderPackagerCommodities,$fillable);
-        }
-        return $orderPackagerCommodities;
-    }
-
-    public function basedOrdersReturnOrderPackageCommodities($orders){
-        $orderPackageCommodities = [];
-        foreach ($orders as $order) {
-            foreach ($order['packages'] as $package) {
-                foreach ($package['commodities'] as $commodity) {
-                    $orderPackageCommodities[] = $commodity;
-                }
-            }
-        }
-        return $orderPackageCommodities;
-    }
-
-    public function basedDetailsReturnFillables($details,$orderPackage,$commoditiesMap,$order,$column){
-        $orderPackagerCommodities = [];
-        foreach ($details as $detail) {
-            $key = 'sku='.$detail['sku'].' owner_id='.$order['owner_id'];
-            $commodity = $commoditiesMap[$key] ?? '';
-            $fillable = [
-                'order_package_id' => $orderPackage['id'] ?? '',
-                'commodity_id' => $commodity['id'] ?? '',
-                'amount' => $detail[$column] ?? '',
-            ];
-            array_push($orderPackagerCommodities,$fillable);
-        }
-        return $orderPackagerCommodities;
-    }
-
     public function createByWmsOrder($orderHeaders)
     {
         if(!$orderHeaders){ return [];}
@@ -471,7 +212,7 @@ class OrderPackageCommoditiesService
                 $params[] = [
                     'commodity_id' =>$commodity->id,
                     'order_package_id' =>$orderPackage->id,
-                    'amount' => $actAllocationDetail->qty,
+                    'amount' => $actAllocationDetail->qty_each,
                     'created_at' => $create_at
                 ];
             }
@@ -480,7 +221,6 @@ class OrderPackageCommoditiesService
         return $params;
     }
 
-
     public function create(array $params){
         if(!$params){return [];}
         try {
@@ -550,16 +290,16 @@ class OrderPackageCommoditiesService
                 foreach ($actAllocationDetails as $key1=>$actAllocationDetail) {
                     foreach ( $order_package_commodities as $key=>$item) {
                         $commodity = $item->commodity;
-                        if($actAllocationDetail->sku == $commodity->sku && $item->amount ==  $actAllocationDetail->qty){
+                        if($actAllocationDetail->sku == $commodity->sku && $item->amount ==  $actAllocationDetail->qty_each){
                             unset($order_package_commodities[$key]);
                             unset($actAllocationDetails[$key1]);
                             $deleteKey[] = $key1;
                             break;
-                        }else if($item ->sku == $commodity->sku && $item->amount !=  $actAllocationDetail->qty){
+                        }else if($item ->sku == $commodity->sku && $item->amount !=  $actAllocationDetail->qty_each){
                             $updateParams[] = [
                                 'id' => $item->id,
                                 'commodity_id' => $commodity->id,
-                                'amount' => $actAllocationDetail->qty,
+                                'amount' => $actAllocationDetail->qty_each,
                                 'updated_at' => $updated_at
                             ];
                             $deleteKey[] = $key1;
@@ -601,7 +341,6 @@ class OrderPackageCommoditiesService
             })->get();
     }
 
-
     public function batchUpdateItself($column, array $params)
     {
         return app(BatchUpdateService::class)->batchUpdateItself('order_package_commodities', $column, $params);

+ 0 - 187
app/Services/OrderPackageService.php

@@ -173,180 +173,6 @@ class OrderPackageService
             ->paginate($paginate);
     }
 
-
-    public function 根据WMS订单创建WAS包裹($orderHeaders, $orders)
-    {
-        $orderPackagesFillables = [];
-        foreach ($orders as $order) {
-            $orderHeader = $orderHeaders[strval($order['code'])] ?? false;
-            if(!$orderHeader){
-                continue;
-            }
-            $fillables = $this->根据WMS订单生成包裹信息($orderHeader, $order);
-            foreach ($fillables as $fillable) {
-                $orderPackagesFillables[] = $fillable;
-            }
-        }
-        try {
-            if(count($orderPackagesFillables) > 0){
-                OrderPackage::query()->insert($orderPackagesFillables);
-                LogService::log(__METHOD__, __FUNCTION__, '批量订单包裹信息' .count($orderPackagesFillables). json_encode($orderPackagesFillables) );
-            }
-        } catch (\Exception $e) {
-            LogService::log(__METHOD__, __FUNCTION__, '批量订单包裹信息 error' .json_encode($orderPackagesFillables) .  $e->getMessage().$e->getTraceAsString());
-        } finally {
-            $order_ids = data_get($orders,'*.id');
-            unset($orderPackagesFillables,$orders,$fillables);
-            return Order::query()->with('packages')->whereIn('id',$order_ids)->get();
-        }
-    }
-
-    public function 根据WMS订单生成包裹信息($orderHeader, $order)
-    {
-
-        $soReference5 = $orderHeader['soreference5'];
-        $orderPackages= [];
-        $logistic_numbers = [];
-
-        foreach ($orderHeader['actAllocationDetails'] as $actAllocationDetail) {
-            $logistic_numbers[]  =$actAllocationDetail->picktotraceid;
-            array_push($logistic_numbers,$actAllocationDetail['picktotraceid']);
-        }
-
-        $logistic_numbers = array_unique($logistic_numbers);
-        $logistic_numbers = array_diff($logistic_numbers,['','*',null]);
-
-        $logistic_numbers = count($logistic_numbers) == 0 ? ($soReference5 != '*' ? [$soReference5] : []) : $logistic_numbers;
-        $logistic_numbers = array_diff($logistic_numbers,['','*',null]);
-
-        if(count($logistic_numbers) == 0 ){ return  [];}
-
-        if (count($logistic_numbers) != 0) {
-            foreach ($logistic_numbers as $logistic_number) {
-                $fillable = [
-                    'order_id' => $order['id'],
-                    'logistic_number' => $logistic_number,
-                ];
-                $orderPackages[] = $fillable;
-            }
-        }
-        return $orderPackages;
-    }
-
-    public function 更新WAS订单的包裹的重量和体积($orderHeaders,$orderPackages)
-    {
-
-        /** @var CommodityService $commodityService */
-        $commodityService = app('commodityService');
-        $commodities = $commodityService->getWASCommoditiesByWMSOrderHeaders($orderHeaders); // 商品
-
-
-        $multipleData = [['id','weight','bulk']];
-        $noAttributeCommodity = [];
-
-        $commodity_map = [];
-        foreach ($commodities as $commodity) {
-            $key = ' id='.$commodity->id;
-            $commodity_map[$key] = $commodity;
-        }
-        foreach ($orderPackages as $packages) {
-            foreach ($packages as $package) {
-
-                if($package == null){
-                    continue;
-                }
-                $orderPackageCommodities = $package['commodities'] ?? [];
-                $updateArr = [
-                    'id' => $package['id'],
-                    'weight' => 0,
-                    'bulk' => 0,
-                ];
-                foreach ($orderPackageCommodities as $packageCommodity) {
-                    $commodity =  $commodity_map[' id='.$packageCommodity->commodity_id];
-                    if($commodity['weight'] == 0  || !$commodity['bulk'] == 0 ){
-                        array_push($noAttributeCommodity,$commodity);
-                    }
-//                    $updateArr['weight'] += bcmul($commodity['weight'], $packageCommodity['amount'],5);
-//                    $updateArr['bulk'] += bcmul($commodity['bulk'], $packageCommodity['amount'],5);
-//                    $updateArr['weight'] += round($commodity['weight']*$packageCommodity['amount'],5);
-                    $updateArr['bulk'] += round($commodity['bulk']*$packageCommodity['amount'],5);
-                    //$updateArr['weight'] +=(intval($commodity['weight'] ?? 0) )  * ( intval($packageCommodity['amount'] ?? 0) );
-                    //$updateArr['bulk'] += (intval($commodity['bulk']  ?? 0)) * (intval($packageCommodity['amount'] ?? 0) );
-                }
-                if($package['weight'] == $updateArr['weight'] && $package['bulk'] == $updateArr['bulk']){
-                    continue;
-                }
-                // 订单同步步时 重量 体积不覆盖已有值
-                if($packages['weight'] ?? false){
-                    $updateArr['weight'] = $packages['weight'];
-                }
-                if($packages['bulk'] ?? false){
-                    $updateArr['bulk'] = $packages['bulk'];
-                }
-                $multipleData[] = $updateArr;
-            }
-        }
-        if(count($multipleData) > 1){
-            /** @var BatchUpdateService $batchUpdateService */
-            $batchUpdateService = app('batchUpdateService');
-            $batchUpdateService->batchUpdate('order_packages',$multipleData);
-        }
-        array_unique($noAttributeCommodity);
-        if(count($noAttributeCommodity) > 1){
-            $commodityService->syncCommodityAttribute($noAttributeCommodity);
-        }
-        unset($multipleData,$noAttributeCommodity,$commodities);
-    }
-
-    public function 更新WAS订单快递单号信息($orderHeaders,$orders)
-    {
-
-        $fillables = [];
-        $orders_map = [];
-        $orders_package_map = [];
-        foreach ($orders as $order){
-            $key = $order['code'];
-            $orders_map[$key] = $order;
-            foreach ($order['packages'] as $package) {
-                $logistic_numbers = $package['logistic_number'];
-                $orders_package_map[$key][$logistic_numbers] =$package;
-            }
-        }
-
-        foreach ($orderHeaders as $key=>$orderHeader) {
-            $order = $orders[$key] ?? false;
-            if(!$order){
-                continue;
-            }
-            $packages = $orders_package_map[$key] ?? false;
-            $pickToTraceIds = [];
-            foreach ($orderHeader->actAllocationDetails as $actAllocationDetail) {
-                $pickToTraceIds[] = $actAllocationDetail['picktotraceid'];
-            }
-            $pickToTraceIds = array_unique(array_diff($pickToTraceIds,['','*',null]));
-
-            foreach ($pickToTraceIds as $pickToTraceId) {
-                if(!$packages || !($orders_package_map[$key][$pickToTraceId] ?? false)){
-                    $fillables[] = [
-                        'order_id' => $order->id,
-                        'logistic_number' => $pickToTraceId
-                    ];
-                }
-            }
-        }
-
-        try {
-            if(count($fillables)>0){
-                OrderPackage::query()->insert($fillables);
-                LogService::log(__METHOD__,__FUNCTION__,'创建orderPackage:'.json_encode($fillables));
-            }
-        } catch (\Exception $e) {
-            LogService::log(__METHOD__,__FUNCTION__,'创建orderPackage 失败:'.json_encode($fillables).$e->getMessage().$e->getTraceAsString());
-        } finally {
-            unset($fillables);
-        }
-    }
-
     public function createByWmsOrder($orderHeaders)
     {
         if(!$orderHeaders ){return ;}
@@ -443,19 +269,6 @@ class OrderPackageService
         $orderPackageCommoditiesService->updateByWmsOrder($orderHeaders);
     }
 
-    public function getLogisticNumbersByOrderHeader($orderHeader){
-       $oracleDOCOrderDetails =  $orderHeader->oracleDOCOrderDetails;
-       $actAllocationDetails = $orderHeader->actAllocationDetails;
-       if($actAllocationDetails){
-            $logistic_numbers = data_get($actAllocationDetails,'*.picktotraceid');
-            return array_diff(array_unique($logistic_numbers),['','*',null]);
-       }
-       if($oracleDOCOrderDetails){
-           return [$orderHeader->soreference5];
-       }
-       return [];
-    }
-
     public function getByWmsOrders($orderHeaders){
         $order_nos = data_get($orderHeaders,'*.orderno');
         return OrderPackage::query()->with('order')

+ 0 - 329
app/Services/OrderService.php

@@ -405,335 +405,6 @@ class OrderService
         return $this->findOrCreateByClientCode($orderHeader['soreference1']);
     }
 
-    public function 根据设置从WMS获取跟踪的订单($startDate)
-    {
-
-        /** @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService */
-        $oracleDOCOrderHeaderService = app('oracleDOCOrderHeaderService');
-        $orderHeadersResult = $oracleDOCOrderHeaderService->根据时间获取在这段时间内创建的WMS订单($startDate);
-
-//        LogService::log('111','111',json_encode($orderHeadersResult));
-        if ($orderHeadersResult->count() == 0) {
-            return null;
-        }
-
-        $orderHeaders_map = [];
-        $oracleDOCOrderDetails = [];
-        $actAllocationDetails = [];
-
-        foreach ($orderHeadersResult as $key=>$orderHeader) {
-            $orderHeaders_map[$orderHeader['orderno']] = $orderHeader;
-            $oracleDOCOrderDetails[$orderHeader['orderno']] = $orderHeader['oracleDOCOrderDetails'];
-            $details = $orderHeader['actAllocationDetails'];
-            $orderno = strval($orderHeader['orderno']);
-            foreach ($details as $detail) {
-                $picktotraceid = strval($detail['picktotraceid']);
-                if ($picktotraceid == '*') {
-                    if (!($actAllocationDetails[$orderno] ?? false)) {
-                        $actAllocationDetails[$orderno] = [];
-                    }
-                    array_push($actAllocationDetails[$orderno], $detail);
-                    continue;
-                }
-                if (!($actAllocationDetails[$picktotraceid] ?? false)) {
-                    $actAllocationDetails[$picktotraceid] = [];
-                }
-                $actAllocationDetails[$picktotraceid][] =$detail;
-            }
-        }
-        unset($orderHeadersResult);
-
-        return $this->根据WMS订单生成WAS订单($orderHeaders_map, $oracleDOCOrderDetails, $actAllocationDetails);
-    }
-
-    public function 根据设置从WMS同步该时间段内更新的订单($startDate)
-    {
-        /** @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService */
-        $oracleDOCOrderHeaderService = app('oracleDOCOrderHeaderService');
-        $editedOrderHeaders = $oracleDOCOrderHeaderService->根据时间获取在这段时间内更新的WMS订单($startDate);
-
-        $orderHeaders_map = [];
-        foreach ($editedOrderHeaders as $editedOrderHeader) {
-            $orderHeaders_map[$editedOrderHeader['orderno']] = $editedOrderHeader;
-        }
-
-        $orderNos = array_keys($orderHeaders_map);
-
-        $orders = Order::query()
-            ->with('packages.commodities')
-            ->whereIn('code', $orderNos)
-            ->get();
-
-        if ($orders->count() == 0) {
-            return ['orderPackageCommodities'=> null, 'orderHeaders'=>null];
-        }
-
-        $ordersList =[];
-        foreach ($orders as $order) {
-            $ordersList[$order['code']] = $order;
-        }
-        $orderHeaders_map = $this->filterNoCorrespondingOrder($orderHeaders_map,$ordersList);
-
-        $this->将WMS订单对应的WAS订单信息更新($orderHeaders_map,$ordersList);
-
-        $orderPackageCommodities = OrderPackageCommodities::query()
-            ->with('package.order')
-            ->whereHas('package.order', function ($query) use ($orderNos) {
-                $query->whereIn('code',$orderNos);
-            })->get();
-        $orderHeaders = $orderHeaders_map;
-        return compact('orderPackageCommodities', 'orderHeaders');
-    }
-
-
-    public function 根据WMS订单生成WAS订单($orderHeaders, $oracleDOCOrderDetails, $actAllocationDetails)
-    {
-
-        /** @var OrderPackageService $orderPackageService */
-        $orderPackageService = app('orderPackageService');
-        /** @var OrderPackageCommoditiesService $orderCommoditiesService */
-        $orderCommoditiesService = app('orderPackageCommoditiesService');
-
-        if (count($orderHeaders) === 0) {
-            return [];
-        }
-        $params = $this->根据WMS订单信息返回创建WAS订单需要信息($orderHeaders);
-        $owners = $params['owners'];
-        $shops = $params['shops'];
-        $logistics = $params['logistics'];
-        $orderHeaders = $this->过滤已有的WAS订单($orderHeaders);
-        $this->根据WMS订单创建WAS订单($orderHeaders, $owners, $shops, $logistics);
-        $orderNos = array_keys($orderHeaders);
-        $orders = Order::query()->whereIn('code',$orderNos)->get();
-        $orders = $orderPackageService->根据WMS订单创建WAS包裹($orderHeaders, $orders);
-        $orders = $orderCommoditiesService->根据WMS订单信息创建WAS订单包裹商品($orderHeaders, $oracleDOCOrderDetails, $actAllocationDetails, $orders);
-
-        $orderPackages = [];
-        foreach ($orders as $order) {
-            $orderPackages[] = $order['packages'];
-           $packages =  $order['packages'] ?? null;
-            $orderPackages[] =  $packages;
-//           array_push($orderPackages,$packages);
-        }
-        $orderPackageService->更新WAS订单的包裹的重量和体积($orderHeaders,$orderPackages);
-        return compact('orders', 'orderHeaders', 'actAllocationDetails', 'oracleDOCOrderDetails');
-    }
-
-    public function 过滤已有的WAS订单($orderHeaders,$orders_map = [])
-    {
-
-        if(count($orders_map) == 0){
-            $orderNos = array_keys($orderHeaders);
-            $orders = Order::query()->whereIn('code', $orderNos)->get();
-            foreach ($orders as $order) {
-                $orders_map[$order['code']] = $order;
-            }
-        }
-        if(count($orders_map) !== 0){
-            foreach ($orders_map as $key=>$orderHeader) {
-                unset($orderHeaders[$key]);
-            }
-        }
-        return $orderHeaders;
-    }
-
-    public function filterNoCorrespondingOrder($orderHeaders_map,$orders_map = []){
-        if(count($orders_map) == 0){
-            $orderNos = array_keys($orderHeaders_map);
-            $orders = Order::query()->whereIn('code', $orderNos)->get();
-            foreach ($orders as $order) {
-                $orders_map[$order['code']] = $order;
-            }
-        }
-        if(count($orders_map) !== 0){
-            foreach ($orderHeaders_map as $key=>$orderHeader) {
-                if(!($orders_map[$key] ?? false)){
-                    unset($orderHeaders_map[$key]);
-                }
-            }
-        }
-        return $orderHeaders_map;
-
-    }
-
-    private function 根据WMS订单信息返回创建WAS订单需要信息($orderHeaders)
-    {
-        /** @var ShopService $shopService */
-        $shopService = app('shopService');
-        /** @var LogisticService $logisticService */
-        $logisticService = app('logisticService');
-        /** @var OwnerService $ownerService */
-        $ownerService = app('ownerService');
-        $owners = $ownerService->获取订单跟踪的货主();    // 监听的货主
-        $shops = $shopService->根据追踪的WMS订单返回商铺($orderHeaders);     // 商铺
-        $logistics = $logisticService->getWASLogisticsByWMSOrderHeaders($orderHeaders); // 承运商
-        return compact('owners', 'shops', 'logistics');
-    }
-
-    public function 根据WMS订单创建WAS订单($orderHeaders, $owners, $shops, $logistics)
-    {
-        if(!$orderHeaders){return [];}
-        $fillables = [];
-        $owners_map = [];
-        $shop_map = [];
-        $logistics_map = [];
-        foreach ($owners as $owner) {
-            $key = 'code='.$owner->code;
-            $owners_map[$key] = $owner;
-        }
-
-        foreach ($shops as $shop) {
-            $key = 'name='.$shop->name.' owner_id='.$shop->owner_id;
-            $shop_map[$key] =  $shop;
-        }
-
-        foreach ($logistics as $logistic) {
-            $key = 'code='.$logistic->code;
-            $logistics_map[$key] =  $logistic;
-        }
-
-        $logistic_change = Logistic::query()->where('name','自提')->first();
-        $owner_change = Owner::query()->where('name','安桥主品')->first();
-        $logistic_an_jie = Logistic::query()->where('name','新杰物流')->first();
-
-        // XXX 循环 300 个元素 3s-5s
-        foreach ($orderHeaders as $orderHeader) {
-            $owner_key = 'code='.$orderHeader->customerid;
-            $owner = $owners_map[$owner_key] ?? '';
-
-            $shop_key = 'name='.$orderHeader->issuepartyname.' owner_id='.$owner->owner_id ?? '';
-            $shop = $shop_map[$shop_key] ?? '';
-
-            $logistic_key = 'code='. $orderHeader->userdefine1;
-            $logistic = $logistics_map[$logistic_key] ?? '';
-
-            // change logistic to 新杰物流
-            // $logistic 自提 and $owner 安桥主品
-            if($logistic_change->id == $logistic->id ??'' && $owner_change->id == $owner->id ?? ''){
-                $logistic = $logistic_an_jie;
-            }
-
-            $fillables[] = [
-                'code' => $orderHeader->orderno ,
-                'owner_id' => $owner->id ?? '',
-                'wms_status' => $orderHeader->oracleBASCode_codename_c,
-                'created_at' => $orderHeader->addtime,
-                'logistic_id' => $logistic->id ?? '',
-                'shop_id' => $shop->id ?? '',
-                'consignee_name' => $orderHeader->c_contact,
-                'consignee_phone' => $orderHeader->c_tel2,
-                'province' => $orderHeader->c_province,
-                'city' => $orderHeader->c_city,
-                'district' => $orderHeader->c_district,
-                'address' => $orderHeader->c_address1,
-                'client_code' => $orderHeader->soreference1,
-                'wms_edittime' => $orderHeader->edittime,
-            ];
-
-        }
-        try {
-            if (count($fillables) > 0) {
-                Order::query()->insert($fillables);
-                LogService::log(__METHOD__, __FUNCTION__, '批量创建Order' . count($fillables) . json_encode($fillables));
-            }
-        } catch (\Exception $e) {
-            LogService::log(__METHOD__, __FUNCTION__, $e->getMessage(), $e->getTraceAsString() . json_encode($fillables));
-        } finally {
-            unset($owners_map,$shop_map,$logistics_map,$fillables);
-        }
-    }
-
-    // XXX 业务逻辑待修改完善
-    public function 将WMS订单对应的WAS订单信息更新($orderHeaders,$ordersList)
-    {
-        /** @var CommodityService $commodityService */
-        $commodityService = app('commodityService');
-        /** @var OrderPackageService $orderPackageService */
-        $orderPackageService = app('orderPackageService');
-        /** @var OrderPackageCommoditiesService $orderPackageCommoditiesService */
-        $orderPackageCommoditiesService = app('orderPackageCommoditiesService');
-        if (count($orderHeaders) == 0) {
-            return [];
-        }
-        $commodities = $commodityService->getWASCommoditiesByWMSOrderHeaders($orderHeaders);     // 商品信息
-
-        $this->更新WMS订单对应的的WAS订单($orderHeaders, $ordersList);
-
-        $orderPackageService->更新WAS订单快递单号信息($orderHeaders, $ordersList);
-
-        $orderPackageCommoditiesService->更新WAS订单快递打包商品信息($orderHeaders, $ordersList, $commodities);
-
-        $orderNos = data_get($ordersList,'*.code');
-/*        $orderPackages = OrderPackage::query()
-            ->with('commodities','order')
-            ->whereHas('order', function ($query) use ($orderNos) {
-                $query->whereIn('code', $orderNos);
-            })
-            ->get();*/
-        $orders = Order::query()
-            ->with('packages.commodities')
-            ->whereIn('code',$orderNos)
-            ->get();
-        $orderPackages = [];
-        foreach ($orders as $order) {
-            $packages =  $order['packages'] ?? null;
-            $orderPackages[] =  $packages;
-        }
-        unset($orderNos);
-        $orderPackageService->更新WAS订单的包裹的重量和体积($orderHeaders,$orderPackages);    // 同步包裹重量和体积
-    }
-
-    public function  更新WMS订单对应的的WAS订单($orderHeaders, $orders)
-    {
-        $multipleData = [[
-            'id', 'wms_status', 'consignee_name', 'consignee_phone', 'province', 'city', 'district', 'wms_edittime', 'address', 'client_code'
-        ]];
-        // XXX 循环 300个元素 3s - 5s
-            /** @var Order $order */
-        foreach ($orders as $key=>$order) {
-            $orderHeader = $orderHeaders[$key] ?? false;
-            if ($orderHeader) {
-
-                if($order->wms_status != $orderHeader->oracleBASCode_codename_c ||
-                    $order->consignee_name != $orderHeader->c_contact ||
-                    $order->consignee_phone != $orderHeader->c_tel2 ||
-                    $order->province != $orderHeader->c_province ||
-                    $order->city != $orderHeader->c_city ||
-                    $order->district != $orderHeader->c_district ||
-                    $order->wms_edittime != $orderHeader->edittime ||
-                    $order->address != $orderHeader->c_address1 ||
-                    $order->client_code != $orderHeader->soreference1 ){
-
-                    $multipleData[] =[
-                        'id' =>$order->id,
-                        'wms_status' => $orderHeader->oracleBASCode_codename_c,
-                        'consignee_name' => $orderHeader->c_contact,
-                        'consignee_phone' => $orderHeader->c_tel2,
-                        'province' => $orderHeader->c_province,
-                        'city' => $orderHeader->c_city,
-                        'district' => $orderHeader->c_district,
-                        'wms_edittime' => $orderHeader->edittime,
-                        'address' => $orderHeader->c_address1,
-                        'client_code' => $orderHeader->soreference1,
-                    ];
-                }
-            }
-        }
-
-        if(count($multipleData)  > 1){
-            try {
-                /** @var BatchUpdateService $batchUpdateService */
-                $batchUpdateService = app('batchUpdateService');
-                $batchUpdateService->batchUpdate('orders', $multipleData);
-                LogService::log(__METHOD__,__FUNCTION__,'批量更新'.count($multipleData).json_encode($multipleData));
-            } catch (\Exception $e) {
-                LogService::log(__METHOD__,__FUNCTION__,'批量更新失败'.json_encode($multipleData).$e->getMessage(),$e->getTraceAsString());
-            } finally {
-                unset($multipleData);
-            }
-        }
-    }
-
     public function first(array $params)
     {
         $order = Order::query();

+ 10 - 181
app/Services/OrderTrackingService.php

@@ -9,6 +9,7 @@ use App\OrderTracking;
 use App\Services\common\BatchUpdateService;
 use App\Services\common\DataHandlerService;
 use App\Services\common\QueryService;
+use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\Auth;
 use Maatwebsite\Excel\Facades\Excel;
 
@@ -79,6 +80,15 @@ class OrderTrackingService
             });
         }// 运输单号(快递单号)
 
+        if(isset($params['remark'])){
+            $query->where('remark','like','%'.$params['remark'].'%');
+            if(isset($params['remark_addtime'])){
+                $query->where('created_at','>',Carbon::now()->subDays($params['remark_addtime']));
+            }else{
+                $query->where('created_at','>=',Carbon::now()->subDays(15));
+            }
+        }
+
         if ($params['ids'] ?? false) {
             $ids = explode(',', $params['ids']);
             $query->whereIn('id', $ids);
@@ -102,124 +112,6 @@ class OrderTrackingService
         return $this->downLoadAsExec($trackOrders->get());
     }
 
-    public function 根据设置从WMS同步追踪货主的订单($startDate)
-    {
-        $this->根据设置从WMS追踪货主的生成订单($startDate);
-        $this->根据设置从该时间段内获取WMS更新的订单($startDate);
-
-    }
-
-    public function 根据设置从WMS追踪货主的生成订单($startDate)
-    {
-        /** @var OrderService $orderService */
-        $orderService = app('orderService');
-        $params = $orderService->根据设置从WMS获取跟踪的订单($startDate);
-        $orders = $params['orders'];
-        $orderHeaders = $params['orderHeaders'];
-        $this->根据订单生成订单跟踪($orderHeaders, $orders);
-
-    }
-
-    public function 根据设置从该时间段内获取WMS更新的订单($startDate)
-    {
-        /** @var OrderService $orderService */
-        $orderService = app('orderService');
-        $params = $orderService->根据设置从WMS同步该时间段内更新的订单($startDate);
-        $orderPackageCommodities = $params['orderPackageCommodities'];
-        $orderHeaders = $params['orderHeaders'];
-        $this->更新创建的WAS订单商品跟踪($orderPackageCommodities, $orderHeaders);
-    }
-
-    //  XXX 代码逻辑有待纠正
-    public function 更新创建的WAS订单商品跟踪($updateOrderPackageCommodities, $updateOrderHeader)
-    {
-        if ($updateOrderPackageCommodities == null || $updateOrderPackageCommodities->count() == 0) {
-            return;
-        }
-        if ($updateOrderHeader == null || count($updateOrderHeader) == 0) {
-            return;
-        }
-        $ids = data_get($updateOrderPackageCommodities, '*.id');
-
-        $orderTrackings = OrderTracking::query()->whereIn('order_package_commodity_id', $ids)->get();
-
-
-        $this->updateOrderTracking($orderTrackings, $updateOrderPackageCommodities); // 更新
-
-        unset($updateOrderPackageCommodities, $updateOrderHeader);
-    }
-
-    public function 根据订单生成订单跟踪($orderHeaders, $orders)
-
-    {
-        $orderPackages = [];
-        $orderPackageCommodities = [];
-        $ordersList = [];
-        $fillables = [];
-        if($orders == null){
-            return;
-        }else if($orderHeaders == null){
-            return ;
-        }
-
-        foreach ($orders as $order) {
-            $ordersList[$order['id']] = $order;
-            foreach ($order['packages'] as $packages) {
-                $orderPackages[$packages['id']] = $packages;
-                foreach ($packages['commodities'] as $item) {
-                    $orderPackageCommodities[] = $item;
-                }
-            }
-        }
-        if (count($orderPackageCommodities) == 0) {
-            return;
-        }
-
-        foreach ($orderPackageCommodities as $key=>$orderPackageCommodity) {
-            $order_package_id = $orderPackageCommodity['order_package_id'];
-            $orderPackage = $orderPackages[$order_package_id];
-            $order_id = $orderPackage['order_id'] ?? '';
-            $order = $ordersList[$order_id] ?? '';
-            $orderHeader = $orderHeaders[$order['code']];
-            $pick_up_at = $orderHeader['lastshipmenttime'] ?? null; // 提货时间
-
-            $client = null;
-            $order_remark = null;
-
-            if ($orderHeader['notes'] ?? false) {
-                $notes = $orderHeader['notes'];
-//                $notes = str_replace('【','[',$notes);
-                if (strpos($notes, '[')) {
-                    $arr= str_split($notes,strpos($notes,'['));
-                    $client = $arr[0] ?? '';
-                    $order_remark = $arr[1] ?? '';
-                    $order_remark = str_replace(['[',']'],'',$order_remark);
-                }
-            }
-
-            $fillable = [
-                'order_package_commodity_id' => $orderPackageCommodity['id'],
-                'owner_id' => $order['owner_id'],
-                'client' => $client,
-                'created_at' => $order['created_at'],
-                'order_remark' => $order_remark,
-                'pick_up_at' => $pick_up_at, // 提货时间
-            ];
-
-            $fillables[] = $fillable;
-         }
-        try {
-            if (count($fillables) > 0) {
-                OrderTracking::query()->insert($fillables);
-                LogService::log(__METHOD__, __FUNCTION__, '批量创建订单跟踪成功' . count($fillables) . json_encode($fillables));
-            }
-        } catch (\Exception $e) {
-            LogService::log(__METHOD__, __FUNCTION__, '批量创建订单跟踪失败' . $e->getMessage() . $e->getTraceAsString());
-        } finally {
-            unset($fillables, $orderHeaders, $orders,$orderPackageCommodities);
-        }
-    }
-
     private function downLoadAsExec($trackOrders)
     {
         $row = [[
@@ -261,69 +153,6 @@ class OrderTrackingService
         return Excel::download(new Export($row, $list), date('YmdHis', time()) . '-订单跟踪.xlsx');
     }
 
-    private function updateOrderTracking($orderTrackings, $orderPackagesCommodities)
-    {
-        $multipleData = [['id', 'owner_id', 'client', 'pick_up_at','web_order_number']];
-        $orderTrackings_list = [];
-
-        foreach ($orderPackagesCommodities as $item) {
-            $orderTrackings_list[$item['order_package_commodity_id']] = $item;
-        }
-
-        foreach ($orderTrackings as $orderTracking) {
-            $Commodities = $orderTrackings_list[$orderTracking['order_package_commodity_id']] ?? false;
-            $order = $Commodities['package']['order'] ?? '';
-
-            if ($order ?? false) {
-                $code = $order['code'];
-                $orderHeader = $orderPackagesCommodities[$code] ?? '';
-                $pick_up_at = $orderHeader['lastshipmenttime'] ?? null; // 提货时间
-
-                $client = null;
-                $order_remark = null;
-
-                if ($orderHeader['notes'] ?? false) {
-                    $notes = $orderHeader['notes'];
-//                $notes = str_replace('【','[',$notes);
-                    if (strpos($notes, '[')) {
-                        $arr= str_split($notes,strpos($notes,'['));
-                        $client = $arr[0] ?? '';
-                        $order_remark = $arr[1] ?? '';
-                        $order_remark = str_replace(['[',']'],'',$order_remark);
-                    }
-                }
-                $web_order_number = null;
-                if(preg_match('/^O[\d]/',$orderHeader['orderno'] ?? '') > 0){
-                    $web_order_number = $orderHeader['soreference1'];
-                }
-                $data = [
-                    'id' => $orderTracking['id'],
-                    'owner_id' => $order['owner_id'] ?? '',
-                    'client' => $client,
-                    'pick_up_at' => $pick_up_at ?? null, // 提货时间
-                    'order_remark' => $order_remark,
-                    'web_order_number' => $web_order_number,
-                ];
-
-                if ($data['owner_id'] !== $orderTracking['owner_id'] ||
-                    $data['client'] !== $orderTracking['client'] ||
-                    $data['pick_up_at'] !== $orderTracking['pick_up_at'] ||
-                    $data['order_remark'] !== $orderTracking['order_remark'] ||
-                    $data['web_order_number'] !==  $orderTracking['web_order_number']
-                ) {
-                    $multipleData[] = $data;
-                }
-            }
-        }
-
-        if (count($multipleData) > 1) {
-            /** @var BatchUpdateService $batchUpdateService */
-            $batchUpdateService = app('batchUpdateService');
-            $batchUpdateService->batchUpdate('order_trackings', $multipleData);
-        }
-    }
-
-
     /**
      * @param $startData
      */

+ 2 - 2
app/Services/ProcessStatisticService.php

@@ -9,7 +9,7 @@ use Illuminate\Database\Eloquent\Builder;
 Class ProcessStatisticService
 { 
     private function conditionQuery(array $params){
-        $query = ProcessStatistic::with(['process'])->orderBy('process_statistics.process_id','DESC')
+        $query = ProcessStatistic::with(['process'/*,'operatorLogSubmit'*/])->orderBy('process_statistics.process_id','DESC')
             ->has('process');
         if ($params["owner_id"] ?? false){
             $owner_id=$params["owner_id"];
@@ -55,7 +55,7 @@ Class ProcessStatisticService
     public function getSql(array $params){
         return $this->conditionQuery($params)->selectRaw('process_statistics.*')
             ->leftJoin('processes','process_statistics.process_id','processes.id')
-                ->selectRaw('processes.code process_code,processes.unit_price process_unit_price,processes.amount process_amount,processes.completed_amount process_completed_amount,processes.status process_status,processes.remark process_remark,processes.balance_remark process_balance_remark')
+                ->selectRaw('processes.created_at process_created_at,processes.code process_code,processes.unit_price process_unit_price,processes.amount process_amount,processes.completed_amount process_completed_amount,processes.status process_status,processes.remark process_remark,processes.balance_remark process_balance_remark')
             ->leftJoin('owners','processes.owner_id','owners.id')
                 ->selectRaw('owners.name owner_name')
             ->leftJoin('process_methods','processes.process_method_id','process_methods.id')

+ 3 - 2
config/api.php

@@ -31,8 +31,9 @@ return [
 
     'haiq'=>[
         'storage'=>[
-            'out' => "",
-            'in' => "",
+            'out' => "http://59.37.126.227:65448/api/haiqEss/gr/HAIQ_ESS_BIN_OUTBOUND_MSG",
+            //'in' => "http://59.37.126.227:65448/api/haiqEss/gr/HAIQ_ESS_BIN_INBOUND_MSG",
+            'in' => "http://59.37.126.227:65448/api/haiqEss/gr/relocate",
         ],
     ],
 

+ 1 - 1
database/migrations/2020_07_29_160826_create_order_issues_table.php

@@ -22,7 +22,7 @@ class CreateOrderIssuesTable extends Migration
             $table->string('send_back_number')->nullable()->index()->comment('退回单号');
             $table->enum('is_new_rejecting',['无','有','已处理'])->default('无')->index()->comment('有新退件');
             $table->integer('rejected_bill_id')->index()->nullable()->comment('退回单');
-            $table->enum('rejecting_status', ['无', '未退回', '全部退回', '部分退回', '差异退回', '超量退回', '全部退回'])->default('无')->index()->comment('退回状态');
+            $table->enum('rejecting_status', ['无', '未退回', '全部退回', '部分退回', '差异退回', '超量退回', '全部退回',])->default('无')->index()->comment('退回状态');
             $table->string('order_issue_type_id')->nullable()->comment('问题类别');
             $table->string('result_explain')->nullable()->comment('处理结果说明');
             $table->integer('second_order_id')->nullable()->comment('二次订单号');

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 24
public/css/app.css


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 61995
public/js/app.js


+ 29 - 5
resources/js/queryForm/queryForm.js

@@ -21,6 +21,7 @@ const query = function getQueryForm(data) {
         this.getSearchData = getSearchData;
         this.autoSubmit = (data.autoSubmit !== false) ;
         this.param = data.param || [];
+        this.appendDom = data.appendDom || undefined;
 
         // 提交表单
         this.onsubmit = function () {
@@ -100,13 +101,23 @@ const query = function getQueryForm(data) {
     function parentNodeFloat() {
         _parentNode_top = _parentNode.offset().top;
         let height = _parentNode.height();
+        let dom = _this.appendDom ? $("#"+_this.appendDom+"") : null;
         $(window).scroll(function(){
             let scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
             if (scrollTop > _parentNode_top) {
                 _form.addClass('fixed-top');
                 _parentNode.height(height);
+                if (dom){
+                    dom.css('position','fixed');
+                    dom.css('background','rgb(255, 255, 255)');
+                    dom.css('top',height);
+                    dom.css('z-index',1000);
+                }
             } else {
                 _form.removeClass('fixed-top');
+                if (dom){
+                    dom.attr('style','');
+                }
             }
         });
     }
@@ -131,7 +142,7 @@ const query = function getQueryForm(data) {
                 if ([null, '', undefined].includes(condition.type) && ![null, undefined].includes(condition.name)) {
                     condition.type = 'input';
                 }
-                if (['dateTime_dateTime', 'input_input'].includes(condition.type)) {
+                if (['dateTime_dateTime','dateTimeLocal', 'input_input'].includes(condition.type)) {
                     td = $("<td  style='width: 330px'</td>")
                 } else if (['select_multiple_select', 'time', 'dateTime_select'].includes(condition.type)) {
                     td = $("<td  style='width: 280px'</td>");
@@ -160,7 +171,7 @@ const query = function getQueryForm(data) {
             conditions.forEach(function (condition, index, array) {
                 if (['input', 'select', 'dateTime', 'input_select'].includes(condition.type)) {
                     _width += 260;
-                } else if (['dateTime_dateTime', 'input_input'].includes(condition.type)) {
+                } else if (['dateTime_dateTime','dateTimeLocal', 'input_input'].includes(condition.type)) {
                     _width += 330;
                 } else if (['select_multiple_select','search_select'].includes(condition.type)) {
                     _width += 280;
@@ -328,6 +339,7 @@ const query = function getQueryForm(data) {
             || (type === "search_select" && getSearchSelect(condition))
             || (type === "input_select" && getInputSelect(condition))
             || (type === "dateTime" && getdateTime(condition))
+            || (type === "dateTimeLocal" && getDateTimeLocal(condition))
             || (type === "time" && getTime(condition))
             || (type === "input_input" && getInputInput(condition))
             || (type === "dateTime_dateTime" && getdateTimedateTime(condition))
@@ -422,6 +434,18 @@ const query = function getQueryForm(data) {
         return dateTime;
     }
 
+    // dateTimeLocal
+    //dateTimeLocal
+    function getDateTimeLocal(condition) {
+        let dateTimeLocal = $("<input name = '"+ condition.name +"' type='datetime-local' step='01' class='form-control form-control-sm' style='vertical-align: middle; max-width: 280px;' placeholder='" + condition.placeholder + "' autocomplete='off' data-toggle='tooltip' data-placement='top' >");
+        dateTimeLocal.attr('title', condition.tip === undefined ? '' : condition.tip);
+        dateTimeLocal.bind('input propertychange', function () {
+            let dom = {name: condition.name, type: 'dateTimeLocal', value: this.value, mold: 'dateTimeLocal'};
+            modifyData(dom);
+        });
+        return dateTimeLocal;
+    }
+
     // time
     function getTime(condition) {
         let div = $("<div class='form-inline'></div>");
@@ -1040,7 +1064,7 @@ const query = function getQueryForm(data) {
     }
 
     function redenerSearchFormOnData(key, value, mold) {
-        if (mold === 'input' ||mold === 'dateTime') {
+        if (mold === 'input' ||mold === 'dateTime' || mold === 'dateTimeLocal') {
             rendererSearchFormOnInput(key, value, mold);
         } else if (mold === 'select') {
             rendererSearchFormOnSelect(key, value, mold);
@@ -1057,7 +1081,7 @@ const query = function getQueryForm(data) {
     function switchData() {
         _this.condition.forEach(function (conditions) {
             conditions.forEach(function (condition) {
-                if (['input', 'select', 'dateTime', 'search_select', 'time', 'select_multiple_select','checkbox'].includes(condition.type)) {
+                if (['input', 'select', 'dateTime','dateTimeLocal', 'search_select', 'time', 'select_multiple_select','checkbox'].includes(condition.type)) {
                     if (!condition.select) {
                         condition.select = '';
                     }
@@ -1155,7 +1179,7 @@ const query = function getQueryForm(data) {
             // }
             _data[key].select = value;
 
-            if (['input', 'dateTime'].includes(mold)) {
+            if (['input', 'dateTime', 'dateTimeLocal'].includes(mold)) {
                 rendererSearchFormOnInput(key, value, mold);
             } else if (['select'].includes(mold)) {
                 rendererSearchFormOnSelect(key, value, mold);

+ 6 - 14
resources/js/utilities/tempTip.js

@@ -13,32 +13,24 @@ const tempTip={
         this.inputType=type;
     },
     showSuccess:function(text){
-        let parWidth = document.body.offsetWidth;
-        let parHeight = document.body.offsetHeight;
-        let parentDom = $("<div style='top: 0;left: 0;width: "+parWidth+"px;height: "+parHeight+"px;position:fixed'></div>");
-        let tiper=$("<div class='row' style='color:white;opacity:0.9;position: relative;top:40%;transform:translateY(-50%);z-index:"+this.index+";width:100%;'>" +
+        let tiper=$("<div class='row' style='color:white;opacity:0.9;position: fixed;top:40%;transform:translateY(-50%);z-index:"+this.index+";width:100%;'>" +
             "<div class='col-8 offset-2'><div class='card'><div class='card-body h4 bg-success text-center'>" +
             text +
             "</div></div></div></div>");
         tiper.animate({opacity:'0'},this.fadingDuration,'swing',function () {
-            parentDom.remove();
+            tiper.remove();
         });
-        parentDom.append(tiper);
-        $('body').append(parentDom);
+        $('body').append(tiper);
     },
     show:function(text){
-        let parWidth = document.body.offsetWidth;
-        let parHeight = document.body.offsetHeight;
-        let parentDom = $("<div style='top: 0;left: 0;width: "+parWidth+"px;height: "+parHeight+"px;position:fixed'></div>");
-        let tiper=$("<div class='row' style='color:white;opacity:0.9;top:40%;position: relative;transform:translateY(-50%);width:100%;z-index:"+this.index+";'>" +
+        let tiper=$("<div class='row' style='color:white;opacity:0.9;top:40%;position: fixed;transform:translateY(-50%);width:100%;z-index:"+this.index+";'>" +
             "<div class='col-8 offset-2'><div class='card'><div class='card-body h2 bg-danger text-center'>" +
             text +
             "</div></div></div></div>");
         tiper.animate({opacity:'0'},this.fadingDuration,'swing',function () {
-            parentDom.remove();
+            tiper.remove();
         });
-        parentDom.append(tiper);
-        $('body').append(parentDom);
+        $('body').append(tiper);
     },
     okWindow:function(text,okText){
         let bg=$("<div style='opacity:0.4;position:fixed;top:0;width:100%;height:100%;z-index:"+this.index+";background-color:#000;'></div>" );

+ 3 - 3
resources/views/inventory/statement/changeInventory.blade.php

@@ -53,9 +53,9 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let vue=new Vue({
             el:"#list",

+ 3 - 3
resources/views/inventory/statement/dailyLog.blade.php

@@ -81,9 +81,9 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let vue = new Vue({
             el:"#container",

+ 3 - 3
resources/views/inventory/statement/inventoryCompare.blade.php

@@ -133,9 +133,9 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let vue = new Vue({
             el:"#container",

+ 2 - 2
resources/views/inventory/stockInventory/inventoryMission.blade.php

@@ -579,8 +579,8 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let hideHeaderTitle = function () {
             let $listOnPad = $('#listOnPad');

+ 3 - 3
resources/views/inventory/stockInventory/mission.blade.php

@@ -94,9 +94,9 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let vue = new Vue({
             el: "#list",

+ 2 - 2
resources/views/layouts/app.blade.php

@@ -10,7 +10,7 @@
     <title>@yield('title') {{ config('app.name', '宝时WAS') }}</title>
     @yield('head')
     <!-- Styles -->
-    <link href="{{ asset('css/app200923.css') }}" rel="stylesheet">
+    <link href="{{ mix('css/app.css') }}" rel="stylesheet">
 </head>
 <body>
 <div id="app">
@@ -32,7 +32,7 @@
 <!-- Scripts -->
 @yield('script')
 {{-- 必须在app.js前边--}}
-<script src="{{ asset('js/app201009.js') }}"></script>
+<script src="{{ mix('js/app.js') }}"></script>
 <script>
     let isActive=function (name,atSlashLevel) {
         let uriWithNoParam=location.href.split('?')[0];

+ 2 - 2
resources/views/maintenance/role/index.blade.php

@@ -50,8 +50,8 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         new Vue({
             el:"#list",

+ 2 - 2
resources/views/maintenance/tutorial/create.blade.php

@@ -1,8 +1,8 @@
 @extends('layouts.app')
 @section('title')创建教程@endsection
 @section('head')
-    <link rel="stylesheet" type="text/css" href="{{asset('css/trix.css')}}">
-    <script type="text/javascript" src="{{asset('js/trix.js')}}"></script>
+    <link rel="stylesheet" type="text/css" href="{{mix('css/trix.css')}}">
+    <script type="text/javascript" src="{{mix('js/trix.js')}}"></script>
     <script>
 
         addEventListener("trix-file-accept", function(event) {

+ 2 - 2
resources/views/maintenance/tutorial/edit.blade.php

@@ -1,8 +1,8 @@
 @extends('layouts.app')
 @section('title')修改教程@endsection
 @section('head')
-    <link rel="stylesheet" type="text/css" href="{{asset('css/trix.css')}}">
-    <script type="text/javascript" src="{{asset('js/trix.js')}}"></script>
+    <link rel="stylesheet" type="text/css" href="{{mix('css/trix.css')}}">
+    <script type="text/javascript" src="{{mix('js/trix.js')}}"></script>
     <script>
 
         addEventListener("trix-file-accept", function(event) {

+ 2 - 2
resources/views/maintenance/user/index.blade.php

@@ -53,8 +53,8 @@
     <script>
 
     </script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm200825.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         new Vue({
             el:"#list",

+ 1 - 1
resources/views/maintenance/userLabor/index.blade.php

@@ -116,7 +116,7 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
     <script>
         new Vue({
             el:"#list",

+ 8 - 10
resources/views/order/index/delivering.blade.php

@@ -216,9 +216,9 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let vue=new Vue({
             el:"#list",
@@ -631,18 +631,14 @@
                     axios.post("{{url('apiLocal/order/issue/orderIssueTag')}}",data).then(function(res){
                         tempTip.setDuration(5000)
                         tempTip.cancelWaitingTip();
-                        if(res.data.success){console.log(11);
-                        tempTip.setDuration(3000);
-                            tempTip.showSuccess('已标记为问题件,稍后前往订单问题件查询页面');
-                            setTimeout(function(){
-                                window.location.href = "{{url('order/issue/index')}}";
-                            },1000);
+                        if(res.data.success){
+                            tempTip.setDuration(3000);
+                            tempTip.showSuccess('已标记为问题件');
                         }else{
                             tempTip.setDuration(4000);
                             tempTip.show(res.data.fail_info);
                         }
                     }).catch(function(err){
-                        console.log(err);
                         tempTip.setDuration(3000);
                         tempTip.cancelWaitingTip();
                         tempTip.show('网络链接异常'+err);
@@ -690,6 +686,7 @@
                 },
                 isRejectedBillExist(){
                     let _this = this;
+                    if(!confirm('是否生成退货单')){return;}
                     axios.post('{{url('order/isRejectedBillExist')}}',{data:this.checkData})
                         .then(function (response) {
                             if (!response.data.success){
@@ -707,6 +704,7 @@
                 },
                 createRejectedBill() {
                     let url = '{{url('order/createRejectedBill')}}';
+
                     axios.post(url,{data:this.checkData})
                         .then(res=>{
                             if (res.data.success){

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

@@ -7,7 +7,7 @@
         <div style="min-width: 3300px;" >
             <div id="list" class="d-none container-fluid">
                 <div id="form_div" style="min-width: 2250px;"></div>
-                <div class="form-inline mt-1 ">
+                <div class="form-inline mt-1" id = "btn">
                     <span class="dropdown">
                         <button type="button"
                                 class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget"
@@ -45,7 +45,6 @@
                         </button>
                     </span>
                 </div>
-                {{--table table-sm  table-bordered table-hover card-body table-responsive-sm p-0 m-0 --}}
                 <table class="table table-sm table-striped table-bordered table-hover card-body p-0 m-0" style="background: #fff;min-width: 3000px;">
                     <tr class="tr-yellow" align="center">
                         <th class=" font-weight-bolder header-1" ></th>
@@ -56,12 +55,9 @@
                             </button>
                         </th>
                         <th class="font-weight-bolder header-3">
-
-                            {{--                            @cannot('订单管理-问题件-客户不可见')--}}
                             <button class="btn btn-sm btn-outline-secondary float-left" v-if="isShowRejectedBill" @click="hideRejectedBill">
                                 隐藏退单列
                             </button>
-                            {{--                            @endcannot--}}
                             情况说明
                             @cannot('订单管理-问题件-客户不可见')
                                 <button class="btn btn-sm btn-outline-secondary" v-if="isShowSecondOrderInfo" @click="hideSecondOrder">
@@ -75,7 +71,6 @@
                     </tr>
 
                     <tr class="tr-yellow" align="center">
-
                         <th rowspan="2" class="align-middle one-layer">
                             <label for="all">
                                 <input id="all" type="checkbox" @click="checkAll($event)"/>
@@ -110,12 +105,9 @@
                         <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 70px">区</th>
                         <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width:300px">收货人地址</th>
                         <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" colspan="3" style="min-width:300px">原始商品明细</th>
-                        {{--                        <th class="three-layer  align-middle" rowspan="2" >退回单号</th>--}}
-                        {{--                        @cannot('订单管理-问题件-客户不可见')--}}
                         <th class="three-layer   align-middle" rowspan="2" v-if="!isShowRejectedBill" style="min-width:50px">展开</th>
                         <th class="three-layer align-middle" rowspan="2" v-if="isShowRejectedBill" style="min-width:220px">退回单号</th>
                         <th class="three-layer   align-middle" colspan="5" v-if="isShowRejectedBill" style="min-width: 450px">返回商品明细</th>
-                        {{--                        @endcannot--}}
                         <th class="three-layer bg-whit  align-middle" rowspan="2" style="min-width: 115px">情况说明</th>
                         <th class="three-layer   align-middle" rowspan="2" style="min-width: 115px">问题类别</th>
                         <th class="three-layer  align-middle" colspan="4" style="min-width: 155px">处理结果</th>
@@ -148,7 +140,6 @@
                             <th  v-if="isShowRejectedBill" style="min-width: 50px">是否正品</th>
                             <th  v-if="isShowRejectedBill" style="min-width: 100px">备注</th>
                         @endcannot
-                        <th  style="min-width: 75px">操作类型</th>
                         <th  style="min-width: 120px">说明</th>
                         <th  style="min-width: 100px">操作者</th>
                         <th  style="min-width: 170px">时间</th>
@@ -198,7 +189,7 @@
                                     @else
                                         @{{ orderIssue.rejecting_status }}
                                     @endcan
-                                </td>{{--退件状态--}}
+                                </td>
                             @endcan
                         @endcannot
                         <td class="child-layer-1">
@@ -210,7 +201,7 @@
                                 @{{ orderIssue.final_status }}
                             @endcan
                         </td>{{--最终状态--}}
-                        @cannot('订单管理-问题件-客户不可见')  {{--登记日期--}}
+                        @cannot('订单管理-问题件-客户不可见')
                         <td class="toptd td-yellow child-layer-2">
                             <div v-if="orderIssue.remark" class="bg-light-yellow  text-danger top text-left" data-toggle="tooltip" style="opacity: 0.1;position: absolute;z-index: 1">
                                 置顶备注:@{{ orderIssue.remark }}
@@ -219,7 +210,7 @@
                         </td>
                         @endcannot
 
-                        <td class="td-yellow child-layer-2"> {{--订单日期--}}
+                        <td class="td-yellow child-layer-2">
                             @cannot('订单管理-问题件-客户不可见')
                             @else
                                 <div v-if="orderIssue.remark" class="bg-light-yellow  text-danger top text-left" data-toggle="tooltip" style="opacity: 0.1;position: absolute;z-index: 1">
@@ -262,36 +253,26 @@
                         <td class="td-yellow child-layer-2-hide" style="width: 400px" v-if="isShowOrderInfo">
                             <span class="text-wrap m-0 p-0 " style="width: 400px">@{{ orderIssue.order.address }}</span>
                         </td>
-                        <td class="td-yellow p-0 child-layer-2-hide" :id="orderIssue.id+'items'" colspan="3"
-                            v-if="isShowOrderInfo">
+                        <td class="td-yellow p-0 child-layer-2-hide" :id="orderIssue.id+'items'" colspan="3" v-if="isShowOrderInfo" :data-value="orderIssue.orderCount = 0" :data-value1='orderIssue.orderPackagecount = 0'>
                             <div v-if="orderIssue.order">
                                 <table  class="table table-sm m-0" v-if="orderIssue.order.packages"
-                                        :class="orderIssue.orderPackagecount > 1  ? 'collapse' : ''" :id="'order'+orderIssue.id"
-                                        :data-value="orderIssue.orderCount = 0" :data-count="orderIssue.orderPackagecount = 0">
+                                        :class="orderIssue.order.commodityPackages > 1? 'collapse' : ''" :id="'order'+orderIssue.id">
                                     <template v-for="packages in orderIssue.order.packages">
                                         <tr v-for="item in packages.commodities" class="text-center" :data-value="orderIssue.orderCount += 1" align="center" v-if="item.commodity">
                                             <td >@{{ item.commodity.sku }}</td>
                                             <td>
-                                                <div class="text-truncate text-primary tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开" @dblclick="nowrapText($event)">@{{ item.commodity.name }}</div>
-                                                <div class="text-nowrap m-0 p-0 tooltipTarget"  style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.commodity.name }}</div>
-                                                {{--                                                <p class="text-truncate text-primary m-0 p-0 tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开"  @dblclick="nowrapText($event)">@{{ item.commodity.name }}</p>--}}
-                                                {{--                                                <p class="text-nowrap m-0 p-0 tooltipTarget" style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.commodity.name }}</p>--}}
+                                                <p class="text-truncate text-primary m-0 p-0 tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开"  @dblclick="nowrapText($event)">@{{ item.commodity.name }}</p>
+                                                <p class="text-nowrap m-0 p-0 tooltipTarget" style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.commodity.name }}</p>
                                             </td>
-                                            <td  :data-value="orderIssue.orderPackagecount += item.amount ">@{{ item.amount }}</td>
+                                            <td  >@{{ item.amount }}</td>
                                         </tr>
                                     </template>
                                 </table>
-                                <button v-if="orderIssue.orderCount > 1 " type="button" class="btn btn-sm btn-outline-primary mt-1"
-                                        :id="'orderBtn'+orderIssue.id"   @click="toggleOrder(orderIssue.id,orderIssue.orderPackagecount)"
-                                        data-toggle="collapse" :data-target="'#order'+orderIssue.id">
-                                    商品@{{ orderIssue.orderPackagecount}}件,点击展开
+                                <button v-if="orderIssue.order.commodityPackages > 1" type="button" class="btn btn-sm btn-outline-primary mt-1" :id="'orderBtn'+orderIssue.id"   @click="toggleOrder(orderIssue.id,orderIssue.orderIssue.order.amount)" data-toggle="collapse" :data-target="'#order'+orderIssue.id">
+                                    商品@{{ orderIssue.order.amount }}件,点击展开
                                 </button>
                             </div>
                         </td>
-                        {{--商品明细 结束--}}
-
-                        {{--退单商品明细 开始--}}
-                        {{--                        @cannot('订单管理-问题件-客户不可见')--}}
 
                         <td class="text-muted child-layer-3-hide" v-if="isShowRejectedBill">
                             @can('订单管理-问题件-编辑')
@@ -300,10 +281,11 @@
                                 @{{ orderIssue.logistic_number_return }}
                             @endcan
                         </td>
-                        {{--                        @cannot('订单管理-问题件-客户不可见')--}}
+
                         <td class="p-0 m-0 child-layer-3" v-if="!isShowRejectedBill && index === 0 " style="width:50px;" :rowspan="orderIssues.length" >
                             <span class="btn  btn-outline-secondary "  @click="showRejectedBill"  :style="orderIssues.length>4 ?'{height: 200px;line-height: 100px':''" >展开退单列</span>
                         </td>
+
                         <td class="p-0 child-layer-3-hide" :id="orderIssue.id+'rejectedBill'" valign="middle" align="center" colspan="5" v-if="isShowRejectedBill">
                             <div v-if="orderIssue.rejected_bill" class="m-0 p-0">
                                 <table v-if="orderIssue.rejected_bill.items" class="table table-sm  m-0" :class="orderIssue.rejected_bill.items.length > 1 ? 'collapse' : '' " :id="'rejectedBill'+orderIssue.id"
@@ -314,8 +296,6 @@
                                         <td style="min-width: 100px" >
                                             <div class="text-truncate text-primary tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开" @dblclick="nowrapText($event)">@{{ item.name_goods }}</div>
                                             <div class="text-nowrap m-0 p-0 tooltipTarget"  style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.name_goods }}</div>
-                                            {{--                                            <p class="text-truncate text-primary m-0 p-0 tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开"  @dblclick="nowrapText($event)" >@{{ item.name_goods }}</p>--}}
-                                            {{--                                            <p class="text-nowrap m-0 p-0 tooltipTarget" style="display: none;cursor:pointer"  title="双击收起" @dblclick="truncateText($event)" >@{{ item.name_goods }}</p>--}}
                                         </td>
                                         <td style="min-width: 50px" :data-value="orderIssue.rejectedCount += item.amount">@{{ item.amount }}</td>
                                         <td style="min-width: 50px" >@{{ item.quality_label }}</td>
@@ -328,8 +308,6 @@
                                 </button>
                             </div>
                         </td>
-                        {{--                        @endcannot--}}
-                        {{--退单商品明细 结束--}}
 
                         <td class="child-layer-3">@{{ orderIssue.result_explain}}</td>
                         <td class="child-layer-3">
@@ -345,7 +323,6 @@
                             @endcan
                         </td>
 
-                        {{--处理结果--}}
                         <td class=" m-0 p-0 log-td child-layer-3" valign="middle" align="center" v-on:mouseover="showAddBtn($event)" v-on:mouseleave="hideAddBtn($event)" colspan="4">
                             <div class="addLogDiv row m-0 p-0 form-group" :id="'AddLog_'+orderIssue.id" style="display: none;">
                                 <input type="hidden" name="id" :value="orderIssue.id">
@@ -368,7 +345,6 @@
                                 <table class="table table-sm p-0 m-0 " :id="'logs'+orderIssue.id" :data-value="orderIssue.logShow == null ? orderIssue.logShow=false:''">
                                     <tr style="position:static" align="center" v-for="(log,index) in orderIssue.logs" :class="(orderIssue.logs.length <= 2 ? '' : ((index === 0 || orderIssue.logShow )  ? '' : 'd-none' )) "
                                         v-on:mouseover="showDelBtn($event)" v-on:mouseleave="hideDelBtn($event)" >
-                                        <td style="min-width: 75px">@{{ log.type }}</td>
                                         <td style="min-width: 200px">@{{ log.content }}</td>
                                         <td class="text-muted" style="min-width: 120px">@{{ log.user.name }}</td>
                                         <td class="text-muted" style="min-width: 170px">@{{ log.created_at }}</td>
@@ -638,8 +614,8 @@
             -webkit-animation-play-state: running;
         }
     </style>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
     <script>
         let listVue = new Vue({
             el: '#issue_div ',
@@ -667,6 +643,11 @@
                     {name:'超量退回',value:'超量退回'},
                     {name:'全部退回',value:'全部退回'},
                 ],
+                logistics:[
+                    @foreach($logistics as $logistic)
+                    {name:{{$logistic->id}},value:'{{$logistic->name}}'},
+                    @endforeach
+                ],
                 expressRemission:['原单减免', '部分减免', '全部减免'],
                 checkData: [],
                 from: '',
@@ -680,6 +661,7 @@
                 message:{},
                 edit:{
                     batchStoreLogs:'',
+                    isShow:[],
                 },
             },
             mounted: function () {
@@ -711,6 +693,13 @@
                     },
                     {name: 'client_code', type: 'input', tip: '原始订单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '原始订单号'},
                     {name: 'logistic_number', type: 'input', tip: ['输入原始运单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索'], placeholder: '运单号'},
+                    {
+                        name: 'logistic_id',
+                        type: 'select_multiple_select',
+                        tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的承运商'],
+                        placeholder: ['承运商', '定位或多选承运商'],
+                        data: this.logistics
+                    },
                     {name: 'logistic_number_return', type: 'input', tip: '退回单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '退回单号'},
                     {name: 'send_client_code', type: 'input', tip: '二次订单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '二次订单号'},
 
@@ -744,6 +733,7 @@
                 this.form = new query({
                     el: '#form_div',
                     condition: data,
+                    appendDom : "btn",
                 })
                 this.form.init();
                 let order = $('.table-head-warning')[0];
@@ -772,7 +762,7 @@
                     let _this = this;
                     setTimeout(function(){
                         let countShow = $(tr).children('.three-layer').length;
-                        $('.header-3').attr('colspan',countShow +2+  (_this.isShowSecondOrderInfo ? 2:0) +(_this.isShowRejectedBill?4:0));
+                        $('.header-3').attr('colspan',countShow +3+  (_this.isShowSecondOrderInfo ? 2:0) +(_this.isShowRejectedBill?4:0));
                     },2);
                 },
                 isShowSecondOrderInfo(newValue){
@@ -780,7 +770,7 @@
                     let _this = this;
                     setTimeout(function(){
                         let countShow = $(tr).children('.three-layer').length;
-                        $('.header-3').attr('colspan',countShow +2+  (_this.isShowSecondOrderInfo ? 2:0) +(_this.isShowRejectedBill?4:0));
+                        $('.header-3').attr('colspan',countShow +3+  (_this.isShowSecondOrderInfo ? 2:0) +(_this.isShowRejectedBill?4:0));
                     },2);
                 },
             },
@@ -1298,6 +1288,8 @@
                         }else{
                             if(response.data.message){
                                 orderIssue['logistic_number_return'] = logistic_number_return
+                                orderIssue.rejected_bill = null
+                                orderIssue.finalStatus = '未退回'
                                 tempTip.okWindow(response.data.message,'确认')
                             }else{
                                 tempTip.setDuration(3000)
@@ -1318,6 +1310,14 @@
                     let truncateSpan = $(e.target);
                     truncateSpan.hide();
                     truncateSpan.siblings('.text-nowrap').show();
+                },
+                addShow(id){
+                    console.log(id)
+                    this.edit.isShow.push(id)
+                },
+                removeShow(id){
+                    let index = this.edit.isShow.indexOf(id)
+                    if(index!==-1) this.edit.isShow.splice(index,1)
                 }
             }
         })

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

@@ -65,8 +65,8 @@
 
 @endsection
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
     <script>
         let performance_vue = new Vue({
             el:'#performance_div',

+ 3 - 3
resources/views/order/issue/workload.blade.php

@@ -74,9 +74,9 @@
 
 @endsection
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let workLoadVue = new Vue({
             el: "#workLoad_div",

+ 33 - 16
resources/views/order/tracking/index.blade.php

@@ -82,22 +82,24 @@
                         <td>@{{ index+1 }}</td>
                         <td class="text-decoration-none td-warm">@{{ trackOrder.ownerName }}</td>
                         <td class="td-warm">
-                            <span v-if="trackOrder.web_order_number"> </span>
+                            <span v-if="trackOrder.web_order_number">
+                                <span v-if="trackOrder.orderClientCode"></span>
+                                <span v-else> @{{ trackOrder.orderClientCode }}</span>
+                            </span>
                             <span v-else>  @{{ trackOrder.orderClientCode }}</span>
-{{--                            @{{ trackOrder.orderClientCode }}--}}
                         </td>
                         <td class="td-warm">
-                            <span v-if="trackOrder.web_order_number"> @{{ trackOrder.web_order_number }}</span>
+                            @can('订单管理-跟踪-仓库编辑')
+                                <input class="form-control form-control-sm" :value="trackOrder.web_order_number" @keydown.enter="warehouseUpdate($event,'web_order_number',trackOrder)" >
+                            @else
+                                @{{ trackOrder.web_order_number }}
+                            @endcan
+{{--                            <span v-if="trackOrder.web_order_number">@{{ trackOrder.web_order_number }} </span>--}}
 {{--                            <span v-else> @{{ trackOrder.web_order_number }}</span>--}}
-{{--                            @can('订单管理-跟踪-仓库编辑')--}}
-{{--                                <input class="form-control form-control-sm" :value="trackOrder.web_order_number" @keydown.enter="warehouseUpdate($event,'web_order_number',trackOrder)" >--}}
-{{--                            @else--}}
-{{--                            @{{ trackOrder.web_order_number }}--}}
-{{--                            @endcan--}}
                         </td>
                         <td class="td-warm">
                             @can('订单管理-跟踪-仓库编辑')
-                                <input class="form-control form-control-sm" type="datetime-local" :value="trackOrder.pick_up_at " @change="warehouseUpdate($event,'pick_up_at',trackOrder)" >
+                                <input class="form-control form-control-sm" type="datetime-local" :value="trackOrder.pick_up_at | dateLocal" @change="warehouseUpdate($event,'pick_up_at',trackOrder)" >
                             @else
                                 @{{ trackOrder.pick_up_at }}
                             @endcan
@@ -217,9 +219,9 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <style>
         .btn-border{
             border:1px solid rgba(108, 117, 125,0.3);
@@ -252,7 +254,15 @@
             },
             mounted:function(){
 
-                let selectDate = [
+                let selectDate1 = [
+                    {name:'31',value:'近一月'},
+                    {name:'92',value:'近三月'},
+                    {name:'183',value:'近半年'},
+                    {name:'366',value:'近一年'},
+                    {name:'0',value: '不限'},
+                ];
+                let selectDate2 = [
+                    {name:'15',value:'15天内'},
                     {name:'31',value:'近一月'},
                     {name:'92',value:'近三月'},
                     {name:'183',value:'近半年'},
@@ -270,9 +280,12 @@
                         {name:'owner_id',type:'select_multiple_select', tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的客户'], placeholder: ['货主', '定位或多选货主'], data: _this.owners},
                         {name:'client_code',type:'input',tip:'订单号',placeholder:'订单号'},
                         {name:['client','addtime'],type:'input_select',tip:['右侧选择查询范围,默认为一月内','查询范围,范围越短搜索越快'],placeholder: ['客户',''],
-                            data:selectDate, rules:[{son:{addtime:{default:'31',required_without_all_if:['orderdate_start','orderdate_end']}}},
-                                {date_relevance:{date:['start_at','end_at'],relevance:'addtime',killing:'date',default:[31,92,183,366]}}]},
-                    ],
+                            data:selectDate1, rules:[{son:{addtime:{default:'31',required_without_all_if:['start_at','end_at']}}},
+                                {date_relevance:{date:['start_at','end_at'],relevance:'addtime',killing:'date',default:[15,31,92,183,366]}}]},
+                        {name:['remark','remark_addtime'],type:'input_select',tip:['右侧选择查询范围,默认为15天内','查询范围,范围越短搜索越快'],placeholder: ['订单备注',''],
+                            data:selectDate2, rules:[{son:{remark_addtime:{default:'15',required_without_all_if:['start_at','end_at']}}},
+                                {date_relevance:{date:['start_at','end_at'],relevance:'remark_addtime',killing:'date',default:[15,31,92,183,366]}}]},
+                     ],
                     [
                         {name:'end_at',type:'dateTime',tip:'结束日期',placeholder: '结束日期'},
                         {name:'logistic_number',type:'input',tip:'运输单号',placeholder:'运输单号'},
@@ -462,6 +475,10 @@
                     }
                     return value
                 },
+                dateLocal:function(value) {
+                    if (value !== null) {return value.replace(' ', 'T')}
+                    return value
+                },
                 number:function(value){
                     var toFixedNum = Number(value).toFixed(3);
                     var realVal = toFixedNum.substring(0, toFixedNum.toString().length - 1);

+ 1 - 1
resources/views/order/wave/search.blade.php

@@ -82,7 +82,7 @@
 @endsection
 
 @section("lastScript")
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
     <script>
         let vueList = new Vue({
             el: "#wave_div",

+ 1 - 1
resources/views/personnel/checking-in/QRcode.blade.php

@@ -8,7 +8,7 @@
     <meta name="csrf-token" content="{{ csrf_token() }}">
     <title>显示二维码 BsWAS</title>
     <!-- Styles -->
-    <link href="{{ asset('css/app200519b.css') }}" rel="stylesheet">
+    <link href="{{ mix('css/app200519b.css') }}" rel="stylesheet">
 </head>
 <body>
     <div class="container-fluid " id="page">

+ 1 - 1
resources/views/personnel/checking-in/clock.blade.php

@@ -3,7 +3,7 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
-    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
+    <link href="{{ mix('css/app.css') }}" rel="stylesheet">
 </head>
 <body>
 <div class="card col-md-8 offset-md-2 mt-5">

+ 1 - 1
resources/views/personnel/checking-in/createUserDetail.blade.php

@@ -3,7 +3,7 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
-    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
+    <link href="{{ mix('css/app.css') }}" rel="stylesheet">
 </head>
 <body>
 <div class="card col-md-8 offset-md-2 mt-5">

+ 1 - 1
resources/views/personnel/checking-in/enterGroupClock.blade.php

@@ -3,7 +3,7 @@
     <head>
         <meta charset="utf-8">
         <meta name="viewport" content="width=device-width, initial-scale=1">
-        <link href="{{ asset('css/app.css') }}" rel="stylesheet">
+        <link href="{{ mix('css/app.css') }}" rel="stylesheet">
     </head>
     <body>
         <div class="card col-md-8 offset-md-2 mt-5">

+ 1 - 1
resources/views/personnel/checking-in/importAndExportClock.blade.php

@@ -3,7 +3,7 @@
     <head>
         <meta charset="utf-8">
         <meta name="viewport" content="width=device-width, initial-scale=1">
-        <link href="{{ asset('css/app.css') }}" rel="stylesheet">
+        <link href="{{ mix('css/app.css') }}" rel="stylesheet">
     </head>
     <body>
         <div class="card col-md-8 offset-md-2 mt-5">

+ 1 - 1
resources/views/personnel/checking-in/importAndExportQRCode.blade.php

@@ -8,7 +8,7 @@
     <meta name="csrf-token" content="{{ csrf_token() }}">
     <title>显示二维码 BsWAS</title>
     <!-- Styles -->
-    <link href="{{ asset('css/app200519b.css') }}" rel="stylesheet">
+    <link href="{{ mix('css/app200519b.css') }}" rel="stylesheet">
 </head>
 <body>
     <div class="container-fluid " id="page">

+ 1 - 1
resources/views/personnel/checking-in/updateUserLaborCompanies.blade.php

@@ -3,7 +3,7 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
-    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
+    <link href="{{ mix('css/app.css') }}" rel="stylesheet">
 </head>
 <body>
 <div class="card col-md-8 offset-md-2 mt-5">

+ 3 - 3
resources/views/personnel/laborReport/index.blade.php

@@ -237,9 +237,9 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let today=(new Date());
         function isTomorrow(){

+ 8 - 2
resources/views/process/create.blade.php

@@ -270,9 +270,13 @@
                     </span>
                 </div>
                 <div class="form-group row">
-                    <label class="col-3 col-form-label text-right" >备注(选填)</label>
+                    <label class="col-3 col-form-label text-right" >加工备注(选填)</label>
                     <textarea :readonly="is_hide" v-model="process.remark" type="text" class="form-control col-8"></textarea>
                 </div>
+                <div class="form-group row">
+                    <label class="col-3 col-form-label text-right" >结算备注(选填)</label>
+                    <textarea :readonly="is_hide" v-model="process.balance_remark" type="text" class="form-control col-8"></textarea>
+                </div>
                 {{--<div class="form-group row">
                     <label class="col-3 col-form-label text-right" >引用教程(选填)</label>
                     <span class=" col-8 input-group p-0" style="max-height: 150px; overflow-y: scroll;border-radius:5px;opacity:0.7;text-align: center;">
@@ -307,6 +311,7 @@
                     amount:'{{old('amount')??($process->amount??'')}}',owner_name:'{{old('owner_name')??($process->owner_name??'')}}',
                     process_method_id:'{{old('process_method_id')??($process->process_method_id??'')}}',
                     unit_price:'{{old('unit_price')??($process->unit_price??'')}}',remark:'{{old('remark')??($process->remark??'')}}',
+                    balance_remark:'{{old('balance_remark')??($process->balance_remark??'')}}',
                     wms_code_full:'',status:'{{$process->status??''}}'},
                 error:{wms_code:[],owner_id:[],process_method_id:[],unit_price:[],amount:[]},
                 processContents:[
@@ -580,6 +585,7 @@
                     let process_method_id=_this.process.process_method_id;
                     let unit_price=_this.process.unit_price;
                     let remark=_this.process.remark;
+                    let balance_remark=_this.process.balance_remark;
                     let amount=_this.process.amount;
                     if (!owner_id || !process_method_id || !unit_price || !amount) {
                         tempTip.setDuration(3000);
@@ -621,7 +627,7 @@
                     };
                     let param = {
                         owner_id:owner_id,process_method_id:process_method_id,unit_price:unit_price,
-                        remark:remark,amount:amount,processContents:_this.processContents,/*tutorials:_this.selectedTutorials*/
+                        remark:remark,balance_remark:balance_remark,amount:amount,processContents:_this.processContents,/*tutorials:_this.selectedTutorials*/
                         is_hide:_this.is_hide
                     };
                     if (this.process.id) {

+ 4 - 4
resources/views/process/index.blade.php

@@ -462,9 +462,9 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let vue = new Vue({
             el:"#process",
@@ -651,7 +651,7 @@
                 processExport(checkAllSign) {
                     let url = '{{url('process/export')}}';
                     let token='{{ csrf_token() }}';
-                    //excelExport 定义在 js/queryForm/export200918.js
+                    //excelExport 定义在 js/queryForm/export.js
                     excelExport(checkAllSign,this.checkData,url,this.sum,token);
                 },
                 //获取登记工时

+ 6 - 4
resources/views/process/statistic.blade.php

@@ -30,6 +30,7 @@
                 <th>货主</th>
                 <th>开始日期</th>
                 <th>完成日期</th>
+                <th>创建日期</th>
                 <th>单价</th>
                 <th>预期数量</th>
                 <th>完成数量</th>
@@ -54,6 +55,7 @@
                 <td><span v-if="processStatistic.process">@{{ processStatistic.process.owner_name }}</span></td>
                 <td>@{{ processStatistic.started_at }}</td>
                 <td>@{{ processStatistic.ended_at }}</td>
+                <td><span v-if="processStatistic.process">@{{ processStatistic.process.created_at }}</span></td>
                 <td><span v-if="processStatistic.process">@{{ processStatistic.process.unit_price }}</span></td>
                 <td><span v-if="processStatistic.process">@{{ processStatistic.process.amount }}</span></td>
                 <td><span v-if="processStatistic.process">@{{ processStatistic.process.completed_amount }}</span></td>
@@ -76,9 +78,9 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm200825.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         new Vue({
             el:"#statistics",
@@ -159,7 +161,7 @@
                 processStatisticExport(checkAllSign){
                     let url = '{{url('process/statistic/export')}}';
                     let token='{{ csrf_token() }}';
-                    //excelExport 定义在 js/queryForm/export200918.js
+                    //excelExport 定义在 js/queryForm/export.js
                     excelExport(checkAllSign,this.checkData,url,this.sum,token);
                 },
             },

+ 3 - 3
resources/views/rejected/search/analyze.blade.php

@@ -60,9 +60,9 @@
 @endsection
 
 @section('lastScript')
-    <script src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script src="{{mix('js/queryForm/export.js')}}"></script>
+    <script src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let vue = new Vue({
             el:"#list",

+ 3 - 3
resources/views/rejected/search/general.blade.php

@@ -175,9 +175,9 @@
         let ajaxFinishAllUrl='{{url("rejected/ajaxFinishAll")}}';
         let csrfInput='@csrf';
     </script>
-    <script src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script src="{{mix('js/queryForm/export.js')}}"></script>
+    <script src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let vue = new Vue({
             el:"#list",

+ 2 - 2
resources/views/store/blindReceive/layout.blade.php

@@ -12,7 +12,7 @@
     <!-- Styles -->
     <link rel="shortcut icon" href="{{asset('icon/WcsIcon_blindPack.ico')}}" />
     <link rel="bookmark" href="{{asset('icon/WcsIcon_blindPack.ico')}}" />
-    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
+    <link href="{{ mix('css/app.css') }}" rel="stylesheet">
 </head>
 <body>
 <div id="app">
@@ -29,7 +29,7 @@
 <!-- Scripts -->
 @yield('script_before')
 {{-- 必须在app.js前边--}}
-<script src="{{ asset('js/app.js') }}"></script>
+<script src="{{ mix('js/app.js') }}"></script>
 <script>
     let isActive=function (name,atSlashLevel) {
         let uriWithNoParam=location.href.split('?')[0];

+ 2 - 2
resources/views/store/checkingReceive/mission.blade.php

@@ -76,8 +76,8 @@
 @stop
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
     <script>
         let vue = new Vue({
             el:"#container",

+ 62 - 27
resources/views/store/checkingReceive/show.blade.php

@@ -87,39 +87,70 @@
             @can('入库管理-盘收一体-盘收-编辑')<button type="button" v-if="storeCheckingReceive.status != '已收货'" class="btn btn-sm btn-outline-success" data-toggle="modal" data-target="#asnWindow">匹配ASN单据</button>@endcan
         </div>
         <div class="row text-primary ml-1 mr-2 mt-1 mb-1 w-100" style="background-color: #c3e3b5">
-            <span class="ml-1">任务ID: <b class="text-dark">@{{ storeCheckingReceive.id }}</b></span>
-            <span class="ml-3">货主: <b class="text-dark">@{{ storeCheckingReceive.owner_name }}</b></span>
-            <span class="ml-3">创建时间: <b class="text-dark">@{{ storeCheckingReceive.created_at }}</b></span>
-            <span class="ml-3">ASN号: <b class="text-dark">@{{ storeCheckingReceive.asn }}</b></span>
+            <span class="ml-md-1">任务ID: <b class="text-dark">@{{ storeCheckingReceive.id }}</b></span>
+            <span class="ml-md-3"> &nbsp;货主: <b class="text-dark">@{{ storeCheckingReceive.owner_name }}</b></span>
+            <span class="ml-md-3">创建时间: <b class="text-dark">@{{ storeCheckingReceive.created_at }}</b></span>
+            <span class="ml-md-3">ASN号: <b class="text-dark">@{{ storeCheckingReceive.asn }}</b></span>
         </div>
-        <table class="table table-sm text-nowrap table-bordered d-none" id="headerRoll"></table>
-        <table class="table table-striped table-sm text-nowrap table-hover mt-1" id="headerParent">
-            <tr id="header"></tr>
-            <tr v-for="(storeCheckingReceiveItem,i) in storeCheckingReceiveItems">
-                <td>@{{ i+1 }}</td>
-                <td>@{{ storeCheckingReceiveItem.bin_number }}</td>
-                <td>@{{ storeCheckingReceiveItem.commodity_name }}</td>
-                <td>
+        <!-- pc >544 -->
+        <div class="d-none d-sm-block">
+            <table class="table table-sm text-nowrap table-bordered d-none" id="headerRoll"></table>
+            <table class="table table-striped table-sm text-nowrap table-hover mt-1" id="headerParent">
+                <tr id="header"></tr>
+                <tr v-for="(storeCheckingReceiveItem,i) in storeCheckingReceiveItems">
+                    <td>@{{ i+1 }}</td>
+                    <td>@{{ storeCheckingReceiveItem.bin_number }}</td>
+                    <td>@{{ storeCheckingReceiveItem.commodity_name }}</td>
+                    <td>
                     <span v-for="commodity_barcode in storeCheckingReceiveItem.commodity_barcodes">
                         <small>@{{ commodity_barcode.code }}</small><br>
                     </span>
-                </td>
-                <td>@{{ storeCheckingReceiveItem.imported_amount }}</td>
-                <td>@{{ storeCheckingReceiveItem.counted_amount }}</td>
-                <td>@{{ storeCheckingReceiveItem.asn_amount }}</td>
-                <td>@{{ storeCheckingReceiveItem.imported_diff_amount }}</td>
-                <td>@{{ storeCheckingReceiveItem.asn_diff_amount }}</td>
-                <td>@{{ storeCheckingReceiveItem.produced_at }}</td>
-                <td>@{{ storeCheckingReceiveItem.invalid_at }}</td>
-                <td>@{{ storeCheckingReceiveItem.batch_code }}</td>
-                <td>@{{ storeCheckingReceiveItem.unique_code }}</td>
-            </tr>
-        </table>
+                    </td>
+                    <td>@{{ storeCheckingReceiveItem.imported_amount }}</td>
+                    <td>@{{ storeCheckingReceiveItem.counted_amount }}</td>
+                    <td>@{{ storeCheckingReceiveItem.asn_amount }}</td>
+                    <td>@{{ storeCheckingReceiveItem.imported_diff_amount }}</td>
+                    <td>@{{ storeCheckingReceiveItem.asn_diff_amount }}</td>
+                    <td>@{{ storeCheckingReceiveItem.produced_at }}</td>
+                    <td>@{{ storeCheckingReceiveItem.invalid_at }}</td>
+                    <td>@{{ storeCheckingReceiveItem.batch_code }}</td>
+                    <td>@{{ storeCheckingReceiveItem.unique_code }}</td>
+                </tr>
+            </table>
+        </div>
+        <!-- phone <544 -->
+        <div class="d-xl-none">
+            <div v-for="(storeCheckingReceiveItem) in storeCheckingReceiveItems" class="mt-1 border border-1 rounded">
+                <div class="row">
+                    <div class="col-12 row">
+                        <label class="text-primary col-4 mr-0">商品条码:</label>
+                        <div class="col-8 ml-0">
+                            <span v-for="commodity_barcode in storeCheckingReceiveItem.commodity_barcodes">
+                                <small>@{{ commodity_barcode.code }}</small><br>
+                            </span>
+                        </div>
+                    </div>
+                </div>
+                <div class="row">
+                    <div class="col-12">
+                        <label class="text-muted">商品名称:</label>@{{ storeCheckingReceiveItem.commodity_name }}
+                    </div>
+                </div>
+                <div class="row">
+                    <div class="col-6">
+                        <label class="text-muted">格口号:</label>@{{ storeCheckingReceiveItem.bin_number }}
+                    </div>
+                    <div class="col-6">
+                        <label class="text-muted">实盘数:</label>@{{ storeCheckingReceiveItem.counted_amount }}
+                    </div>
+                </div>
+            </div>
+        </div>
     </div>
 @stop
 
 @section('lastScript')
-<script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+<script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
 <script>
     new Vue({
         el:"#container",
@@ -334,6 +365,7 @@
                 this.inputting.batch_number='';
                 this.status.commitButtonVisible=false;
                 this.status.binDisable=false;
+                this.status.barcodeDisable = true;
             },
             autoFillBin: function () {
                 let isNotRepeatingBarcode=this.storeCheckingReceiveItems.every(item=>{
@@ -414,7 +446,10 @@
                     }, () => {
                         this.focusDocument();
                     });
-                }else this.commitGoods();
+                }else{
+                    this.commitGoods();
+                    this.focusDocument();
+                }
             },
             getItem: function () {
                 let repeatedGoods=null;
@@ -539,4 +574,4 @@
         },
     });
 </script>
-@stop
+@stop

+ 1 - 1
resources/views/store/fast/index.blade.php

@@ -35,7 +35,7 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let vue = new Vue({
             el:'#fast',

+ 1 - 1
resources/views/store/fast/storeItem.blade.php

@@ -38,7 +38,7 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let vue = new Vue({
             el:'#item',

+ 2 - 2
resources/views/waybill/delivering.blade.php

@@ -187,8 +187,8 @@
     .color1{background-color: #FFA07A}
     .color2{background-color: cornflowerblue}
 </style>
-<script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-<script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+<script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+<script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
 <script>
     new Vue({
         el:"#list",

+ 3 - 3
resources/views/waybill/index.blade.php

@@ -251,9 +251,9 @@
             -webkit-animation-play-state: running;
         }
     </style>
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
         let vue = new Vue({
             el:'#list',

+ 2 - 2
resources/views/waybill/waybillFinancialSnapshot/index.blade.php

@@ -124,8 +124,8 @@
 @stop
 
 @section('lastScript')
-<script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
-<script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
+<script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
+<script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
 <script>
     let vue = new Vue({
         el:'#editingPanel',

+ 3 - 3
resources/views/weight/package/index.blade.php

@@ -57,9 +57,9 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm201009b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
     <script>
             @if(isset($request))
         let request={!! json_encode($request) !!};

+ 2 - 2
resources/views/weight/package/statistics.blade.php

@@ -142,7 +142,7 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
     <script>
         new Vue({
             el:"#statistics",
@@ -457,7 +457,7 @@
                 statisticExport:function (checkAllSign) {
                     let url = '{{url('package/statistics/export')}}';
                     let token='{{ csrf_token() }}';
-                    //excelExport 定义在 js/queryForm/export200918.js
+                    //excelExport 定义在 js/queryForm/export.js
                     excelExport(checkAllSign,this.checkData,url,this.sum,token);
                 },
                 hourFilter:function(e){

+ 2 - 2
resources/views/weight/weightExcepted/index.blade.php

@@ -86,8 +86,8 @@
 @endsection
 
 @section('lastScript')
-    <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
-    <script type="text/javascript" src="{{asset('js/queryForm/export200918.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
     <script>
         let vue = new Vue({
             el:"#list",

+ 13 - 0
routes/api/thirdPart/haiq.php

@@ -0,0 +1,13 @@
+<?php
+
+use Illuminate\Support\Facades\Route;
+
+/*
+文件地址前缀:/api/thirdPart/haiq
+*/
+
+
+Route::group(['prefix'=>'storage'],function(){
+    Route::post('out', "StorageController@out");//出库
+    Route::post('in', "StorageController@in");//入库
+});

+ 12 - 9
serves/excelExportGo/api/controller/controller.go

@@ -6,6 +6,7 @@ import (
 	"bswas/utilities"
 	"encoding/json"
 	"net/http"
+	"strconv"
 )
 
 func Export(w http.ResponseWriter,req *http.Request)  {
@@ -114,20 +115,17 @@ func selectModule(params map[string]string) (row []interface{}, list [][]interfa
 		mergeColumn = []string{
 			"A","B","C","D","E","F","G","H","I",
 		}
-	case "processStatistic":
-		data = orm.GetMysqlData(params["sql"])
-		row, list = ProcessStatisticFormat(data)
 	case "laborReport":
 		err := json.Unmarshal([]byte(params["data"]), &data)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:123   临时工报表数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:121   临时工报表数据json解析失败!","ERROR")
 		}
 		row, list = LaborReportFormat(data)
 	case "orderIssue":
 		sqlList := make(map[string]string)
 		err := json.Unmarshal([]byte(params["sqlList"]), &sqlList)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:130   订单问题件数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:128   订单问题件数据json解析失败!","ERROR")
 		}
 		if sqlList["orderPackageSql"] == "" || sqlList["secondOrderPackageSql"] == "" || sqlList["orderIssueSql"] == "" || sqlList["rejectedBillItemSql"] == "" || sqlList["logSql"] == ""{
 			return
@@ -183,13 +181,13 @@ func selectModule(params map[string]string) (row []interface{}, list [][]interfa
 		request := paramList{}
 		err := json.Unmarshal([]byte(params["data"]), &request)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:186   称重统计数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:184   称重统计数据json解析失败!","ERROR")
 		}
 		row, list = PackageStatisticFormat(request.ROW, request.LIST)
 	case "inventoryAccountMission":
 		err := json.Unmarshal([]byte(params["data"]), &data)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:192   库存盘点数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:190   库存盘点数据json解析失败!","ERROR")
 		}
 		row, list = InventoryAccountMissionFormat(data)
 	case "inventoryCompare":
@@ -200,11 +198,11 @@ func selectModule(params map[string]string) (row []interface{}, list [][]interfa
 		var rule map[string]string
 		err := json.Unmarshal([]byte(params["row"]), &row)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:203   参数传递错误!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:201   参数传递错误!","ERROR")
 		}
 		err = json.Unmarshal([]byte(params["column"]), &column)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:207   参数传递错误!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:205   参数传递错误!","ERROR")
 		}
 		err = json.Unmarshal([]byte(params["rule"]), &rule)
 		if params["connection"] == "oracle" {
@@ -245,6 +243,11 @@ func dataFormat(ruleType string,value string)string{
 			value = utilities.DateFormat(value, "2006-01-02T15:04:05+08:00")
 		case "mysqlDate":
 			value = utilities.DateFormat(value,"2006-01-02T15:04:05Z")
+		case "percent":
+			rate,_ := strconv.ParseFloat(value,64)
+			if rate != 0 {
+				value = strconv.FormatFloat(rate * 100, 'f', 2, 64)+"%"
+			}
 	}
 	return value
 }

+ 16 - 14
serves/excelExportGo/api/controller/orderController.go

@@ -221,7 +221,7 @@ func OrderIssueFormat(dataMap map[string]map[string]interface{}) ([]interface{},
 		"登记日期","创建日期","客户","店铺","客户订单号","原始承运商","收货人",
 		"收货电话","省","市","区","收货人地址","原始运单号","原始商品条码","原始商品名称","原始商品数量",
 		"退单备注","退单商品名","退单商品条码","退单商品数量","退单状态",
-		"操作类型","说明","操作者","问题类别","二次订单号","二次承运商","二次运单号",
+		"操作类型","说明","操作者","情况说明","问题类别","二次订单号","二次承运商","二次运单号",
 		"二次商品条码","二次商品名","二次商品数量","最终状态",
 		"承运商赔偿金额","承运商快递减免",
 		"宝时赔偿金额","宝时快递减免","事故责任方",
@@ -251,19 +251,20 @@ func OrderIssueFormat(dataMap map[string]map[string]interface{}) ([]interface{},
 		"log_type"  :  21,
 		"log_content"  :  22,
 		"user_name"  :  23,
-		"order_issue_type_name"  :  24,
-		"s_o_client_code"  :  25,
-		"s_logistics_name"  :  26,
-		"logistic_number"  :  27,
-		"s_c_sku"  :  28,
-		"s_c_name"  :  29,
-		"s_o_p_c_amount"  :  30,
-		"final_status"  :  31,
-		"logistic_indemnity_money"  :  32,
-		"logistic_express_remission"  :  33,
-		"baoshi_indemnity_money"  :  34,
-		"baoshi_express_remission"  :  35,
-		"user_workgroup_name"  :  36,
+		"result_explain"  :  24,
+		"order_issue_type_name"  :  25,
+		"s_o_client_code"  :  26,
+		"s_logistics_name"  :  27,
+		"logistic_number"  :  28,
+		"s_c_sku"  :  29,
+		"s_c_name"  :  30,
+		"s_o_p_c_amount"  :  31,
+		"final_status"  :  32,
+		"logistic_indemnity_money"  :  33,
+		"logistic_express_remission"  :  34,
+		"baoshi_indemnity_money"  :  35,
+		"baoshi_express_remission"  :  36,
+		"user_workgroup_name"  :  37,
 	}
 	data := make([]map[string]interface{},len(dataMap))
 	for _,value := range dataMap {
@@ -387,6 +388,7 @@ func GetOrderIssuesModel(orderIssues []map[string]string)(modelData map[string]m
 			"order_issues_created_at":    value["order_issues_created_at"],
 			"shop_name":                  value["shop_name"],
 			"rejecting_status":           value["rejecting_status"],
+			"result_explain":             value["result_explain"],
 			"order_issue_type_name":      value["order_issue_type_name"],
 			"final_status":               value["final_status"],
 			"logistic_indemnity_money":   value["logistic_indemnity_money"],

+ 0 - 50
serves/excelExportGo/api/controller/processController.go

@@ -68,53 +68,3 @@ func ProcessFormat(data []map[string]string) ([]interface{}, [][]interface{}, ma
 	}
 	return row,list,mergeRow
 }
-
-func ProcessStatisticFormat(data []map[string]string) ([]interface{}, [][]interface{}) {
-	row := []interface{}{
-		"任务号", "货主", "开始日期", "完成日期", "单价", "预期数量", "完成数量", "收入合计",
-		"完成时间(天)'", "总工时", "加工类型", "最高日产能", "最低日产能", "日均产能", "合计成本", "毛利润",
-		"毛利率", "状态","加工备注","结算备注",
-	}
-	column := map[string]int{
-		"process_code" : 0,
-		"owner_name" : 1,
-		"started_at" : 2,
-		"ended_at" : 3,
-		"process_unit_price" : 4,
-		"process_amount" : 5,
-		"process_completed_amount" : 6,
-		"revenue" : 7,
-		"duration_days" : 8,
-		"duration_man_hours" : 9,
-		"process_method_name" : 10,
-		"top_capacity" : 11,
-		"bottom_capacity" : 12,
-		"average_capacity" : 13,
-		"total_cost" : 14,
-		"gross_profit" : 15,
-		"gross_profit_rate" : 16,
-		"process_status" : 17,
-		"process_remark" : 18,
-		"process_balance_remark" : 19,
-	}
-	list := make([][]interface{},len(data))
-	for k,v := range data{
-		line := make([]interface{},len(row))
-		for key,value := range column {
-			if key == "gross_profit_rate" {
-				rate,_ := strconv.ParseFloat(v[key],64)
-				if rate != 0 {
-					line[value] = strconv.FormatFloat(rate * 100, 'f', 2, 64)+"%"
-				}
-				continue
-			}
-			if key == "started_at" || key == "ended_at" {
-				line[value] = utilities.DateFormat(v[key],"2006-01-02T15:04:05Z");
-				continue
-			}
-			line[value] = v[key]
-		}
-		list[k] = line
-	}
-	return row,list
-}

+ 13 - 0
tests/webApi/thirdPart/haiq/storage.http

@@ -0,0 +1,13 @@
+# For a quick start check out our HTTP Requests collection (Tools|HTTP Client|Open HTTP Requests Collection).
+##
+## Following HTTP Request Live Templates are available:
+## * 'gtrp' and 'gtr' create a GET request with or without query parameters;
+## * 'ptr' and 'ptrp' create a POST request with a simple or parameter-like body;
+## * 'mptr' and 'fptr' create a POST request to submit a form with a text or file field (multipart/form-data);
+
+POST http://bswas/api/thirdPart/haiq/storage/in
+
+###
+
+
+

+ 9 - 5
webpack.mix.js

@@ -11,17 +11,21 @@ const mix = require('laravel-mix');
  |
  */
 
-mix.js('resources/js/app.js', 'public/js/app201009.js')
-    .sass('resources/sass/app.scss', 'public/css/app200923.css');
+mix.js('resources/js/app.js', 'public/js/app.js')
+    .sass('resources/sass/app.scss', 'public/css/app.css');
 mix.copy('resources/sass/fonts/','public/fonts');
 mix.copy('resources/icon','public/icon');
 mix.copy('resources/images','public/images');
 mix.copy('resources/icon/faviconc.ico','public/faviconc.ico');
 mix.js('resources/js/trix.js','public/js/trix.js');
 mix.copy('resources/sass/trix.css','public/css/trix.css');
-mix.copy('resources/js/queryForm/queryForm.js','public/js/queryForm/queryForm201009b.js');
-mix.copy('resources/js/queryForm/export.js','public/js/queryForm/export200918.js');
-mix.js('resources/js/queryForm/header.js','public/js/queryForm/header200826b.js');
+mix.copy('resources/js/queryForm/queryForm.js','public/js/queryForm/queryForm.js');
+mix.copy('resources/js/queryForm/export.js','public/js/queryForm/export.js');
+mix.js('resources/js/queryForm/header.js','public/js/queryForm/header.js');
 
 mix.copy('resources/sound/','public/sound');
 
+
+if (mix.inProduction()) {
+    mix.version();
+}

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно