|
|
@@ -20,6 +20,7 @@ use App\OracleDOCWaveDetails;
|
|
|
use App\Order;
|
|
|
use App\OrderIssue;
|
|
|
use App\OrderPackage;
|
|
|
+use App\OrderPackageCommodities;
|
|
|
use App\OrderTracking;
|
|
|
use App\OrderTrackingOwner;
|
|
|
use App\Owner;
|
|
|
@@ -29,15 +30,20 @@ use App\ProcessDaily;
|
|
|
use App\ProcessStatistic;
|
|
|
use App\RejectedBill;
|
|
|
use App\RejectedBillItem;
|
|
|
+use App\Services\CommodityService;
|
|
|
use App\Services\common\BatchUpdateService;
|
|
|
use App\Services\common\DataHandlerService;
|
|
|
use App\Services\InventoryCompareService;
|
|
|
+use App\Services\LogisticService;
|
|
|
use App\Services\LogService;
|
|
|
use App\Services\OracleDOCOrderHeaderService;
|
|
|
use App\Services\OrderIssueService;
|
|
|
+use App\Services\OrderPackageCommoditiesService;
|
|
|
use App\Services\OrderPackageService;
|
|
|
use App\Services\OrderService;
|
|
|
+use App\Services\OrderTrackingOwnerService;
|
|
|
use App\Services\OrderTrackingService;
|
|
|
+use App\Services\OwnerService;
|
|
|
use App\Unit;
|
|
|
use App\User;
|
|
|
use App\Waybill;
|
|
|
@@ -478,13 +484,39 @@ class TestController extends Controller
|
|
|
|
|
|
public function test3()
|
|
|
{
|
|
|
-// $startDate = \Illuminate\Support\Carbon::parse('2020-05-06 13:16:51')->toDateTimeString();
|
|
|
-
|
|
|
+// dd(bcmul(0.3,0.3,5));
|
|
|
+ $logistic = Logistic::query()->where('code','XJWL')->first();
|
|
|
+ if(!$logistic){
|
|
|
+ Logistic::query()->create(['code'=>'XJWL','name'=>'新杰物流']);
|
|
|
+ }
|
|
|
|
|
|
- $startDate = \Illuminate\Support\Carbon::parse('2020-09-21 00:00:00')->toDateTimeString();
|
|
|
+ /** @var DataHandlerService $dataHandlerService */
|
|
|
+ $dataHandlerService = app(DataHandlerService::class);
|
|
|
/** @var OrderTrackingService $orderTrackingService */
|
|
|
$orderTrackingService = app('orderTrackingService');
|
|
|
- $orderTrackingService->trackingWmsOrder($startDate);
|
|
|
+ /** @var OrderService $orderSerivce */
|
|
|
+ $orderService = app(OrderService::class);
|
|
|
+ /** @var OracleDOCOrderHeaderService $orderHeaderService */
|
|
|
+ $orderHeaderService = app(OracleDOCOrderHeaderService::class);
|
|
|
+ /** @var OracleDOCOrderHeader $orderHeaders */
|
|
|
+// $startDate = \Illuminate\Support\Carbon::parse('2020-05-06 13:16:51')->toDateTimeString();
|
|
|
+ //$orderTrackingService->trackingWmsOrder($startDate);
|
|
|
+ $owners = app(OrderTrackingOwnerService::class)->getTrackingOrderOwner();
|
|
|
+ $startDate = \Illuminate\Support\Carbon::parse('2020-08-26 00:00:00')->toDateTimeString();
|
|
|
+ $endData = \Illuminate\Support\Carbon::parse('2020-09-26 00:00:00')->toDateTimeString();
|
|
|
+ $orderHeaders = OracleDOCOrderHeader::query()
|
|
|
+ ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode'])
|
|
|
+ ->where('addTime','>=',$startDate)
|
|
|
+// ->where('addTime','<=',$endData)
|
|
|
+ ->whereIn('customerID',data_get($owners,'*.code'))
|
|
|
+ ->get();
|
|
|
+
|
|
|
+// $orderHeaders = app(OracleDOCOrderHeaderService::class)->getWmsOrderOnStartDateCreate($startData);
|
|
|
+ $orderService->createByWmsOrder($orderHeaders);
|
|
|
+ $orderTrackingService->createByWmsOrderHeader($orderHeaders);
|
|
|
+ $orderService->updateByWmsOrders($orderHeaders);
|
|
|
+ $orderTrackingService->updateByWmsOrderHeaders($orderHeaders);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public function syncWmsOrder(){
|
|
|
@@ -494,90 +526,123 @@ class TestController extends Controller
|
|
|
$orderTrackingService->trackingWmsOrder($startDate);
|
|
|
}
|
|
|
|
|
|
- public function orderTrckingOwnerAll(){
|
|
|
- $owners = Owner::all();
|
|
|
- foreach ($owners as $owner) {
|
|
|
- $orderTrackingOwner = OrderTrackingOwner::query()->where('owner_id',$owner->id)->first();
|
|
|
- if($orderTrackingOwner == null){
|
|
|
- OrderTrackingOwner::query()->create(['owner_id'=>$owner->id,'status'=>'启用']);
|
|
|
- }else{
|
|
|
- if($orderTrackingOwner->status == '禁用'){
|
|
|
- $orderTrackingOwner->status = '启用';
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public function updateOrderTracking(){ // update client order_remark
|
|
|
- $orderTrackings = OrderTracking::query()
|
|
|
- ->with('commodities.package.order')
|
|
|
- ->get();
|
|
|
- $orderNos = [];
|
|
|
- $order_tracking = [];
|
|
|
- foreach ($orderTrackings as $orderTracking) {
|
|
|
- $order = $orderTracking->commodities->package->order ?? '';
|
|
|
- $orderNos[] = $order->code;
|
|
|
- $order_tracking[$order->code][] = $orderTracking;
|
|
|
- }
|
|
|
- $orderHeaders = OracleDOCOrderHeader::query()
|
|
|
- ->whereIn('orderNo',$orderNos)
|
|
|
- ->get();
|
|
|
+ public function updateOrderPackingCommodity(){
|
|
|
+ /** @var OrderTrackingService $orderTrackingService */
|
|
|
+ $orderTrackingService = app(OrderTrackingService::class);
|
|
|
+ /** @var OrderPackageCommoditiesService $orderPackageCommoditiesService */
|
|
|
+ $orderPackageCommoditiesService = app(OrderPackageCommoditiesService::class);
|
|
|
+ /** @var OrderService $orderService */
|
|
|
+ $orderService = app(OrderService::class);
|
|
|
+ $orderTrackings = OrderTracking::query()->with('commodities.package.order')->get();
|
|
|
+ $orderNo = data_get($orderTrackings,'*.commodities.package.order.code');
|
|
|
+ $order_packages = OrderPackage::query()->with('order')->whereHas('order',function($query) use($orderNo){
|
|
|
+ $query->whereIn('code',$orderNo);
|
|
|
+ })->get();
|
|
|
|
|
|
- $fillables = [['id','client','order_remark']];
|
|
|
- foreach ($orderHeaders as $orderHeader) {
|
|
|
- $orderTracking_list = $order_tracking[$orderHeader->orderno];
|
|
|
- $notes = $orderHeader['notes'];
|
|
|
-// $notes = str_replace('【','[',$notes);
|
|
|
- $client = null;
|
|
|
- $order_remark = null;
|
|
|
- if (strpos($notes, '[')) {
|
|
|
- $arr= str_split($notes,strpos($notes,'['));
|
|
|
- $client = $arr[0] ?? '';
|
|
|
- $order_remark = $arr[1] ?? '';
|
|
|
- $order_remark = str_replace(['[',']'],'',$order_remark);
|
|
|
- }
|
|
|
+ $id = data_get($order_packages,'*.id');
|
|
|
+ $list = OrderPackageCommodities::query()->whereIn('order_package_id',$id)->get();
|
|
|
+// dd(data_get($list,'*.id'),data_get($orderTrackings,'*.id'));
|
|
|
+ $count1 = OrderPackageCommodities::destroy(data_get($list,'*.id'));
|
|
|
+ $count2 = OrderTracking::destroy(data_get($orderTrackings,'*.id'));
|
|
|
+// dd(1);
|
|
|
|
|
|
- foreach ($orderTracking_list as $item) {
|
|
|
- $fillables[] = [
|
|
|
- 'id' => $item->id,
|
|
|
- 'client' => $client,
|
|
|
- 'order_remark' => $order_remark
|
|
|
- ];
|
|
|
- }
|
|
|
- }
|
|
|
- /** @var BatchUpdateService $batchUpdateService */
|
|
|
- $batchUpdateService = app('batchUpdateService');
|
|
|
- $batchUpdateService->batchUpdate('order_trackings',$fillables);
|
|
|
- }
|
|
|
|
|
|
- public function updateOrderTrackingLogistic(){
|
|
|
- $orderTrackings = OrderTracking::query()->with('commodities.package.order')->get();
|
|
|
- $order_nos = [];
|
|
|
+ $orderHeaders = OracleDOCOrderHeader::query()->whereIn('orderno',$orderNo)->get();
|
|
|
|
|
|
- foreach ($orderTrackings as $order_tracking){
|
|
|
- $order = $order_tracking->commodities->package->order ?? false;
|
|
|
- if($order ?? false){
|
|
|
- $order_nos[] = $order['code'];
|
|
|
- }
|
|
|
- }
|
|
|
- $order_nos = array_unique($order_nos);
|
|
|
- $orderHeaders = OracleDOCOrderHeader::query()->whereIn('OrderNo',$order_nos)->get();
|
|
|
- $owners_code = data_get($orderHeaders,'*.userdefine1');
|
|
|
- $logistics = Logistic::query()->where('code',$owners_code)->get();
|
|
|
- $orders = Order::query()->whereIn('code',data_get($orderHeaders,'*.orderno'))->get();
|
|
|
-
|
|
|
- foreach ($orderHeaders as $orderHeader) {
|
|
|
- $order = $orders->where('code',$orderHeader->orderno)->first();
|
|
|
- $logistics = $logistics->where('code',$orderHeader->userdefine1)->first();
|
|
|
- $order->update(['logistic_id'=>$logistics->id]);
|
|
|
+ $order_packages = app(OrderPackageService::class)->getByWmsOrders($orderHeaders);
|
|
|
+ $owners = app(OwnerService::class)->getByWmsOrders($orderHeaders);
|
|
|
+ $commodities = app(CommodityService::class)->getByWmsOrders($orderHeaders);
|
|
|
+ $owner_code_map=[];
|
|
|
+ foreach ($owners as $owner) {
|
|
|
+ $owner_code_map[$owner->code] = $owner;
|
|
|
}
|
|
|
+// $orderService->createByWmsOrder($orderHeaders);
|
|
|
+ $orderPackageCommoditiesService->createByWmsOrder($orderHeaders,$order_packages,$owner_code_map,$commodities);
|
|
|
+ $orderTrackingService->createByWmsOrderHeader($orderHeaders);
|
|
|
}
|
|
|
|
|
|
- public function updateClient(){
|
|
|
- $orderTrackings = OrderTracking::query()->with('commodities.package.order')->get();
|
|
|
- $orderNo = data_get($orderTrackings,'*.commodities.package.order.code');
|
|
|
- $orders = Order::query()->where('code',$orderNo)->get();
|
|
|
- OracleDOCOrderHeader::query()->whereIn('orderno',data_get('*'))->first();
|
|
|
-
|
|
|
- }
|
|
|
+// public function orderTrckingOwnerAll(){
|
|
|
+// $owners = Owner::all();
|
|
|
+// foreach ($owners as $owner) {
|
|
|
+// $orderTrackingOwner = OrderTrackingOwner::query()->where('owner_id',$owner->id)->first();
|
|
|
+// if($orderTrackingOwner == null){
|
|
|
+// OrderTrackingOwner::query()->create(['owner_id'=>$owner->id,'status'=>'启用']);
|
|
|
+// }else{
|
|
|
+// if($orderTrackingOwner->status == '禁用'){
|
|
|
+// $orderTrackingOwner->status = '启用';
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+// public function deleteOrderTraking()
|
|
|
+// {
|
|
|
+// $orderTrackings = OrderTracking::query()->with('commodities.package.order')->get();
|
|
|
+// $orderNo = data_get($orderTrackings,'*.commodities.package.order.code');
|
|
|
+// $order_nos = array_unique($orderNo);
|
|
|
+// $orders = Order::query()->whereIn('code',$order_nos)->get();
|
|
|
+// $order_packages = OrderPackage::query()->with('order')->whereHas('order',function($query) use($order_nos){
|
|
|
+// $query->whereIn('code',$order_nos);
|
|
|
+// });
|
|
|
+// $order_package_commodities = OrderPackageCommodities::query()->with('package.order')->whereHas('package.order',function($query) use ($order_nos){
|
|
|
+// $query->whereIn('code',$order_nos);
|
|
|
+// })->get();
|
|
|
+// dd($order_nos,$orders->count(),$order_packages->count(),$order_package_commodities->count());
|
|
|
+// }
|
|
|
+
|
|
|
+// public function updateOrderTracking(){ // update client order_remark
|
|
|
+// $orderTrackings = OrderTracking::query()
|
|
|
+// ->with('commodities.package.order')
|
|
|
+// ->get();
|
|
|
+// $orderNos = [];
|
|
|
+// $order_tracking = [];
|
|
|
+// foreach ($orderTrackings as $orderTracking) {
|
|
|
+// $order = $orderTracking->commodities->package->order ?? '';
|
|
|
+// $orderNos[] = $order->code;
|
|
|
+// $order_tracking[$order->code][] = $orderTracking;
|
|
|
+// }
|
|
|
+// $orderHeaders = OracleDOCOrderHeader::query()
|
|
|
+// ->whereIn('orderNo',$orderNos)
|
|
|
+// ->get();
|
|
|
+//
|
|
|
+// $fillables = [['id','client','order_remark']];
|
|
|
+// foreach ($orderHeaders as $orderHeader) {
|
|
|
+// $orderTracking_list = $order_tracking[$orderHeader->orderno];
|
|
|
+// $notes = $orderHeader['notes'];
|
|
|
+//// $notes = str_replace('【','[',$notes);
|
|
|
+// $client = null;
|
|
|
+// $order_remark = null;
|
|
|
+// if (strpos($notes, '[')) {
|
|
|
+// $arr= str_split($notes,strpos($notes,'['));
|
|
|
+// $client = $arr[0] ?? '';
|
|
|
+// $order_remark = $arr[1] ?? '';
|
|
|
+// $order_remark = str_replace(['[',']'],'',$order_remark);
|
|
|
+// }
|
|
|
+//
|
|
|
+// foreach ($orderTracking_list as $item) {
|
|
|
+// $fillables[] = [
|
|
|
+// 'id' => $item->id,
|
|
|
+// 'client' => $client,
|
|
|
+// 'order_remark' => $order_remark
|
|
|
+// ];
|
|
|
+// }
|
|
|
+// }
|
|
|
+// /** @var BatchUpdateService $batchUpdateService */
|
|
|
+// $batchUpdateService = app('batchUpdateService');
|
|
|
+// $batchUpdateService->batchUpdate('order_trackings',$fillables);
|
|
|
+// }
|
|
|
+
|
|
|
+// public function updateOrderTrackingLogistic(){
|
|
|
+// $orderTrackings = OrderTracking::query()->with('commodities.package.order')->get();
|
|
|
+// $order_nos = data_get($orderTrackings,'*.commodities.package.order.code');
|
|
|
+// $order_nos = array_unique($order_nos);
|
|
|
+// $orders = Order::query()->whereIn('code',$order_nos)->get();
|
|
|
+// $XJWL_logistic =Logistic::query()->where('code','XJWL')->first();
|
|
|
+// foreach ($orders as $order) {
|
|
|
+// $orderHeader = OracleDOCOrderHeader::query()->where('OrderNo',$order->code)->first();
|
|
|
+// $logistic =Logistic::query()->where('code',$orderHeader->userdefine1)->first();
|
|
|
+// if($orderHeader->userdefine1 == 'ZT'){$logistic = $XJWL_logistic;}
|
|
|
+// $order->update(['logistic_id'=>$logistic->id]);
|
|
|
+// }
|
|
|
+// }
|
|
|
}
|