| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <?php
- namespace App\Http\Controllers;
- use App\Batch;
- use App\CommodityBarcode;
- use App\Components\AsyncResponse;
- use App\Components\Database;
- use App\Components\ErrorPush;
- use App\Exceptions\Exception;
- use App\OracleDOCWaveDetails;
- use App\Order;
- use App\OrderBin;
- use App\OrderCommodity;
- use App\Rejected;
- use App\RejectedBill;
- use App\RejectedBillItem;
- use App\Services\LogService;
- use App\Services\OracleDocAsnHerderService;
- use App\Services\OracleDOCOrderHeaderService;
- use App\Services\OrderCommodityService;
- use App\Services\OrderService;
- use App\Services\OwnerService;
- use App\Services\RejectedBillService;
- use App\Services\StoreItemService;
- use App\Services\StoreService;
- use App\Services\WaveService;
- use App\Services\WaybillService;
- use App\SortingStation;
- use App\Store;
- use App\User;
- use App\UserToken;
- use App\ValueStore;
- use App\Warehouse;
- use App\Waybill;
- use Carbon\Carbon;
- use Illuminate\Database\Eloquent\Collection;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Hash;
- use Illuminate\Support\Facades\Http;
- use Illuminate\Support\Str;
- use Zttp\Zttp;
- class TestController extends Controller
- {
- use AsyncResponse, ErrorPush, Database;
- const ASNREFERENCE_2 = 'ASNREFERENCE2';
- public function __construct()
- {
- $this->data["active_test"] = "active";
- }
- public function method(Request $request, $method)
- {
- try {
- return call_user_func([$this, $method], $request);
- }catch (\BadMethodCallException $e){
- dd("方法不存在");
- }
- }
- public function test(Request $request)
- {
- $waybill = Waybill::query()->where("waybill_number","BSZX2209079840")->first();
- $json="
- {
- \"request\": [
- {
- \"OrderNo\": \"{$waybill['wms_bill_number']}\",
- \"DELIVERYNO\": \"{$waybill['waybill_number']}\"
- }
- ]
- }
- ";
- $sendingJson = json_decode($json,true);
- $url=url(config('api.flux.waybill.new'));
- try{
- $response = Zttp::post($url, $sendingJson);
- }catch (\Exception $exception){
- dd('CURL请求异常:'.$exception->getMessage());
- return false;
- }
- $responseJson = $response->json();
- if(!$responseJson||!isset($responseJson['Response'])||!$responseJson['Response']['return']['returnFlag']=='1'){
- dd("向WMS提交运单失败!!SO单号:{$waybill['wms_bill_number']}。提交:{$json},返回:{$response->body()}, URL:{$url}");
- return false;
- }
- Controller::logS(__METHOD__,''.__FUNCTION__,"向WMS提交运单成功,SO单号:{$waybill['wms_bill_number']}。返回:{$response->body()}",0);
- return true;
- }
- public function test1()
- {
- /** @var OracleDocAsnHerderService $oracleDocAsnHerderService */
- $oracleDocAsnHerderService = app(OracleDocAsnHerderService::class);
- $asnHerders = $oracleDocAsnHerderService->getWmsAsnOnStartDateEdit('2022-10-26 20:30:00');
- if (count($asnHerders)<1) return;
- $this->createStore($asnHerders,"update");
- }
- public function createStore($asnHerders,$isUpdate=null)
- {
- if (!$asnHerders) return null;
- /** @var OwnerService $ownerService */
- $ownerService = app(OwnerService::class);
- $owner_codes = [];
- $warehouse_codes = [];
- foreach ($asnHerders as $asnHerder) {
- if (!empty($asnHerder['customerid']))
- $owner_codes[$asnHerder['customerid']] = $asnHerder['customerid'];
- if (!empty($asnHerder['warehouseid']))
- $warehouse_codes[$asnHerder['warehouseid']] = $asnHerder['warehouseid'];
- }
- $owners = $ownerService->getOwnerByCodes($owner_codes);
- $warehouses = Warehouse::query()->get();
- $owners_code_map=[];
- foreach ($owners as $owner) {
- $owners_code_map[$owner->code] = $owner;
- }
- $warehouses_code_map=[];
- foreach ($warehouses as $warehouse) {
- $warehouses_code_map[$warehouse->code] = $warehouse;
- }
- $params = $this->getParamsByAsnHeader($asnHerders, $owners_code_map, $warehouses_code_map);
- dd($params);
- if (count($params) > 0) $this->insertStore($params);
- /** @var StoreItemService $storeItemService */
- $storeItemService = app(StoreItemService::class);
- $storeItemService->storeItemCreateByWms($asnHerders);
- /** @var RejectedBillService $rejectedBillService */
- $rejectedBillService = app(RejectedBillService::class);
- $rejectedBillService->syncLoadedStatusByAsnHerder($asnHerders);
- }
- public function getParamsByAsnHeader($asnHerders, $owners_code_map, $warehouses_code_map)
- {
- $params = [];
- $stores = Store::query()->whereIn('asn_code', data_get($asnHerders, '*.asnno'))->get();
- $store_asn_code_map = [];
- foreach ($stores as $store) {
- $store_asn_code_map[$store->asn_code] = $store;
- }
- foreach ($asnHerders as $asnHerder) {
- if ($store_asn_code_map[$asnHerder->asnno] ?? false) continue;
- $owner = $owners_code_map[$asnHerder->customerid] ?? null;
- $warehouse = $warehouses_code_map[$asnHerder->warehouseid] ?? null;
- $status = null;
- $fast = null;
- if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c == '完全收货') $status = '已入库';
- if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c == '订单创建') $status = '未入库';
- if ($asnHerder->asnType && $asnHerder->asnType->codename_c == '调拨入库') $fast = '快速入库';
- $params[] = [
- 'asn_code' => $asnHerder->asnno,
- 'warehouse_id' => $warehouse->id ?? null,
- 'owner_id' => $owner->id ?? null,
- 'stored_method' => $asnHerder->asnType ? $asnHerder->asnType->codename_c : '',
- 'status' => $status ? $status : $asnHerder->asnStatus->codename_c,
- 'remark' => $asnHerder->notes ?? null,
- 'created_at' => $asnHerder->addtime ?? null,
- 'updated_at' => $asnHerder->edittime ?? null,
- 'is_fast_stored' => $fast,
- ];
- }
- return $params;
- }
- public function insertStore(array $params)
- {
- if (count($params) === 0) return;
- foreach (array_chunk($params, 1000) as $item) {
- $bool = $this->insert($item);
- if ($bool) {
- app('LogService')->log(__METHOD__, __FUNCTION__, "批量创建 store success " . count($item) . ' || ' . json_encode($item));
- } else app('LogService')->log(__METHOD__, __FUNCTION__, "批量添加 store FAILED " . ' || ' . json_encode($item));
- }
- }
- public function insert($params)
- {
- return Store::query()->insert($params);
- }
- }
|