TestController.php 9.5 KB

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