|
|
@@ -28,6 +28,25 @@ use Illuminate\Support\Facades\Redis;
|
|
|
|
|
|
class OrderService
|
|
|
{
|
|
|
+ /**
|
|
|
+ * @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService
|
|
|
+ * @var OrderPackageService $packageService
|
|
|
+ * @var OrderCommodityService $orderCommodityService
|
|
|
+ * @var BatchService $batchService
|
|
|
+ */
|
|
|
+ private $oracleDOCOrderHeaderService;
|
|
|
+ private $packageService;
|
|
|
+ private $orderCommodityService;
|
|
|
+ private $batchService;
|
|
|
+
|
|
|
+ public function __construct()
|
|
|
+ {
|
|
|
+ $this->oracleDOCOrderHeaderService = app('OracleDocOrderHeaderService');
|
|
|
+ $this->packageService = app('OrderPackageService');
|
|
|
+ $this->orderCommodityService = app('OrderCommodityService');
|
|
|
+ $this->batchService = app('BatchService');
|
|
|
+ }
|
|
|
+
|
|
|
public function batchUpdate($params){
|
|
|
return app(BatchUpdateService::class)->batchUpdate('orders',$params);
|
|
|
}
|
|
|
@@ -815,8 +834,10 @@ class OrderService
|
|
|
$logisticService = app("LogisticService");
|
|
|
$shopService = app('ShopService');
|
|
|
$warehouseService = app('WarehouseService');
|
|
|
- $owner_codes = [];$logistic_codes = [];$warehouse_codes = [];$shop_names = [];
|
|
|
+ $owner_codes = [];$logistic_codes = [];$warehouse_codes = [];$shop_names = [];$batch_codes = [];
|
|
|
foreach ($orderHeaders as $orderHeader) {
|
|
|
+ if(!empty($orderHeader['waveno']))
|
|
|
+ $batch_codes[$orderHeader['waveno']] = $orderHeader['waveno'];
|
|
|
if(!empty($orderHeader['customerid']))
|
|
|
$owner_codes[$orderHeader['customerid']] = $orderHeader['customerid'];
|
|
|
if(!empty($orderHeader['warehouseid']))
|
|
|
@@ -833,12 +854,13 @@ class OrderService
|
|
|
$logistics = $logisticService->getLogisticByCodes($logistic_codes);
|
|
|
$shops = $shopService->getShopByCodeMap($shop_names);
|
|
|
$warehouses = $warehouseService->getWareHouseByCodes($warehouse_codes);
|
|
|
+ $batches = $this->batchService->getBatchByCodes($batch_codes);
|
|
|
|
|
|
$orders = $this->getByWmsOrders($orderHeaders);
|
|
|
|
|
|
- $created_params = $this->getCreateOrderModelsByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops); //3s
|
|
|
+ $created_params = $this->getCreateOrderModelsByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops,$batches); //3s
|
|
|
|
|
|
- $update_order = $this->getUpdateOrderModelByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops);
|
|
|
+ $update_order = $this->getUpdateOrderModelByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops,$batches);
|
|
|
|
|
|
|
|
|
// 转换插入 3s
|
|
|
@@ -848,7 +870,7 @@ class OrderService
|
|
|
});
|
|
|
}
|
|
|
$update_params = [
|
|
|
- ['id','code','warehouse_id','owner_id','shop_id','logistic_id','consignee_name','consignee_phone','province','city','district','address','client_code','wms_status','created_at','updated_at','wms_edittime','order_type']
|
|
|
+ ['id','code','warehouse_id','owner_id','batch_id','shop_id','logistic_id','consignee_name','consignee_phone','province','city','district','address','client_code','wms_status','created_at','updated_at','wms_edittime','order_type']
|
|
|
];
|
|
|
|
|
|
$update_order->each(function($item)use(&$update_params){
|
|
|
@@ -859,7 +881,7 @@ class OrderService
|
|
|
$this->batchUpdate($update_params);
|
|
|
}
|
|
|
|
|
|
- public function getCreateOrderModelsByWMSOrderHeaders(&$orderHeaders,&$orders,&$warehouses,&$owners,&$logistics,&$shops)
|
|
|
+ public function getCreateOrderModelsByWMSOrderHeaders(&$orderHeaders,&$orders,&$warehouses,&$owners,&$logistics,&$shops,&$batches)
|
|
|
{
|
|
|
/** @var DataHandlerService $dataHandlerService */
|
|
|
$dataHandlerService = app('DataHandlerService');
|
|
|
@@ -869,20 +891,20 @@ class OrderService
|
|
|
$logistic_map = $dataHandlerService->dataHeader(['code'],$logistics);
|
|
|
$shop_map = $dataHandlerService->dataHeader(['name','owner_id'],$shops);
|
|
|
$order_map = $dataHandlerService->dataHeader(['code'],$orders);
|
|
|
-
|
|
|
+ $batch_map = $dataHandlerService->dataHeader(['code'],$batches);
|
|
|
$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,$date);
|
|
|
+ $order_model = $this->getCreateOrderModels($orderHeader,$warehouse_map,$owner_map,$logistic_map,$shop_map,$batch_map,$date);
|
|
|
$inner_params[] = $order_model;
|
|
|
}
|
|
|
return $inner_params;
|
|
|
}
|
|
|
|
|
|
- public function getUpdateOrderModelByWMSOrderHeaders(&$orderHeaders,&$orders,&$warehouses,&$owners,&$logistics,&$shops)
|
|
|
+ public function getUpdateOrderModelByWMSOrderHeaders(&$orderHeaders,&$orders,&$warehouses,&$owners,&$logistics,&$shops,&$batches)
|
|
|
{
|
|
|
/**
|
|
|
* @var DataHandlerService $dataHandlerService
|
|
|
@@ -894,12 +916,13 @@ class OrderService
|
|
|
$owner_map = $dataHandlerService->dataHeader(['code'],$owners);
|
|
|
$logistic_map = $dataHandlerService->dataHeader(['code'],$logistics);
|
|
|
$shop_map = $dataHandlerService->dataHeader(['name','owner_id'],$shops);
|
|
|
+ $batch_map = $dataHandlerService->dataHeader(['code'],$batches);
|
|
|
$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,$date);
|
|
|
+ $order_model = $this->getCreateOrderModels($orderHeader,$warehouse_map,$owner_map,$logistic_map,$shop_map,$batch_map,$date);
|
|
|
if(!$order->isEquals($order_model)){
|
|
|
$order->assignValueByOrder($order_model);
|
|
|
$collect->push($order);
|
|
|
@@ -908,19 +931,21 @@ class OrderService
|
|
|
return $collect;
|
|
|
}
|
|
|
|
|
|
- public function getCreateOrderModels(&$orderHeader,&$warehouse_map,&$owner_map,&$logistic_map,&$shop_map,$date)
|
|
|
+ public function getCreateOrderModels(&$orderHeader,&$warehouse_map,&$owner_map,&$logistic_map,&$shop_map,&$batch_map,$date)
|
|
|
{
|
|
|
/** @var DataHandlerService $dataHandlerService */
|
|
|
$dataHandlerService = app('DataHandlerService');
|
|
|
$warehouse = $dataHandlerService->getKeyValue(['code'=>$orderHeader->warehouseid],$warehouse_map);
|
|
|
$owner = $dataHandlerService->getKeyValue(['code'=>$orderHeader->customerid],$owner_map);
|
|
|
$logistic = $dataHandlerService->getKeyValue(['code'=>$orderHeader->userdefine1],$logistic_map);
|
|
|
+ $batch = $dataHandlerService->getKeyValue(['code'=>$orderHeader->waveno],$batch_map);
|
|
|
$shop['id'] = null;
|
|
|
if($orderHeader->issuepartyname != null && $orderHeader->issuepartyname != '' ){
|
|
|
$shop = $dataHandlerService->getKeyValue(['name'=>$orderHeader->issuepartyname ?? '','owner_id'=>$owner->id??''],$shop_map);
|
|
|
}
|
|
|
return [
|
|
|
'code'=>$orderHeader['orderno'],
|
|
|
+ 'batch_id' =>$batch['id'] ?? null,
|
|
|
'warehouse_id' => $warehouse['id'] ?? null,
|
|
|
'owner_id' => $owner['id'] ?? null,
|
|
|
'shop_id' => $shop['id'] ?? null,
|
|
|
@@ -1156,6 +1181,30 @@ class OrderService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function syncOrderByWmsOrderNos($orderNos)
|
|
|
+ {
|
|
|
+ if(empty($orderNos))return ;
|
|
|
+ if(count($orderNos)==0)return;
|
|
|
+ $orderHeaders = $this->oracleDOCOrderHeaderService->getOrderByOrderNos($orderNos);
|
|
|
+ $this->syncOrderByWMSOrderHeaders($orderHeaders);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function syncOrderInfoByWmsOrderNos($orderNos)
|
|
|
+ {
|
|
|
+ if(empty($orderNos))return ;
|
|
|
+ if(count($orderNos)==0)return;
|
|
|
+ $orderHeaders = $this->oracleDOCOrderHeaderService->getOrderInfoByOrderNos($orderNos);
|
|
|
+ $this->syncOrderInfoByWMSOrderHeaders($orderHeaders);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function syncOrderInfoByWMSOrderHeaders($orderHeaders){
|
|
|
+ if(empty($orderNos))return ;
|
|
|
+ if(count($orderNos)==0)return;
|
|
|
+ $this->syncOrderByWMSOrderHeaders($orderHeaders);
|
|
|
+ $this->orderCommodityService->syncOrderCommodities($orderHeaders);
|
|
|
+ $this->packageService->syncOrderPackage($orderHeaders);
|
|
|
+ }
|
|
|
+
|
|
|
public function update(array $params, array $values)
|
|
|
{
|
|
|
$query = Order::query();
|
|
|
@@ -1240,4 +1289,5 @@ class OrderService
|
|
|
]))return true;
|
|
|
return false;
|
|
|
}
|
|
|
+
|
|
|
}
|