TestController.php 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Authority;
  4. use App\Batch;
  5. use App\Events\CancelOrder;
  6. use App\Events\WmsReceiveNewEvent;
  7. use App\Http\Controllers\Api\thirdPart\flux\WaybillController;
  8. use App\Logistic;
  9. use App\Order;
  10. use App\Package;
  11. use App\Rejected;
  12. use App\RejectedBill;
  13. use App\RejectedBillItem;
  14. use App\Unit;
  15. use App\User;
  16. use App\UserToken;
  17. use App\UserWorkgroup;
  18. use App\Waybill;
  19. use App\OraccleBasCustomer;
  20. use App\WMSReflectReceive;
  21. use Carbon\Carbon;
  22. use Endroid\QrCode\Response\QrCodeResponse;
  23. use Illuminate\Http\Request;
  24. use Illuminate\Support\Facades\DB;
  25. use function PHPSTORM_META\map;
  26. use Zttp\Zttp;
  27. class TestController extends Controller
  28. {
  29. private $data=[];
  30. public function __construct()
  31. {
  32. $this->data["active_test"]="active";
  33. }
  34. public function method(Request $request,$method)
  35. {
  36. return call_user_func([$this, $method],$request);
  37. }
  38. function t1(Request $request){ //x $packagesBatch=Package::where('batch_number',$batch_number)->first();
  39. $waybills=Waybill::all();
  40. $controller=(new WaybillController());
  41. $waybills->each(function ($waybill)use($controller){
  42. $controller->accomplishToWMS($waybill);
  43. });
  44. }
  45. function tj(Request $request){
  46. $a=11;
  47. try{
  48. $b=22;
  49. }catch (\Exception $exception){
  50. $this->log(__METHOD__,'Exception_'.__FUNCTION__,'请求异常:'.$exception->getMessage(),null);
  51. return ['result'=>'false'];
  52. }
  53. echo $a+$b;
  54. }
  55. function injectJS(Request $request){
  56. $items=RejectedBillItem::whereHas('rejectedBill',function($query){
  57. return $query->where('id_owner',2);
  58. })->where('created_at','>','2019-12-23 18:11:00')->where('created_at','<','2019-12-24 11:25:00')->get();
  59. (new RejectedBillItemController())->collectionsToPackConfirm($items);
  60. }
  61. public function tj2(Request $request)
  62. {
  63. $rejected = Rejected::find(10);
  64. $rejectedJianshang=new \App\Http\Controllers\api\jianshang\RejectedController();
  65. dd( $rejectedJianshang->sendRejected($rejected));
  66. }
  67. public function excelIt()
  68. {
  69. $excel=new ExcelController();
  70. return $excel->makeExcel();
  71. }
  72. public function featureIt()
  73. {
  74. LogisticNumberFeatureController::loadRecentRejectedsToFeatures(5,2500);
  75. }
  76. public function newSku()
  77. {
  78. $url='http://bswcs/api/sorting/flux/newSku';
  79. $response = Zttp::post($url, [
  80. 'request'=>[
  81. [
  82. "SKU"=> "1234567890",
  83. "NAME"=> "瑞士莲**巧克力",
  84. "Alternate_SKU1"=> "1122334455",
  85. "GrossWeight"=> "1.2",
  86. "Cube"=> "0.75",
  87. "SKULength"=> "0.25",
  88. "SKUWidth"=> "0.15",
  89. "SKUHigh"=> "0.05"
  90. ],
  91. [
  92. "SKU"=> "1234567892",
  93. "NAME"=> "跳跳饼",
  94. "Alternate_SKU1"=> "",
  95. "GrossWeight"=> "1.3",
  96. "Cube"=> "0.75",
  97. "SKULength"=> "0.25",
  98. "SKUWidth"=> "0.15",
  99. "SKUHigh"=> "0.25"
  100. ],
  101. ]
  102. ]);
  103. return $response->json();
  104. }
  105. public function changePackage(){
  106. $packages=Package::where('delivery_number','<>',null)->where('logistic_id',null)->get();
  107. dd($packages);
  108. $packages=Package::whereRaw('delivery_number IS NOT NULL AND logistic_id IS NULL')->get();
  109. $logistics=Logistic::get();
  110. $packages->each(function ($package)use($logistics){
  111. $logistics->each(function ($logistic)use($package){
  112. if ($package->WMSReflectPackage->CarrierID==$logistic->code){
  113. $package->logistic_id=$logistic->id;
  114. return;
  115. }
  116. });
  117. });
  118. return "OK";
  119. }
  120. public function tNull(){
  121. }
  122. public function deletePackageAuthority()
  123. {
  124. $authorities=Authority::where('name','like','%包裹信息%')->get();
  125. $authorities->each(function ($authority){
  126. $authority->delete();
  127. });
  128. }
  129. public function test1(){
  130. $s="IXCM";
  131. $arr=str_split($s);
  132. $temp=["I"=>1,"V"=>5,"X"=>10,"L"=>50,"C"=>100,"D"=>500,"M"=>1000];
  133. $result=0;
  134. for($i=0;$i<count($arr);$i++){
  135. if($i!=count($arr)-1){
  136. if($arr[$i]=="I"){
  137. if($arr[$i+1]=="V" || $arr[$i+1]=="X"){
  138. $result-=$temp["I"];
  139. continue;
  140. }
  141. }
  142. if($arr[$i]=="X"){
  143. if($arr[$i+1]=="L" || $arr[$i+1]=="C"){
  144. if($i>0&&$arr[$i-1]=="I"){$result+=$temp[$arr[$i]];continue;}
  145. $result-=$temp["X"];
  146. continue;
  147. }
  148. }
  149. if($arr[$i]=="C"){
  150. if($arr[$i+1]=="D" || $arr[$i+1]=="M"){
  151. if($i>0&&$arr[$i-1]=="X"){
  152. if ($i>1&&$arr[$i-2]=="I"){
  153. $result-=$temp["C"];
  154. continue;
  155. }
  156. $result+=$temp[$arr[$i]];continue;
  157. }
  158. $result-=$temp["C"];
  159. continue;
  160. }
  161. }
  162. }
  163. $result+=$temp[$arr[$i]];
  164. }
  165. if($result<1 || $result>3999)$result=0;
  166. return $result;
  167. }
  168. public function test2(){
  169. $s="VI";
  170. $arr=str_split($s);
  171. $temp=["I"=>1,"V"=>5,"X"=>10,"L"=>50,"C"=>100,"D"=>500,"M"=>1000];
  172. $result=0;
  173. $sign=false;
  174. for($i=0;$i<count($arr);$i++){
  175. if($i!=count($arr)-1){
  176. if($arr[$i]=="I"){
  177. if($arr[$i+1]=="V" || $arr[$i+1]=="X"){
  178. $result-=$temp["I"];
  179. $sign=true;
  180. continue;
  181. }
  182. }
  183. if($arr[$i]=="X"){
  184. if($arr[$i+1]=="L" || $arr[$i+1]=="C"){
  185. if($sign){$result+=$temp[$arr[$i]];$sign=false;continue;}
  186. $result-=$temp["X"];
  187. $sign=true;
  188. continue;
  189. }
  190. }
  191. if($arr[$i]=="C"){
  192. if($arr[$i+1]=="D" || $arr[$i+1]=="M"){
  193. if($sign){
  194. $sign=false;
  195. $result+=$temp[$arr[$i]];continue;
  196. }
  197. $result-=$temp["C"];
  198. $sign=true;
  199. continue;
  200. }
  201. }
  202. }
  203. $result+=$temp[$arr[$i]];
  204. if ($sign)$sign=false;
  205. }
  206. if($result<1 || $result>3999)$result=0;
  207. return $result;
  208. }
  209. public function test3()
  210. {
  211. $strs=["auibh","aopk","bikon"];
  212. if (!$strs[0])return "";
  213. $len=strlen($strs[0]);
  214. for ($i=1;$i<count($strs);$i++){
  215. if ($len<1)break;
  216. for ($j=0;$j<$len;$j++){
  217. if ($strs[$i][$j]!=$strs[0][$j]){
  218. if ($j==0)return "";
  219. break;
  220. }
  221. $sum=$j+1;
  222. }
  223. $len=isset($sum)?$sum:0;
  224. }
  225. return substr($strs[0],0,$len);
  226. }
  227. public function test4(){
  228. $s="{([{()()[]{}}])[{()()[}]{}}](){[]}";
  229. $map = [
  230. ")" => "(",
  231. "}" => "{",
  232. "]" => "[",
  233. ];
  234. $len = strlen($s);
  235. $stack = [];
  236. if ($len%2!=0)dd(false);
  237. //s中出现map的key则弹出,没有出现则入栈
  238. for ($i =0; $i<$len; $i++) {
  239. var_dump("data:".$s[$i]);
  240. if (isset($map[$s[$i]])){
  241. //s中出现map的key:如果能找到对应的map的值 (,{,[ 则说明有配对,则弹出
  242. if (isset($stack) && $stack[0] == $map[$s[$i]]) {
  243. array_shift($stack);
  244. } else { //仅找到后面的一部分,说明是不匹配的
  245. dd(false);
  246. }
  247. var_dump("value1:".$map[$s[$i]]);
  248. var_dump($stack);
  249. } else {
  250. array_unshift($stack, $s[$i]);
  251. var_dump("value2:".$s[$i]);
  252. var_dump($stack);
  253. }
  254. }
  255. if (count($stack) > 0) {
  256. dd(false);
  257. }
  258. dd(true);
  259. //利用栈的先进后出 一个正确的括号组对应都为1对1或N对N
  260. // 先进后出“([{”入栈,")]}"出栈,轮询到出栈元素去映射栈顶,符合出栈,不符合直接返回
  261. //依次轮询 如果映射正确那么最后栈为空栈 否则返回false
  262. /*
  263. $r=[];
  264. $sTemp=["("=>1,"["=>2,"{"=>3,")"=>-1,"]"=>-2,"}"=>-3];
  265. for ($i=0;$i<strlen($s);$i++){
  266. if ($i!=strlen($s)-1){
  267. if (($sTemp[$s[$i]]+$sTemp[$s[$i+1]])==0){
  268. $i++;
  269. var_dump($s[$i],$i);
  270. continue;
  271. }
  272. }
  273. array_push($r,$sTemp[$s[$i]]);
  274. }
  275. $sum=count($r);
  276. if ($sum==0)return "a";
  277. if ($sum%2!=0)return "b";
  278. $svg=$sum/2;
  279. for ($i=0;$i<$svg;$i++){
  280. if ($r[$i]>0&&$r[$i]+$r[$sum-1-$i]!=0)return "b";
  281. }
  282. return "a";*/
  283. }
  284. function test5(){
  285. $x=10;
  286. $s=0;
  287. if ($x<0 || ($x%10 == 0 && $x!=0))dd(false);
  288. while($x>$s){
  289. $s=$s*10+($x%10);
  290. $x=intval($x/10);
  291. }
  292. dd($x==$s || $x==intval($s/10));
  293. }
  294. }