OracleDocAsnHerderService.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace App\Services;
  3. use App\Jobs\RejectedPushJob;
  4. use App\OracleDOCASNHeader;
  5. use App\Traits\ServiceAppAop;
  6. use Couchbase\DocIdSearchQuery;
  7. class OracleDocAsnHerderService
  8. {
  9. use ServiceAppAop;
  10. // protected $modelClass=OracleDocAsnHerder::class;
  11. public function getWmsAsnOnStartDateCreate($startDate)
  12. {
  13. if (!$startDate) return null;
  14. return OracleDOCASNHeader::query()
  15. ->with(['asnType', 'asnStatus'])
  16. ->select('asnno', 'asnstatus', 'asntype', 'addtime', 'edittime', 'customerid', 'notes', 'warehouseid', 'asnreference3', 'asnreference2')
  17. ->where('addTime', '>=', $startDate)
  18. ->whereColumn('edittime', '=', 'addTime')
  19. ->orderByDesc('addtime')
  20. ->get();
  21. }
  22. public function getWmsAsnOnStartDateEdit($startDate)
  23. {
  24. if (!$startDate) return null;
  25. return OracleDOCASNHeader::query()
  26. ->with(['asnType', 'asnStatus'])
  27. ->select('asnno', 'asnstatus', 'asntype', 'addtime', 'edittime', 'customerid', 'notes', 'warehouseid', 'asnreference3', 'asnreference2')
  28. ->where('EditTime', '>=', $startDate)
  29. ->whereColumn('EditTime', '<>', 'addTime')
  30. ->orderByDesc('EditTime')
  31. ->get();
  32. }
  33. public function getToBeProcessAsnDetailsByCustomId($customId,$page = 1, $perGage= 20)
  34. {
  35. return OracleDOCASNHeader::query()
  36. ->with(['asnType', 'asnStatus', 'basCustomer','asnDetails' => function ($query) {
  37. $query->with(['lineStatus', 'qualityStatus', 'basSku']);
  38. }])
  39. ->whereIn("AsnStatus", ['00', '30'])
  40. ->whereIn('asnType',['B2BRK','CGRK','CSKC','DBRK','F10','F21','F31','F32','HHRK','QTRK'])
  41. ->where('CustomerId', $customId)->orderByDesc('addTime')->forPage($page,$perGage)->get();
  42. }
  43. public function getToBeProcessAsnCountByCustomId($customId): int
  44. {
  45. return OracleDOCASNHeader::query()
  46. ->with(['asnType', 'asnStatus', 'basCustomer','asnDetails' => function ($query) {
  47. $query->with(['lineStatus', 'qualityStatus', 'basSku']);
  48. }])
  49. ->whereIn("AsnStatus", ['00', '30'])
  50. ->whereIn('asnType',['B2BRK','CGRK','CSKC','DBRK','F10','F21','F31','F32','HHRK','QTRK'])
  51. ->where('CustomerId', $customId)->count();
  52. }
  53. public function rejectPush($asnHerders)
  54. {
  55. if (count($asnHerders)>0){
  56. $arr=[];
  57. foreach ($asnHerders as $asnHerder){
  58. if ($asnHerder->asntype=='THRK'&&$asnHerder->notes){
  59. //['sku' => '75603675975072','taskNum' => 'JI20220316211', 'asnNo' => 'asn002', 'type' => '推单'],
  60. $arr[][] = [
  61. 'sku'=>'sku',
  62. 'taskNum'=>'sku',
  63. 'asnNo'=>'sku',
  64. 'type'=>'推单'
  65. ];
  66. }
  67. }
  68. RejectedPushJob::dispatch($arr);
  69. }
  70. }
  71. }