|
|
@@ -7,6 +7,7 @@ use App\CommodityBarcode;
|
|
|
use App\Http\Controllers\Controller;
|
|
|
use App\OracleDOCWaveDetails;
|
|
|
use App\Order;
|
|
|
+use App\OrderBin;
|
|
|
use App\OrderCommodity;
|
|
|
use App\Services\LogService;
|
|
|
use App\Services\OracleDOCOrderHeaderService;
|
|
|
@@ -16,6 +17,7 @@ use App\SortingStation;
|
|
|
use App\User;
|
|
|
use App\UserToken;
|
|
|
use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
use Illuminate\Support\Facades\Hash;
|
|
|
use Illuminate\Support\Facades\Validator;
|
|
|
|
|
|
@@ -197,10 +199,76 @@ class SortingController extends Controller
|
|
|
|
|
|
public function syncOrder($code)
|
|
|
{
|
|
|
- $code = \request("code");
|
|
|
$orderHeaders = app(OracleDOCOrderHeaderService::class)->getQuery()->where('DOC_Order_Header.WaveNo',$code)->get();
|
|
|
app(OrderService::class)->syncOrderByWMSOrderHeaders($orderHeaders);
|
|
|
app(OrderCommodityService::class)->syncOrderCommodity($orderHeaders);
|
|
|
+ $this->syncOrderBin($code);
|
|
|
}
|
|
|
|
|
|
+ public function syncOrderBin($code)
|
|
|
+ {
|
|
|
+ $wave = DB::connection("oracle")->selectOne(DB::raw("select * from DOC_WAVE_HEADER where WAVENO = ?"),[$code]);
|
|
|
+ if (!$wave) return;
|
|
|
+ $owner = app("OwnerService")->codeGetOwner($wave->customerid);
|
|
|
+ $obj = [
|
|
|
+ "wms_status" => $this->wms_status($wave),
|
|
|
+ "wms_type"=>$wave->descr,
|
|
|
+ "created_at"=>date("Y-m-d H:i:s"),
|
|
|
+ "wms_created_at"=>$wave->addtime,
|
|
|
+ "updated_at"=>$wave->edittime,
|
|
|
+ "owner_id"=>$owner->id,
|
|
|
+ ];
|
|
|
+ $batch = Batch::query()->where("code",$code)->first();
|
|
|
+ if (!$wave){
|
|
|
+ $obj["code"] = $code;
|
|
|
+ $batch = Batch::query()->create($obj);
|
|
|
+ }else{
|
|
|
+ Batch::query()->where("code",$code)->update($obj);
|
|
|
+ }
|
|
|
+ $order_nos = array_column(DB::connection("oracle")->select(DB::raw("select orderno from DOC_WAVE_DETAILS where WAVENO = ?"),[$code]),"orderno");
|
|
|
+
|
|
|
+ Order::query()->whereIn("code",$order_nos)->update(["batch_id"=>$batch->id]);
|
|
|
+
|
|
|
+ Order::query()->with(["batch","bin"])->whereIn("code",$order_nos)->get()->each(function ($order){
|
|
|
+ if (!$order->bin){
|
|
|
+ $bin = DB::connection("oracle")->selectOne(DB::raw("select seqno from DOC_WAVE_DETAILS where waveno = ? and orderno = ?"),[$order->batch->code,$order->code]);
|
|
|
+ if ($bin){
|
|
|
+ OrderBin::query()->create([
|
|
|
+ 'order_id' => $order->id,
|
|
|
+ 'number' => $bin->seqno,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param $wave
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ private function wms_status($wave): string
|
|
|
+ {
|
|
|
+ switch ($wave->wavestatus) {
|
|
|
+ case 00:
|
|
|
+ $wms_status = '创建';
|
|
|
+ break;
|
|
|
+ case 40:
|
|
|
+ $wms_status = '部分收货';
|
|
|
+ break;
|
|
|
+ case 90:
|
|
|
+ $wms_status = '取消';
|
|
|
+ break;
|
|
|
+ case 99:
|
|
|
+ $wms_status = '完成';
|
|
|
+ break;
|
|
|
+ case 62:
|
|
|
+ $wms_status = '部分装箱';
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ $wms_status = (string)$wave->wavestatus;
|
|
|
+ }
|
|
|
+ return $wms_status;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|