Procházet zdrojové kódy

Merge branch 'zzd' of ssh://was.baoshi56.com:10022/var/git/bswas

LD před 5 roky
rodič
revize
d641701227

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

@@ -135,14 +135,7 @@ class TestController extends Controller
     }
 
     public function zzd(){
-        Unit::query()->firstOrCreate(["name"=>"件"],[
-            "name"=>"件",
-            "code" => "piece"
-        ]);
-        Unit::query()->firstOrCreate(["name"=>"托"],[
-            "name"=>"托",
-            "code" => "torr"
-        ]);
+        return app("OrderService")->freezeRemoveWave("'','SO190628000688'",true);
     }
 
     public function syncWeight()

+ 1 - 0
app/Jobs/OrderFreeze.php

@@ -82,6 +82,7 @@ class OrderFreeze implements ShouldQueue
         if (!$freezeOrders)return;
         $where = "''";
         foreach ($freezeOrders as $f)$where .= ",'{$f}'";
+        app("OrderService")->freezeRemoveWave($where,true);
         $edit = date("Y-m-d H:i:s");
         $sql = <<<sql
 UPDATE DOC_ORDER_HEADER SET edittime = TO_DATE('{$edit}','yyyy-mm-dd hh24:mi:ss'),releasestatus = 'H',waveno='*',notes = CASE WHEN notes IS NULL THEN '停运' ELSE  notes||',停运' END where ORDERNO in ({$where})

+ 18 - 0
app/Services/OrderService.php

@@ -4,6 +4,7 @@ namespace App\Services;
 
 use App\Jobs\OrderCreateInstantBill;
 use App\Jobs\OrderFreeze;
+use App\Log;
 use App\Logistic;
 use App\OracleActAllocationDetails;
 use App\OracleDOCASNHeader;
@@ -1194,4 +1195,21 @@ class OrderService
         return true;
     }
 
+    public function freezeRemoveWave($orders, $isSql = false)
+    {
+        if (!$isSql && !is_array($orders))$orders = [$orders];
+        if (!$isSql){
+            $where = "''";
+            foreach ($orders as $f)$where .= ",'{$f}'";
+            $orders = $where;
+        }
+        $sql = <<<sql
+    DELETE FROM DOC_WAVE_DETAILS WHERE (WAVENO,ORDERNO) IN (SELECT DOC_ORDER_HEADER.WAVENO,DOC_ORDER_HEADER.ORDERNO FROM DOC_ORDER_HEADER LEFT JOIN DOC_WAVE_DETAILS ON DOC_ORDER_HEADER.WAVENO = DOC_WAVE_DETAILS.WAVENO
+    AND DOC_ORDER_HEADER.ORDERNO = DOC_WAVE_DETAILS.ORDERNO WHERE DOC_ORDER_HEADER.orderno IN ({$orders}) AND DOC_ORDER_HEADER.WAVENO != '*' AND DOC_ORDER_HEADER.WAVENO IS NOT NULL)
+sql;
+        $result = DB::connection("oracle")->delete(DB::raw("$sql"));
+        LogService::log(__METHOD__,"删除波次详情",$sql);
+        return $result;
+    }
+
 }