TestController.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  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\Owner;
  11. use App\Package;
  12. use App\Rejected;
  13. use App\RejectedBill;
  14. use App\RejectedBillItem;
  15. use App\Unit;
  16. use App\User;
  17. use App\UserToken;
  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. $as=Owner::get();
  131. $aMap=[];
  132. $result=[];
  133. $sign=true;
  134. if (count($as)>0 && $as[0]['type']=="登出")$sign=false;
  135. foreach($as as $a){
  136. if ($sign){
  137. if (!$aMap[$a->id."_".$a->workgroupId]&&$a->type=="登入"){
  138. $aMap[$a->id."_".$a->workgroupId]=$a;
  139. continue;
  140. }
  141. if ($a->created_at->format('H:i')<"12:00" && $aMap[$a->created_at->format('Y-m-d')]['created_at'] > $a->created_at)
  142. { $aMap[$a->created_at->format('Y-m-d')]=$a;continue;}
  143. if ($a->type=='登出' && $aMap[$a->created_at->format('Y-m-d')] && $aMap[$a->created_at->format('Y-m-d')]->workgroup==$a->workgroup){
  144. array_push($result,['userWorkGroup'=>["a"=>'bv']]);
  145. unset($aMap[$a->created_at->format('Y-m-d')]);
  146. }
  147. }
  148. }
  149. $result[""];
  150. }
  151. public function test2(){
  152. $s="VI";
  153. $arr=str_split($s);
  154. $temp=["I"=>1,"V"=>5,"X"=>10,"L"=>50,"C"=>100,"D"=>500,"M"=>1000];
  155. $result=0;
  156. $sign=false;
  157. for($i=0;$i<count($arr);$i++){
  158. if($i!=count($arr)-1){
  159. if($arr[$i]=="I"){
  160. if($arr[$i+1]=="V" || $arr[$i+1]=="X"){
  161. $result-=$temp["I"];
  162. $sign=true;
  163. continue;
  164. }
  165. }
  166. if($arr[$i]=="X"){
  167. if($arr[$i+1]=="L" || $arr[$i+1]=="C"){
  168. if($sign){$result+=$temp[$arr[$i]];$sign=false;continue;}
  169. $result-=$temp["X"];
  170. $sign=true;
  171. continue;
  172. }
  173. }
  174. if($arr[$i]=="C"){
  175. if($arr[$i+1]=="D" || $arr[$i+1]=="M"){
  176. if($sign){
  177. $sign=false;
  178. $result+=$temp[$arr[$i]];continue;
  179. }
  180. $result-=$temp["C"];
  181. $sign=true;
  182. continue;
  183. }
  184. }
  185. }
  186. $result+=$temp[$arr[$i]];
  187. if ($sign)$sign=false;
  188. }
  189. if($result<1 || $result>3999)$result=0;
  190. return $result;
  191. }
  192. public function test3()
  193. {
  194. $strs=["auibh","aopk","bikon"];
  195. if (!$strs[0])return "";
  196. $len=strlen($strs[0]);
  197. for ($i=1;$i<count($strs);$i++){
  198. if ($len<1)break;
  199. for ($j=0;$j<$len;$j++){
  200. if ($strs[$i][$j]!=$strs[0][$j]){
  201. if ($j==0)return "";
  202. break;
  203. }
  204. $sum=$j+1;
  205. }
  206. $len=isset($sum)?$sum:0;
  207. }
  208. return substr($strs[0],0,$len);
  209. }
  210. public function test4(){
  211. $s="{([{()()[]{}}])[{()()[}]{}}](){[]}";
  212. $map = [
  213. ")" => "(",
  214. "}" => "{",
  215. "]" => "[",
  216. ];
  217. $len = strlen($s);
  218. $stack = [];
  219. if ($len%2!=0)dd(false);
  220. //s中出现map的key则弹出,没有出现则入栈
  221. for ($i =0; $i<$len; $i++) {
  222. var_dump("data:".$s[$i]);
  223. if (isset($map[$s[$i]])){
  224. //s中出现map的key:如果能找到对应的map的值 (,{,[ 则说明有配对,则弹出
  225. if (isset($stack) && $stack[0] == $map[$s[$i]]) {
  226. array_shift($stack);
  227. } else { //仅找到后面的一部分,说明是不匹配的
  228. dd(false);
  229. }
  230. var_dump("value1:".$map[$s[$i]]);
  231. var_dump($stack);
  232. } else {
  233. array_unshift($stack, $s[$i]);
  234. var_dump("value2:".$s[$i]);
  235. var_dump($stack);
  236. }
  237. }
  238. if (count($stack) > 0) {
  239. dd(false);
  240. }
  241. dd(true);
  242. //利用栈的先进后出 一个正确的括号组对应都为1对1或N对N
  243. // 先进后出“([{”入栈,")]}"出栈,轮询到出栈元素去映射栈顶,符合出栈,不符合直接返回
  244. //依次轮询 如果映射正确那么最后栈为空栈 否则返回false
  245. /*
  246. $r=[];
  247. $sTemp=["("=>1,"["=>2,"{"=>3,")"=>-1,"]"=>-2,"}"=>-3];
  248. for ($i=0;$i<strlen($s);$i++){
  249. if ($i!=strlen($s)-1){
  250. if (($sTemp[$s[$i]]+$sTemp[$s[$i+1]])==0){
  251. $i++;
  252. var_dump($s[$i],$i);
  253. continue;
  254. }
  255. }
  256. array_push($r,$sTemp[$s[$i]]);
  257. }
  258. $sum=count($r);
  259. if ($sum==0)return "a";
  260. if ($sum%2!=0)return "b";
  261. $svg=$sum/2;
  262. for ($i=0;$i<$svg;$i++){
  263. if ($r[$i]>0&&$r[$i]+$r[$sum-1-$i]!=0)return "b";
  264. }
  265. return "a";*/
  266. }
  267. }