You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

137 lines
3.4 KiB

  1. <?php
  2. require_once __DIR__ . '/../st-xm/Common/Mysql.php';
  3. header("Access-Control-Allow-Origin:*");
  4. date_default_timezone_set('Asia/Shanghai');
  5. $start=isset($_GET['s'])?$_GET['s']:date('Y-m-d');
  6. $end=isset($_GET['e'])?$_GET['e']:date('Y-m-d',strtotime('+1 month'));
  7. //把数组key值改为run_id+bus_order_id
  8. function change_key($a){
  9. $tmp=array();
  10. foreach($a as $k=>$v){
  11. $tmpk=$v['run_id'].'-'.$v['bus_order_id'];
  12. $tmp["$tmpk"]=$v;
  13. $tmp["$tmpk"]['id']=$k;
  14. }
  15. return $tmp;
  16. }
  17. /*//合并数组
  18. function multi_merge($a,$b){
  19. $arr = array();
  20. foreach($a as $k=>$r){
  21. $arr[] = array_merge($r,$b[$k]);
  22. }
  23. return $arr;
  24. }*/
  25. //合并数组
  26. function multi_merge($a,$b){
  27. $arr = array();
  28. foreach($a as $k=>$r){
  29. if(isset($b[$k])){
  30. $arr[$k] = array_merge($r,$b[$k]);
  31. }else{
  32. $arr[$k] =$r;
  33. $arr[$k]['num2']=0;
  34. }
  35. }
  36. foreach($b as $k=>$r){
  37. if(!isset($arr[$k])){
  38. $arr[$k] =$r;
  39. $arr[$k]['num1']=0;
  40. }
  41. }
  42. return $arr;
  43. }
  44. $pdo = conn();
  45. //从订单角度得到run_bus表的数据
  46. $sql1 = "SELECT
  47. l.line_id,
  48. m.run_id,
  49. m.RUN_BUS_ORDER_ID bus_order_id,
  50. m.run_date,
  51. count(m.order_id) as num1
  52. FROM
  53. order_main m
  54. LEFT JOIN opera_line l ON m.PARENT_PROD_ID = l.line_id
  55. LEFT JOIN opera_tickets t on m.prod_id=t.TICKET_ID
  56. LEFT JOIN opera_line w on t.line_id=w.line_id
  57. WHERE
  58. m.PARENT_ORDER_ID <> 0
  59. AND m.run_date >= '$start'
  60. AND m.run_date <='$end'
  61. AND m.ORDER_VALID_STATUS = 1
  62. AND m.CANCEL_FLAG = 0
  63. AND m.PROD_ID <> 380001
  64. and m.run_bus_order_id<>0
  65. AND w.line_type in (255,256,368)
  66. AND m.ORDER_PROD_TYPE = 82
  67. AND m.AGENT_LEVEL = 1
  68. group by run_id,bus_order_id
  69. order by m.run_date;";
  70. $res1 = $pdo->query($sql1);
  71. $res1->setFetchMode(PDO::FETCH_ASSOC);
  72. $arr1 = $res1->fetchAll();
  73. $sql2="SELECT
  74. b.prod_id as line_id,
  75. b.run_id,
  76. a.bus_order_id,
  77. b.run_date,
  78. a.SEAT_COUNT,
  79. a.saled_count as num2
  80. FROM
  81. run_bus a
  82. LEFT JOIN run_main b ON a.run_id = b.run_id
  83. WHERE
  84. b.run_date >= '$start'
  85. AND b.run_date <='$end'
  86. and a.CANCEL_FLAG=0
  87. and a.SALED_COUNT<>0
  88. AND b.PROD_ID <> 0
  89. and b.prod_id<>451479
  90. order by b.run_date;";
  91. $res2 = $pdo->query($sql2);
  92. $res2->setFetchMode(PDO::FETCH_ASSOC);
  93. $arr2 = $res2->fetchAll();
  94. //切换key值
  95. $arr1=change_key($arr1);
  96. //print_r($arr1);
  97. $arr2=change_key($arr2);
  98. $arr=multi_merge($arr1,$arr2);
  99. //print_r($arr);
  100. //exit;
  101. ?>
  102. <!DOCTYPE html>
  103. <html>
  104. <head>
  105. <meta charset="UTF-8">
  106. <title>run_bus数据检测</title>
  107. <style type="text/css">
  108. td{
  109. border:1px solid;
  110. }
  111. </style>
  112. </head>
  113. <body>
  114. <h2 style="margin-left:20%">run_bus数据检测</h2>
  115. <table width="60%">
  116. <tr><td width="10%">ID</td><td width="10%">出发日期run_date</td><td width="10%">班次run_id</td><td width="10%">车次号bus_order_id</td><td width="10%">实际订单数量</td><td width="10%">记录已售数量</td><td width="10%">颜色</td></tr>
  117. <?php $i=1; foreach($arr as $k=>$v ){?>
  118. <tr style="<?php if($v['num1']!=$v['num2']){echo 'color:red';} ?>"><td><?php echo $i;?></td><td><?php echo $v['run_date'];?></td><td><?php echo $v['run_id'];?></td><td><?php echo $v['bus_order_id'];?></td><td><?php echo $v['num1'];?></td><td><?php echo $v['num2'];?></td><td><?php echo $v['num1']!=$v['num2']?'红色':'白色';?></td></tr></tr>
  119. <?php $i++;}?>
  120. </table>
  121. </body>
  122. </html>