Nbsch.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. namespace App\Console\Commands;
  3. use Illuminate\Console\Command;
  4. use Illuminate\Support\Facades\Input;
  5. use Illuminate\Support\Facades\DB;
  6. use Illuminate\Support\Facades\Log;
  7. class Nbsch extends Command
  8. {
  9. /**
  10. * The name and signature of the console command.
  11. *
  12. * @var string
  13. */
  14. protected $signature = 'nbsch:update';
  15. /**
  16. * The console command description.
  17. *
  18. * @var string
  19. */
  20. protected $description = '内部市场化';
  21. /**
  22. * Create a new command instance.
  23. *
  24. * @return void
  25. */
  26. public function __construct()
  27. {
  28. parent::__construct();
  29. }
  30. /**
  31. * Execute the console command.
  32. *
  33. * @return mixed
  34. */
  35. public function handle()
  36. {
  37. $start_time = time();
  38. echo '开始时间:'.date('Y-m-d H:i:s');
  39. $this->nbschInsert();
  40. echo '时长:'.number_format(((time()-$start_time)/60),2).'分钟';
  41. }
  42. public function nbschInsert()
  43. {
  44. $result = DB::connection('mysql_nbsch')->select("
  45. SELECT
  46. a.DOCUMENT_TYPE,
  47. DATE_FORMAT(a.DOCUMENT_DATE, '%Y-%m') AS DOCUMENT_DATE,
  48. ROUND(SUM(a.SETTLEMENT_SUM_AMOUNT) / 10000, 2) AS dyjsje,
  49. ROUND((SUM(a.SETTLEMENT_SUM_AMOUNT) - SUM(CASE WHEN a.isNull = '1' THEN a.SETTLEMENT_SUM_AMOUNT ELSE 0 END)) / 10000, 2) AS zcspje,
  50. ROUND(SUM(CASE WHEN a.isNull = '1' THEN a.SETTLEMENT_SUM_AMOUNT ELSE 0 END) / 10000, 2) AS qtje,
  51. CONCAT(ROUND(SUM(CASE WHEN a.isNull = '0' THEN 1 ELSE 0 END) / COUNT(a.isNull) * 100, 2), '%') AS sptgl,
  52. ROUND(SUM(CASE WHEN a.isNull = '0' THEN 1 ELSE 0 END) / COUNT(a.isNull) * 100, 2) AS sptgl_val
  53. FROM (
  54. SELECT
  55. fwjs.*,
  56. (CASE WHEN lcjl.BILL_ID IS NOT NULL THEN '1' ELSE '0' END) AS isNull
  57. FROM RT_SERVICE_SETTLEMENT_MASTER fwjs
  58. LEFT JOIN (
  59. SELECT * FROM (
  60. SELECT
  61. BILL_ID,
  62. GROUP_CONCAT(approve_node_name ORDER BY approve_node_name SEPARATOR ',') AS lcjdhub
  63. FROM SYS_FLOW_APPROVAL_RECORD
  64. WHERE approve_scheme_id IN (
  65. SELECT ID
  66. FROM SYS_FLOW_SCHEME S
  67. WHERE EXISTS(
  68. SELECT ID
  69. FROM SYS_FLOW_MASTER M
  70. WHERE EXISTS(
  71. SELECT 1
  72. FROM sys_flow_master_dept D
  73. WHERE M.ID = D.PID
  74. )
  75. AND S.PID = M.ID
  76. AND M.MENU_ID = '5ab7b937-19a0-47d4-b479-b9f58999abc8'
  77. )
  78. AND S.IS_DISABLE = 0
  79. )
  80. GROUP BY BILL_ID
  81. ) t
  82. WHERE lcjdhub NOT REGEXP '被服务'
  83. ) lcjl ON fwjs.id = lcjl.BILL_ID
  84. WHERE fwjs.APPROVE_NODE_NAME = '已完成'
  85. ) a
  86. WHERE 1=1 AND DATE_FORMAT(a.DOCUMENT_DATE, '%Y-%m') = '2025-06' -- 日期筛选条件
  87. GROUP BY a.DOCUMENT_TYPE, DATE_FORMAT(a.DOCUMENT_DATE, '%Y-%m')
  88. ORDER BY DATE_FORMAT(a.DOCUMENT_DATE, '%Y-%m') DESC
  89. ");
  90. if(count($result) > 0){
  91. for($i=0;$i<count($result);$i++){
  92. $id = mt_rand(pow(10, 18), pow(10, 18) + 999999999);
  93. $insert = [
  94. 'ID' => $id,
  95. 'FORM_DATA_ID' => $id,
  96. 'DATA_INDEX' => 0.0,
  97. 'CREATE_TIME' => date('Y-m-d H:i:s'),
  98. 'TENANT_KEY' => 't1zz9w8165',
  99. 'IS_DELETE' => 0,
  100. 'DELETE_TYPE' => 0,
  101. 'FT_STATUS' => 0,
  102. 'document_type' => $result[$i]->DOCUMENT_TYPE,
  103. 'document_date' => $result[$i]->DOCUMENT_DATE,
  104. 'dyjsje' => $result[$i]->dyjsje,
  105. 'zcspje' => $result[$i]->zcspje,
  106. 'qtje' => $result[$i]->qtje,
  107. 'sptgl' => $result[$i]->sptgl,
  108. 'sptgl_val' => $result[$i]->sptgl_val
  109. ];
  110. DB::connection('mysql_fwe10')->table('uf_jsxmsp')->insert($insert);
  111. }
  112. }
  113. Log::info('654321');
  114. Log::info($result);
  115. var_dump($result);
  116. }
  117. }