TestController.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Batch;
  4. use App\Components\AsyncResponse;
  5. use App\Components\Database;
  6. use App\Components\ErrorPush;
  7. use App\Order;
  8. use App\OrderBin;
  9. use App\Services\WorkOrderService;
  10. use App\WorkOrder;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Support\Facades\DB;
  13. class TestController extends Controller
  14. {
  15. use AsyncResponse, ErrorPush, Database;
  16. const ASNREFERENCE_2 = 'ASNREFERENCE2';
  17. public function __construct()
  18. {
  19. $this->data["active_test"] = "active";
  20. }
  21. public function method(Request $request, $method)
  22. {
  23. try {
  24. return call_user_func([$this, $method], $request);
  25. }catch (\BadMethodCallException $e){
  26. dd("方法不存在");
  27. }
  28. }
  29. public function assignBatch($code)
  30. {
  31. $batches = Batch::query()->where("code",$code)->get();
  32. if (!$batches->count()){
  33. $wave = DB::connection("oracle")->selectOne(DB::raw("select * from DOC_WAVE_HEADER where WAVENO = ?"),[$code]);
  34. if (!$wave){
  35. dd("FLUX无波次");
  36. }
  37. $owner = app("OwnerService")->codeGetOwner($wave->customerid);
  38. $obj = [
  39. "wms_status" => $this->wms_status($wave),
  40. "wms_type"=>$wave->descr,
  41. "created_at"=>date("Y-m-d H:i:s"),
  42. "wms_created_at"=>$wave->addtime,
  43. "updated_at"=>$wave->edittime,
  44. "owner_id"=>$owner->id,
  45. ];
  46. $wave = Batch::query()->where("code",$code)->first();
  47. if (!$wave){
  48. $obj["code"] = $code;
  49. $wave = Batch::query()->create($obj);
  50. }else{
  51. Batch::query()->where("code",$code)->update($obj);
  52. }
  53. $ordernos = array_column(DB::connection("oracle")->select(DB::raw("select orderno from DOC_WAVE_DETAILS where WAVENO = ?"),[$code]),"orderno");
  54. Order::query()->whereIn("code",$ordernos)->update([
  55. "batch_id"=>$wave->id
  56. ]);
  57. Order::query()->with(["batch","bin"])->whereIn("code",$ordernos)->get()->each(function ($order){
  58. if (!$order->bin){
  59. $bin = DB::connection("oracle")->selectOne(DB::raw("select seqno from DOC_WAVE_DETAILS where waveno = ? and orderno = ?"),[$order->batch->code,$order->code]);
  60. if ($bin){
  61. OrderBin::query()->create([
  62. 'order_id' => $order->id,
  63. 'number' => $bin->seqno,
  64. ]);
  65. }
  66. }
  67. });
  68. $batches = Batch::query()->where("code",$code)->get();
  69. }
  70. app("BatchService")->assignTasks($batches);
  71. }
  72. public function syncWorkOrder(){
  73. WorkOrder::query()
  74. ->where('work_order_status','1')
  75. ->where('bao_shi_tag', 1)
  76. ->update(['bao_shi_tag' => 3]);
  77. WorkOrder::query()
  78. ->whereIn('status',[1,4] )
  79. ->where('work_order_status','<>','1')
  80. ->update(['bao_shi_tag' => 2]);
  81. WorkOrder::query()
  82. ->where('work_order_status','1')
  83. ->where('owner_tag', 1)
  84. ->update(['owner_tag' => 3]);
  85. WorkOrder::query()
  86. ->whereIn('status',[2,6] )
  87. ->where('work_order_status','<>','1')
  88. ->update(['bao_shi_tag' => 2]);
  89. WorkOrder::query()
  90. ->where('work_order_status','1')
  91. ->where('logistic_tag', 1)
  92. ->update(['logistic_tag' => 3]);
  93. WorkOrder::query()
  94. ->whereIn('status',[3] )
  95. ->where('work_order_status','<>','1')
  96. ->update(['logistic_tag' => 2]);
  97. }
  98. public function baoHandler(){
  99. $service = new WorkOrderService();
  100. $service->timingTask();
  101. }
  102. }