| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- namespace App\Services;
- use App\OracleBasCode;
- use App\StoreStatus;
- use Carbon\Carbon;
- Class StoreStatusService
- {
- public function getByWms($asnHerders)
- {
- $statuses = array_unique(data_get($asnHerders, '*.asnstatus'));
- $statuses = array_diff($statuses, [null, '', '*']);
- $storeStatuses = StoreStatus::query()->whereIn('code', $statuses)->get();
- if ($storeStatuses->count() < count($statuses)) {
- $statuses = array_diff($statuses, data_get($storeStatuses, '*.code'));
- $storeStatus_list = $this->createStoreStatusByWms($statuses);
- $storeStatuses=$storeStatuses->concat($storeStatus_list);
- }
- return $storeStatuses;
- }
- public function createStoreStatusByWms($codes){
- if(!$codes) {return [];}
- $basCodes = OracleBasCode::query()
- ->where('codeid','ASN_STS')
- ->whereIn('code', $codes)
- ->get();
- $insert_params = [];
- $created_at = Carbon::now()->format('Y-m-d H:i:s');
- foreach ($basCodes as $item) {
- $insert_params[] = [
- 'code' => $item->code,
- 'name' => $item->codename_c,
- 'created_at' => $created_at,
- ];
- }
- try {
- if (count($insert_params) > 0) {
- $this->insert($insert_params);
- LogService::log(__METHOD__, __FUNCTION__, '批量创建 storeStatus success' . count($insert_params) . json_encode($insert_params) );
- }
- } catch (\Exception $e) {
- LogService::log(__METHOD__, __FUNCTION__, '批量创建 storeStatus error' . json_encode($insert_params) . '||' . $e->getMessage() . '||' . $e->getTraceAsString());
- } finally {
- return StoreStatus::query()->whereIn('code', $codes)->get();
- }
- }
- public function insert($fillables){
- return StoreStatus::query()->insert($fillables);
- }
- }
|