|
|
@@ -6,10 +6,10 @@ use App\Commodity;
|
|
|
use App\Components\Database;
|
|
|
use App\Feature;
|
|
|
use App\Jobs\OrderCreateInstantBill;
|
|
|
-use App\Jobs\OrderCreateWaybill;
|
|
|
use App\Jobs\OrderFreeze;
|
|
|
use App\Logistic;
|
|
|
use App\OracleActAllocationDetails;
|
|
|
+use App\OracleBasCustomer;
|
|
|
use App\OracleDOCASNHeader;
|
|
|
use App\OracleDOCOrderHeader;
|
|
|
use App\Order;
|
|
|
@@ -21,7 +21,6 @@ use App\OwnerFeeDetail;
|
|
|
use App\OwnerFeeDetailLogistic;
|
|
|
use App\OwnerFeeExpress;
|
|
|
use App\OwnerReport;
|
|
|
-use App\Province;
|
|
|
use App\RejectedBill;
|
|
|
use App\Services\common\BatchUpdateService;
|
|
|
use App\Services\common\DataHandlerService;
|
|
|
@@ -749,6 +748,7 @@ SQL;
|
|
|
$shop_names[$key] = $value;
|
|
|
}
|
|
|
}
|
|
|
+ $baseCustomers = OracleBasCustomer::query()->whereIn('customerid',$owner_codes)->get();
|
|
|
|
|
|
$owners = $ownerService->getOwnerByCodes($owner_codes);
|
|
|
$logistics = $logisticService->getLogisticByCodes($logistic_codes);
|
|
|
@@ -760,9 +760,9 @@ SQL;
|
|
|
|
|
|
$orders = $this->getByWmsOrders($orderHeaders);
|
|
|
|
|
|
- $created_params = $this->getCreateOrderModelsByWMSOrderHeaders($orderHeaders, $orders, $warehouses, $owners, $logistics, $shops, $batches); //3s
|
|
|
+ $created_params = $this->getCreateOrderModelsByWMSOrderHeaders($orderHeaders, $orders, $warehouses, $owners, $logistics, $shops, $batches,$baseCustomers); //3s
|
|
|
|
|
|
- $update_order = $this->getUpdateOrderModelByWMSOrderHeaders($orderHeaders, $orders, $warehouses, $owners, $logistics, $shops, $batches);
|
|
|
+ $update_order = $this->getUpdateOrderModelByWMSOrderHeaders($orderHeaders, $orders, $warehouses, $owners, $logistics, $shops, $batches,$baseCustomers);
|
|
|
|
|
|
unset($owners, $logistics, $shops, $warehouses, $batches);
|
|
|
|
|
|
@@ -799,7 +799,7 @@ SQL;
|
|
|
unset($update_params);
|
|
|
}
|
|
|
|
|
|
- public function getCreateOrderModelsByWMSOrderHeaders(&$orderHeaders, &$orders, &$warehouses, &$owners, &$logistics, &$shops, &$batches)
|
|
|
+ public function getCreateOrderModelsByWMSOrderHeaders(&$orderHeaders, &$orders, &$warehouses, &$owners, &$logistics, &$shops, &$batches,&$baseCustomers)
|
|
|
{
|
|
|
/** @var DataHandlerService $dataHandlerService */
|
|
|
$dataHandlerService = app('DataHandlerService');
|
|
|
@@ -809,19 +809,20 @@ SQL;
|
|
|
$shop_map = $dataHandlerService->dataHeader(['name', 'owner_id'], $shops);
|
|
|
$order_map = $dataHandlerService->dataHeader(['code'], $orders);
|
|
|
$batch_map = $dataHandlerService->dataHeader(['code'], $batches);
|
|
|
+ $baseCustomerMap = $dataHandlerService->dataHeader(['customerid'], $baseCustomers);
|
|
|
$inner_params = [];
|
|
|
$date = (string)Carbon::now();
|
|
|
foreach ($orderHeaders as $orderHeader) {
|
|
|
$order_no = $orderHeader->orderno;
|
|
|
$order = $dataHandlerService->getKeyValue(['code' => $order_no], $order_map);
|
|
|
if (isset($order)) continue;
|
|
|
- $order_model = $this->getCreateOrderModels($orderHeader, $warehouse_map, $owner_map, $logistic_map, $shop_map, $batch_map, $date);
|
|
|
+ $order_model = $this->getCreateOrderModels($orderHeader, $warehouse_map, $owner_map, $logistic_map, $shop_map, $batch_map, $date,$baseCustomerMap);
|
|
|
$inner_params[] = $order_model;
|
|
|
}
|
|
|
return $inner_params;
|
|
|
}
|
|
|
|
|
|
- public function getUpdateOrderModelByWMSOrderHeaders(&$orderHeaders, &$orders, &$warehouses, &$owners, &$logistics, &$shops, &$batches)
|
|
|
+ public function getUpdateOrderModelByWMSOrderHeaders(&$orderHeaders, &$orders, &$warehouses, &$owners, &$logistics, &$shops, &$batches,&$baseCustomers)
|
|
|
{
|
|
|
/**
|
|
|
* @var DataHandlerService $dataHandlerService
|
|
|
@@ -834,12 +835,13 @@ SQL;
|
|
|
$logistic_map = $dataHandlerService->dataHeader(['code'],$logistics->filter());
|
|
|
$shop_map = $dataHandlerService->dataHeader(['name', 'owner_id'], $shops->filter());
|
|
|
$batch_map = $dataHandlerService->dataHeader(['code'], $batches->filter());
|
|
|
+ $baseCustomerMap = $dataHandlerService->dataHeader(['customerid'], $baseCustomers);
|
|
|
$collect = collect();
|
|
|
$date = (string)Carbon::now();
|
|
|
foreach ($orders as $order) {
|
|
|
$orderHeader = $dataHandlerService->getKeyValue(['orderno' => $order->code], $orderHeader_map);
|
|
|
if (!$orderHeader) continue;
|
|
|
- $order_model = $this->getCreateOrderModels($orderHeader, $warehouse_map, $owner_map, $logistic_map, $shop_map, $batch_map, $date);
|
|
|
+ $order_model = $this->getCreateOrderModels($orderHeader, $warehouse_map, $owner_map, $logistic_map, $shop_map, $batch_map, $date,$baseCustomerMap);
|
|
|
if (!$order->isEquals($order_model)) {
|
|
|
$order->assignValueByOrder($order_model);
|
|
|
$collect->push($order);
|
|
|
@@ -848,7 +850,7 @@ SQL;
|
|
|
return $collect;
|
|
|
}
|
|
|
|
|
|
- public function getCreateOrderModels(&$orderHeader, &$warehouse_map, &$owner_map, &$logistic_map, &$shop_map, &$batch_map, $date)
|
|
|
+ public function getCreateOrderModels(&$orderHeader, &$warehouse_map, &$owner_map, &$logistic_map, &$shop_map, &$batch_map, $date,&$baseCustomerMap)
|
|
|
{
|
|
|
/** @var DataHandlerService $dataHandlerService */
|
|
|
$dataHandlerService = app('DataHandlerService');
|
|
|
@@ -857,6 +859,12 @@ SQL;
|
|
|
$logistic = $dataHandlerService->getKeyValue(['code' => $orderHeader->userdefine1], $logistic_map);
|
|
|
$batch = $dataHandlerService->getKeyValue(['code' => $orderHeader->waveno], $batch_map);
|
|
|
$shop['id'] = null;
|
|
|
+ $warehouses = Warehouse::all();
|
|
|
+ $baseCustomer = $dataHandlerService->getKeyValue(['customerid' => $owner->code],$baseCustomerMap);
|
|
|
+ $warehouse_1 = $this->getWareHouseBy($baseCustomer,$warehouses);
|
|
|
+ if(!is_null($warehouse_1)){
|
|
|
+ $warehouse = $warehouse_1;
|
|
|
+ }
|
|
|
if ($orderHeader->issuepartyname != null && $orderHeader->issuepartyname != '') {
|
|
|
// 商品换行符处理
|
|
|
$shop_name = str_replace("\n", ' ', $orderHeader['issuepartyname']);
|
|
|
@@ -886,6 +894,24 @@ SQL;
|
|
|
];
|
|
|
}
|
|
|
|
|
|
+ public function getWareHouseBy($baseCustomer,&$warehouses){
|
|
|
+ $notes = $baseCustomer['notes'] ?? '';
|
|
|
+ if(str_contains($notes,'九干')){
|
|
|
+ return $warehouses->filter(function($item){
|
|
|
+ return str_contains($item->name,'九干');
|
|
|
+ })->first();
|
|
|
+ } else if(str_contains($notes,'嘉定')){
|
|
|
+ return $warehouses->filter(function($item){
|
|
|
+ return str_contains($item->name,'嘉定');
|
|
|
+ })->first();
|
|
|
+ } else if(str_contains($notes,'泗砖')){
|
|
|
+ return $warehouses->filter(function($item){
|
|
|
+ return str_contains($item->name,'泗砖');
|
|
|
+ })->first();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
public function createOrFindOrder($orderHeader)
|
|
|
{
|
|
|
$order = Order::query()->where('code', $orderHeader->orderno)->first();
|