|
|
@@ -17,19 +17,20 @@ class OracleDocWaveDetailService
|
|
|
public function clearCancelledOrder($orderHeaders)
|
|
|
{
|
|
|
if (!$orderHeaders) return;
|
|
|
- $array = array_chunk($orderHeaders,300);
|
|
|
- foreach ($array as $item) {
|
|
|
- $clearOrderNos = data_get($item, '*.orderno');
|
|
|
- $ownerNos = data_get($item, '*.ownerno');
|
|
|
+ $orderHeader_arr = $orderHeaders->chunk(300);
|
|
|
+ $orderHeader_arr->each(function ($items){
|
|
|
+ $clearOrderNos = data_get($items, '*.orderno');
|
|
|
+ $ownerNos = array_diff(data_get($items, '*.waveno'),['*']) ;
|
|
|
try {
|
|
|
OracleDOCWaveDetails::query()->whereIn('OrderNo', $clearOrderNos)->whereIn('OwnerNo', $ownerNos)->delete();
|
|
|
app('LogService')->log(__CLASS__, __METHOD__, 'Delete OracleDOCWaveDetails' . ' ' . json_encode($clearOrderNos) );
|
|
|
} catch (\Exception $e) {
|
|
|
app('LogService')->log(__CLASS__, __METHOD__,'Error clearCancelledOrder'.json_encode($clearOrderNos).json_encode($ownerNos));
|
|
|
}
|
|
|
- }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private function getSyncAt()
|
|
|
{
|
|
|
return Cache::remember('clear_cancel_order_sync_at', config('sync.clear_wave_order.cache_prefix.sync_at'), function () {
|
|
|
@@ -88,7 +89,7 @@ class OracleDocWaveDetailService
|
|
|
$restart = config('clear_wave_order.cache_prefix.restart');
|
|
|
$start_time = Carbon::now();
|
|
|
|
|
|
- if (isset($last_start_at) && empty($last_end_at) && $start_time->diffInMinutes(Carbon::parse($last_start_at)) < $this->restart) return;
|
|
|
+ if (isset($last_start_at) && empty($last_end_at) && $start_time->diffInMinutes(Carbon::parse($last_start_at)) < $restart) return;
|
|
|
if (isset($last_start_at) && isset($last_end_at)
|
|
|
&& Carbon::parse($last_end_at)->lt(Carbon::parse($last_start_at))
|
|
|
&& $start_time->diffInMinutes(Carbon::parse($last_start_at)) < $restart)
|
|
|
@@ -96,23 +97,25 @@ class OracleDocWaveDetailService
|
|
|
|
|
|
$orderHeaders = OracleDOCOrderHeader::query()
|
|
|
->selectRaw('orderno,waveno')
|
|
|
- ->where('editTime', '>=', Carbon::parse($sync_at)->subSeconds(1))
|
|
|
+ ->where('EDITTIME', '>=', Carbon::parse($sync_at)->subSeconds(1))
|
|
|
->where('ERPCANCELFLAG', 'Y')
|
|
|
->orderByDesc('editTime')->get();
|
|
|
$orderHeaderList = $orderHeaders->chunk(3000);
|
|
|
$update_at = Carbon::now();
|
|
|
- foreach ($orderHeaderList as $items) {
|
|
|
- $this->clearCancelledOrder($items);
|
|
|
- if ($orderHeaders->count() > 0) {
|
|
|
- OracleDOCOrderHeader::query()
|
|
|
- ->whereIn('orderNo', data_get($items, '*.orderno'))
|
|
|
- ->whereIn('owerno', data_get($items, '*.owerno'))
|
|
|
- ->update(['waveno' => '*','editTime' =>$update_at]);
|
|
|
- $json = json_encode($items->map(function ($orderHeader) {
|
|
|
- return ['orderno' => $orderHeader->orderno, 'waveno' => $orderHeader->waveno];
|
|
|
- }));
|
|
|
- app('LogService')->log(__CLASS__, __METHOD__, 'update OrderHeader' . ' ' . $json);
|
|
|
- $this->disposeOrderBatchId(data_get($items, '*.orderno'));
|
|
|
+ if(count($orderHeaders)>0){
|
|
|
+ foreach ($orderHeaderList as $items) {
|
|
|
+ $this->clearCancelledOrder($items);
|
|
|
+ if ($items->count() > 0) {
|
|
|
+ OracleDOCOrderHeader::query()
|
|
|
+ ->whereIn('orderNo', data_get($items, '*.orderno'))
|
|
|
+ ->whereIn('waveno', data_get($items, '*.waveno'))
|
|
|
+ ->update(['waveno' => '*','editTime' =>$update_at]);
|
|
|
+ $json = json_encode($items->map(function ($orderHeader) {
|
|
|
+ return ['orderno' => $orderHeader->orderno, 'waveno' => $orderHeader->waveno];
|
|
|
+ }));
|
|
|
+ app('LogService')->log(__CLASS__, __METHOD__, 'update OrderHeader' . ' ' . $json);
|
|
|
+ $this->disposeOrderBatchId(data_get($items, '*.orderno'));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
$end_time = (string)Carbon::now();
|