TestController.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Authority;
  4. use App\Batch;
  5. use App\City;
  6. use App\Commodity;
  7. use App\Events\CancelOrder;
  8. use App\Logistic;
  9. use App\OracleActAllocationDetails;
  10. use App\OracleDOCOrderHeader;
  11. use App\OracleDocOrderPackingSummary;
  12. use App\OracleDOCWaveDetails;
  13. use App\RejectedBillItem;
  14. use App\Services\InventoryCompareService;
  15. use App\User;
  16. use Carbon\Carbon;
  17. use Illuminate\Support\Facades\Cache;
  18. use Illuminate\Http\Request;
  19. use Illuminate\Support\Facades\DB;
  20. use Zttp\Zttp;
  21. class TestController extends Controller
  22. {
  23. private $data = [];
  24. public function __construct()
  25. {
  26. $this->data["active_test"] = "active";
  27. }
  28. public function method(Request $request, $method)
  29. {
  30. return call_user_func([$this, $method], $request);
  31. }
  32. function packageFromLog(Request $request)
  33. { //x $packagesBatch=Package::where('batch_number',$batch_number)->first();
  34. ini_set('max_execution_time', 2500);
  35. ini_set('memory_limit', '1526M');
  36. $uploaded = 0;
  37. $count = DB::table('logs')->where('operation', 'like', "%PackageController::new_%")
  38. ->where('created_at', '>', "2020-06-08 15:46:00")
  39. ->where('created_at', '<', "2020-06-08 15:47:00")
  40. ->where('type', "request_new_")
  41. ->count();
  42. $requests = DB::table('logs')->where('operation', 'like', "%PackageController::new_%")
  43. ->where('created_at', '>', "2020-06-08 15:46:00")
  44. ->where('created_at', '<', "2020-06-08 15:47:00")
  45. ->where('type', "request_new_")
  46. ->get();
  47. $requests->each(function ($request) use (&$uploaded) {
  48. $requestJson = json_decode($request->description, true);
  49. $response = Zttp::withHeaders(['content-type' => 'application/json',
  50. ])->post('https://was.baoshi56.com/api/thirdPart/flux/package/new',
  51. $requestJson
  52. );
  53. if ($response->json() && $response->json()['response'] && $response->json()['response']['flag'] == 'Y')
  54. $uploaded += 1;
  55. });
  56. dd($uploaded . '/' . $count);
  57. }
  58. function t2(Request $request)
  59. { //x $packagesBatch=Package::where('batch_number',$batch_number)->first();
  60. $inventoryCompareService = new InventoryCompareService();
  61. echo ($inventoryCompareService)->getCreatingMissionCode('安桥主品');
  62. echo ($inventoryCompareService)->getCreatingMissionCode('安桥主品');
  63. echo ($inventoryCompareService)->getCreatingMissionCode('安桥主品');
  64. echo ($inventoryCompareService)->getCreatingMissionCode('安桥主品');
  65. }
  66. function setCache(Request $request)
  67. {
  68. $today = now();
  69. Cache::put('storedTest', $today);
  70. return "cacheing:'$today'<script>localStorage.setItem('storedTest','{$today}')</script>";
  71. }
  72. function getCache(Request $request)
  73. {
  74. $cache=Cache::get('storedTest');
  75. return "cacheing get:'$cache'<script>document.write('<br>localStorage:'+localStorage.getItem('storedTest'))</script>";
  76. }
  77. function t1(Request $request)
  78. {
  79. {
  80. $username=config('database.connections.oracle.username');
  81. $password=config('database.connections.oracle.password');
  82. $host=config('database.connections.oracle.host');
  83. $service_name=config('database.connections.oracle.service_name');
  84. $conn=oci_connect($username,$password,$host.'/'.$service_name); //连接oracle数据库
  85. $IN_WarehouseID='';
  86. $IN_TraceID='' ;
  87. $IN_WavenNo='';
  88. $IN_UserID='';
  89. $IN_Language='';
  90. $OUT_Return_Code='';
  91. $sql_sp="begin SPCUS_EDI_WCS001(:IN_WarehouseID,:IN_Process_Action_C,:IN_Process_By_C,
  92. :IN_WaveNO_C,:IN_OrderNO_C,:IN_OrderLineNO_C,:IN_AllocationDetailsID,:IN_Language,:IN_UserID,:OUT_Return_Code); end;";
  93. $stmt = oci_parse($conn, $sql_sp);
  94. oci_bind_by_name($stmt,':IN_Warehouse',$IN_WarehouseID);
  95. oci_bind_by_name($stmt,':IN_TraceID',$IN_TraceID);
  96. oci_bind_by_name($stmt,':IN_WavenNo',$IN_WavenNo);
  97. oci_bind_by_name($stmt,':IN_Language',$IN_Language);
  98. oci_bind_by_name($stmt,':IN_UserID',$IN_UserID);
  99. oci_bind_by_name($stmt,':OUT_Return_Code',$OUT_Return_Code);
  100. return oci_execute($stmt);
  101. }
  102. }
  103. function packageT(Request $request)
  104. {
  105. $package=Package::where('created_at','<','2020-07-08')->whereNotNull('logistic_number')->first();
  106. $package->fetchLogistic();
  107. }
  108. function injectJS(Request $request)
  109. {
  110. $items = RejectedBillItem::whereHas('rejectedBill', function ($query) {
  111. return $query->where('id_owner', 2);
  112. })->where('created_at', '>', '2019-12-23 18:11:00')->where('created_at', '<', '2019-12-24 11:25:00')->get();
  113. (new RejectedBillItemController())->collectionsToPackConfirm($items);
  114. }
  115. public function tj2(Request $request)
  116. {
  117. $numbersesOfBatch=OracleDOCWaveDetails::select('picktotraceid as logistic_number','act_allocation_details.orderno')->where('doc_wave_details.waveno','W190630000042')
  118. ->leftJoin('act_allocation_details','doc_wave_details.orderno','act_allocation_details.orderno')->get();
  119. $oneIdxAsrsReceive=OracleDocOrderPackingSummary::where('traceid',$numbersesOfBatch[0]['logistic_number'])->first();
  120. if(!$oneIdxAsrsReceive){
  121. $inserts='';
  122. $values=[];
  123. foreach($numbersesOfBatch as $numbers){
  124. $inserts .= " into doc_order_packing_summary (traceid,orderno,grossweight,addwho,addtime,editwho,edittime)values(?,?,?,?,?,?,?) ";
  125. $values[] = $numbers['logistic_number']??'';
  126. $values[] = $numbers['orderno']??'';
  127. $values[] = 12;
  128. $values[] = 'WAS';
  129. $values[] = Carbon::now();
  130. $values[] = 'WAS';
  131. $values[] = Carbon::now();
  132. }
  133. DB::connection('oracle')->insert("insert all {$inserts} select * from dual",$values);
  134. }else{
  135. $logisticNumbers=$numbersesOfBatch->map(function($numbers){return $numbers['logistic_number'];});
  136. OracleDocOrderPackingSummary::whereIn('traceid',$logisticNumbers)->update(['grossweight'=>32]);
  137. }
  138. }
  139. public function delme()
  140. {
  141. $fields = [
  142. 'doc_order_header.userdefine1',
  143. 'doc_order_header.userdefine2',
  144. 'doc_order_header.SOReference5',
  145. 'doc_order_header.waveno',
  146. 'doc_order_header.orderno',
  147. 'doc_order_header.customerid',
  148. 'doc_order_header.Consigneename'
  149. ];
  150. if(''){
  151. $resultOracleObj=OracleDOCOrderHeader::select($fields)->where('orderno','SO200603004708');
  152. }else{
  153. $resultOracleObj=OracleActAllocationDetails::select($fields);
  154. $resultOracleObj->where('picktotraceid','546152742096');
  155. $resultOracleObj->leftJoin('DOC_Order_Header','act_allocation_details.orderno','doc_order_header.orderno');
  156. }
  157. $_temOracleInfo=$resultOracleObj->first();
  158. dd($_temOracleInfo);
  159. }
  160. public function excelIt()
  161. {
  162. $excel = new ExcelController();
  163. return $excel->makeExcel();
  164. }
  165. public function featureIt()
  166. {
  167. LogisticNumberFeatureController::loadRecentRejectedsToFeatures(5, 2500);
  168. }
  169. public function newSku()
  170. {
  171. $url = 'http://bswcs/api/sorting/flux/newSku';
  172. $response = Zttp::post($url, [
  173. 'request' => [
  174. [
  175. "SKU" => "1234567890",
  176. "NAME" => "瑞士莲**巧克力",
  177. "Alternate_SKU1" => "1122334455",
  178. "GrossWeight" => "1.2",
  179. "Cube" => "0.75",
  180. "SKULength" => "0.25",
  181. "SKUWidth" => "0.15",
  182. "SKUHigh" => "0.05"
  183. ],
  184. [
  185. "SKU" => "1234567892",
  186. "NAME" => "跳跳饼",
  187. "Alternate_SKU1" => "",
  188. "GrossWeight" => "1.3",
  189. "Cube" => "0.75",
  190. "SKULength" => "0.25",
  191. "SKUWidth" => "0.15",
  192. "SKUHigh" => "0.25"
  193. ],
  194. ]
  195. ]);
  196. return $response->json();
  197. }
  198. public function changePackage()
  199. {
  200. $packages = Package::where('delivery_number', '<>', null)->where('logistic_id', null)->get();
  201. dd($packages);
  202. $packages = Package::whereRaw('delivery_number IS NOT NULL AND logistic_id IS NULL')->get();
  203. $logistics = Logistic::get();
  204. $packages->each(function ($package) use ($logistics) {
  205. $logistics->each(function ($logistic) use ($package) {
  206. if ($package->WMSReflectPackage->CarrierID == $logistic->code) {
  207. $package->logistic_id = $logistic->id;
  208. return;
  209. }
  210. });
  211. });
  212. return "OK";
  213. }
  214. public function tNull()
  215. {
  216. User::query()->get()->toArray();
  217. User::query()->get()->toJson();
  218. }
  219. public function deletePackageAuthority()
  220. {
  221. $authorities = Authority::where('name', 'like', '%包裹信息%')->get();
  222. $authorities->each(function ($authority) {
  223. $authority->delete();
  224. });
  225. }
  226. function test(){
  227. $actAllocationDetail = OracleActAllocationDetails::query()->first();
  228. $actAllocationDetail->load(['oracleDocOrderHeader'=>function($query){
  229. $query->with('oracleBASCustomer','oracleBASCode');
  230. }]);
  231. dd($actAllocationDetail);
  232. }
  233. /*1*/
  234. function socket(Request $request)
  235. {/**/
  236. $a = microtime(true);
  237. error_reporting(E_ALL);
  238. set_time_limit(0);
  239. echo "<h2>TCP/IP Connection</h2>\n";
  240. $port = 8091;
  241. $ip = "127.0.0.1";
  242. /*
  243. +-------------------------------
  244. * @socket连接整个过程
  245. +-------------------------------
  246. * @socket_create
  247. * @socket_connect
  248. * @socket_write
  249. * @socket_read
  250. * @socket_close
  251. +--------------------------------
  252. */
  253. $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  254. if ($socket < 0) {
  255. echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";
  256. }else {
  257. echo "OK.\n";
  258. }
  259. echo "试图连接 '$ip' 端口 '$port'...\n";
  260. $result = socket_connect($socket, $ip, $port);
  261. if ($result < 0) {
  262. echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
  263. }else {
  264. echo "连接OK\n";
  265. }
  266. $b = microtime(true);
  267. echo "连接耗时:".($b-$a)."\n";
  268. $content = Commodity::query()->limit(200)->get();
  269. $c= microtime(true);
  270. echo "查询数据耗时:".($c-$b)."\n";
  271. $content->toArray();
  272. /*$chunks=$content->chunk(100);
  273. foreach ($chunks as $chunk){
  274. $chunk->toJson();
  275. var_dump(mb_strlen($chunk->toJson()));
  276. //socket_write($socket, $chunk->toJson(), mb_strlen($chunk->toJson()));
  277. }*/
  278. $d= microtime(true);
  279. echo "发送数据耗时:".($d-$c)."\n";
  280. socket_close($socket);
  281. $e= microtime(true);
  282. echo "共耗时:".($e-$a)."\n";
  283. }
  284. }