ProcessDataJob.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace App\Jobs;
  3. use App\Model\DDEmployee;
  4. use App\Model\Record;
  5. use App\Service\U8DatabaseServerService;
  6. use Illuminate\Bus\Queueable;
  7. use Illuminate\Contracts\Queue\ShouldQueue;
  8. use Illuminate\Foundation\Bus\Dispatchable;
  9. use Illuminate\Queue\InteractsWithQueue;
  10. use Illuminate\Queue\SerializesModels;
  11. use Symfony\Component\Console\Output\ConsoleOutput;
  12. use Symfony\Component\Console\Output\OutputInterface;
  13. class ProcessDataJob implements ShouldQueue
  14. {
  15. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  16. protected $data;
  17. public $timeout = 30;
  18. public function __construct($data)
  19. {
  20. //record表
  21. $this->data = $data;
  22. }
  23. public function handle()
  24. {
  25. try {
  26. list($bool, $msg) = $this->syncApprovedRecords($this->data);
  27. if(! $bool) $this->finalDo($msg, $this->data);
  28. } catch (\Throwable $e) {
  29. $this->finalDo("异常:" . $e->getMessage());
  30. $this->delete();
  31. }
  32. }
  33. private function finalDo($msg, $record){
  34. Record::where('id', $record['id'])
  35. ->update(['result' => $msg]);
  36. }
  37. private function syncApprovedRecords($record)
  38. {
  39. try {
  40. $service = new U8DatabaseServerService(['zt_database' => $record['database']]);
  41. if ($service->error) return [false, $service->error];
  42. $time = date("Y-m-d H:i:s");
  43. $time1 = date("Y-m-d 00:00:00");
  44. if($record['del_time'] == 2){
  45. $type = $record['type'];
  46. $order_number = $record['order_number'];
  47. $system_name = "system";
  48. $name = DDEmployee::where('userid', $record['userid'])->value('name');
  49. if(! empty($name)) $system_name = $name;
  50. if($type == 1){
  51. $service->db->table("PO_Pomain")
  52. ->where("cPOID", $order_number)
  53. ->update([
  54. "cVerifier" => $system_name,
  55. "iverifystateex" => 1,
  56. "cState" => 1,
  57. "cAuditTime" => $time . ".000",
  58. "cAuditDate" => $time1 . ".000",
  59. ]);
  60. }elseif($type == 2){
  61. $service->db->table("PU_AppVouch")
  62. ->where("cCode", $order_number)
  63. ->update([
  64. "cVerifier" => $system_name,
  65. "cAuditTime" => $time . ".000",
  66. "cAuditDate" => $time1 . ".000",
  67. ]);
  68. }else{
  69. $service->db->table("AP_ApplyPayVouch")
  70. ->where("cVouchID", $order_number)
  71. ->update([
  72. "cCheckMan" => $system_name,
  73. "dverifysystime" => $time . ".000",
  74. "dverifydate" => $time1 . ".000",
  75. ]);
  76. }
  77. }
  78. // 更新本地数据
  79. Record::where("id", $record['id'])->update(['del_time' => 3]);
  80. $service->close();
  81. } catch (\Throwable $e) {
  82. return [false, $e->getMessage()];
  83. }
  84. return [true, ''];
  85. }
  86. protected function echoMessage(OutputInterface $output)
  87. {
  88. //输出消息
  89. $output->writeln(json_encode($this->data));
  90. }
  91. }