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.
 
 
 
 

476 lines
17 KiB

  1. <?php
  2. /*
  3. Author:LB
  4. Compeny:Spiders Travel
  5. */
  6. require_once '../Common/Mysql.php';
  7. require_once '../Common/config_api.inc';
  8. if (ALLOW_ORIGIN)
  9. header("Access-Control-Allow-Origin:*");
  10. $method=isset($_GET['method'])?$_GET['method']:'';
  11. $USER_ID=getUserId();
  12. if ($USER_ID ===false){
  13. echo json_encode(array("code"=>"1","info"=>"用户未登录"));
  14. exit;
  15. }
  16. $data = array();
  17. //$USER_ID=1;
  18. $pdo=conn();
  19. switch ($method){
  20. case 'getBusList':
  21. $TYPE_ID=isset($_GET['type_id'])?$_GET['type_id']:0;
  22. $SORT_ID= isset($_GET['sort_id'])?$_GET['sort_id']:0;
  23. $PAGE=isset($_GET['currpage'])?$_GET['currpage']:1;
  24. $PAGE_SIZE=isset($_GET['page_size'])?$_GET['page_size']:10;
  25. $START_AREA=isset($_GET['start_area'])?$_GET['start_area']:'';
  26. $END_AREA=isset($_GET['end_area'])?$_GET['end_area']:'';
  27. $LINE=isset($_GET['line'])?$_GET['line']:'';
  28. $START_DATE=isset($_GET['start_date'])?$_GET['start_date']:'';
  29. $END_DATE=isset($_GET['end_date'])?$_GET['end_date']:'';
  30. $BUS_TYPE = isset($_GET['bus_type'])?$_GET['bus_type']:'0';
  31. $BUS_GROUP = isset($_GET['bus_group'])?$_GET['bus_group']:'0';
  32. $PROD_START_LIST = "";
  33. if( $BUS_GROUP != "0" ) {
  34. $sql = " SELECT id,group_name,prod_list,start_time_list FROM line_group_common WHERE id={$BUS_GROUP} ";
  35. $pdo1 = conn();
  36. $stmt1=$pdo1->query($sql);
  37. if( $stmt1 ) {
  38. $rowset = $stmt1->fetchAll(PDO::FETCH_ASSOC);
  39. if( $rowset ) {
  40. $bus_group_info = $rowset[0];
  41. $prod_array = explode("_", $bus_group_info["prod_list"]);
  42. $start_array = explode("_", $bus_group_info["start_time_list"]);
  43. $prod_start_array = array();
  44. foreach( $prod_array as $key => $prod_id) {
  45. $PROD_START_LIST .= $prod_id.",".$start_array[$key]."|";
  46. }
  47. }
  48. $stmt1->closeCursor();
  49. }
  50. }
  51. $sql="CALL SP_GET_RUN_NO_LIST(".$USER_ID.",".$PAGE.",".$PAGE_SIZE.",'".$START_AREA."'
  52. ,'".$END_AREA."','".$LINE."','".$START_DATE."','".$END_DATE."',".$TYPE_ID.",".$BUS_TYPE.",".$SORT_ID.",'".$PROD_START_LIST."')";
  53. writeLog('班次调度 sql='.$sql);
  54. if(is_object($pdo)){
  55. $data['code']='0';
  56. $data['info']='';
  57. $data['run_no_list']= array();
  58. $stmt=$pdo->query($sql);
  59. $i = 1;
  60. do{
  61. $rowset = $stmt->fetchAll(PDO::FETCH_ASSOC);
  62. //$stmt->closeCursor();
  63. if($i==1){
  64. $data['currpage']=$rowset[0]['currpage'];
  65. $data['total_page']=$rowset[0]['total_page'];
  66. $data['total']=$rowset[0]['total'];
  67. $data['page_size']=$rowset[0]['page_size'];
  68. }else if ($i==2){
  69. // $temp_255=array();
  70. // $temp_256=array();
  71. // $temp_real=array();
  72. // foreach ($rowset as $v){
  73. // if($v['bus_type']=="255"){
  74. // array_unshift($temp_255,$v);
  75. // }
  76. // if($v['bus_type']=="256"){
  77. // array_unshift($temp_256,$v);
  78. // }
  79. // }
  80. // $temp_real=array_merge($temp_255,$temp_256);
  81. $data['run_no_list']=$rowset;
  82. }else{
  83. }
  84. $i++;
  85. }while ($stmt->nextRowset());
  86. }
  87. $stmt->closeCursor();
  88. $pdo2=conn();
  89. $sql="CALL SP_GET_VEHICLE_LIST('".$USER_ID."','',0)";
  90. if(is_object($pdo2)){
  91. $result=$pdo2->query($sql);
  92. $json=$result->fetchAll(PDO::FETCH_ASSOC);
  93. $result->closeCursor();
  94. if(count($json)>0){
  95. $data['vehicle_list']=$json;
  96. }else{
  97. $data['vehicle_list']=array();
  98. }
  99. }
  100. $sql="CALL SP_GET_DRIVER_LIST('".$USER_ID."','',0)";
  101. if(is_object($pdo2)){
  102. $result=$pdo2->query($sql);
  103. $json=$result->fetchAll(PDO::FETCH_ASSOC);
  104. $result->closeCursor();
  105. if(count($json)>0){
  106. $data['driver_list']=$json;
  107. }else{
  108. $data['driver_list']=array();
  109. }
  110. }
  111. $sql = " SELECT id as group_id,group_name from line_group_common WHERE cancel_flag = 0 ";
  112. if(is_object($pdo2)){
  113. $result=$pdo2->query($sql);
  114. $line_group=$result->fetchAll(PDO::FETCH_ASSOC);
  115. $result->closeCursor();
  116. if(count($line_group)>0){
  117. $data['bus_group_list']=$line_group;
  118. }else{
  119. $data['bus_group_list']=array();
  120. }
  121. }
  122. break;
  123. case 'vehicleDispatch':
  124. $BUS_ID=isset($_GET['bus_id'])?$_GET['bus_id']:'';
  125. $RES_ID=isset($_GET['res_id'])?$_GET['res_id']:'';
  126. $sql="CALL SP_VEHICLE_DISPATCH('".$USER_ID."','".$BUS_ID."','".$RES_ID."')";
  127. if(is_object($pdo)){
  128. $result=$pdo->query($sql);
  129. // if($result !== false){
  130. // $data['code']='0';
  131. // $data['info']='派遣成功';
  132. // }else{
  133. // $data['code']=1;
  134. // $data['info']='派遣失败';
  135. // }
  136. // update by fuhc 2016-07-28
  137. writeLog("车辆调度--sql====".$sql);
  138. if($result){
  139. $rowset=$result->fetchAll(PDO::FETCH_ASSOC);
  140. // echo json_encode($rowset);exit();
  141. writeLog(json_encode($rowset[0]));
  142. $data['code']=isset($rowset[0]['errorcode'])?$rowset[0]['errorcode']:"500";
  143. $data['info']=isset($rowset[0]['errorinfo'])?$rowset[0]['errorinfo']:"未从数据库获得返回值";
  144. }else{
  145. $data['code']="300";
  146. $data['info']="数据库错误";
  147. echo json_encode($data);
  148. exit();
  149. }
  150. $sql_search = " SELECT RUN_ID,BUS_ORDER_ID FROM RUN_BUS WHERE ID={$BUS_ID} ";
  151. $pdo_search = conn();
  152. $result = $pdo_search->query($sql_search);
  153. if( $result == false ) {
  154. break;
  155. }
  156. $run_bus_array = $result->fetchAll(PDO::FETCH_ASSOC);
  157. $result->closeCursor();
  158. if( $run_bus_array != false ) {
  159. $run_id = $run_bus_array[0]["RUN_ID"];
  160. $bus_order_id = $run_bus_array[0]["BUS_ORDER_ID"];
  161. $sql_get_order = " SELECT DISTINCT(PARENT_ORDER_ID) as PARENT_ORDER_ID FROM order_main WHERE RUN_ID={$run_id} AND RUN_BUS_ORDER_ID={$bus_order_id} AND ORDER_STATUS = 146 AND CANCEL_FLAG = 0 AND PARENT_ORDER_ID <> 0 ";
  162. $result = $pdo_search->query($sql_get_order);
  163. if( $result == false ) {
  164. break;
  165. }
  166. $set_order_array = $result->fetchAll(PDO::FETCH_ASSOC);
  167. $result->closeCursor();
  168. if( $set_order_array == false ) {
  169. break;
  170. }
  171. $order_id_array = array();
  172. foreach( $set_order_array as $set_order_info ) {
  173. $order_id_array[] = $set_order_info["PARENT_ORDER_ID"];
  174. }
  175. $order_id_list = implode( ",", $order_id_array );
  176. $post_data['order_id'] = "{$order_id_list}";
  177. $post_data['order_status'] = "454";
  178. send_post("http://". CS_DOMAIN. "/st-xm/Api/add_order_status_log.php",$post_data);
  179. }
  180. }
  181. break;
  182. case 'driverDispatch':
  183. $BUS_ID=isset($_GET['bus_id'])?$_GET['bus_id']:'';
  184. $RES_ID=isset($_GET['res_id'])?$_GET['res_id']:'';
  185. $sql="CALL SP_DRIVER_DISPATCH('".$USER_ID."','".$BUS_ID."','".$RES_ID."')";
  186. writeLog('driverDispatch sql==='.$sql);
  187. if(is_object($pdo)){
  188. $result=$pdo->query($sql);
  189. if($result){
  190. $rowset=$result->fetchAll(PDO::FETCH_ASSOC);
  191. $data['code']=isset($rowset[0]['errorcode'])?$rowset[0]['errorcode']:"500";
  192. $data['info']=isset($rowset[0]['errorinfo'])?$rowset[0]['errorinfo']:"未从数据库获得返回值";
  193. $result->closeCursor();
  194. echo json_encode($data);exit();
  195. }else{
  196. $data['code']="499";
  197. $data['info']="数据库错误";
  198. echo json_encode($data);exit();
  199. }
  200. // if($result !== false){
  201. // $data['code']='0';
  202. // $data['info']='派遣成功';
  203. // }else{
  204. // $data['code']="1";
  205. // $data['info']='派遣失败';
  206. // }
  207. }
  208. break;
  209. case 'reset':
  210. $id_str=isset($_GET['idstr'])?$_GET['idstr']:'';
  211. $sql="CALL SP_UPDATE_RUN_DISPATCH(".$USER_ID.",'".$id_str."')";
  212. writeLog(" reset----重置sql=".$sql);
  213. if(is_object($pdo)){
  214. $result=$pdo->query($sql);
  215. if($result){
  216. $rowset=$result->fetchAll(PDO::FETCH_ASSOC);
  217. $data['code']=isset($rowset[0]['errorcode'])?$rowset[0]['errorcode']:"500";
  218. $data['info']=isset($rowset[0]['errorinfo'])?$rowset[0]['errorinfo']:"未从数据库获得返回值";
  219. $result->closeCursor();
  220. echo json_encode($data);exit();
  221. }else{
  222. $data['code']="499";
  223. $data['info']="数据库错误";
  224. echo json_encode($data);exit();
  225. }
  226. }else{
  227. $data['code']="-1";
  228. $data['info']="重置发生未知错误";
  229. echo json_encode($data);exit();
  230. }
  231. break;
  232. case 'lock': //锁定 //..
  233. // $id_str=isset($_GET['idstr'])?$_GET['idstr']:'';
  234. // $sql="CALL ('".$USER_ID."','".$id_str."')";
  235. // writeLog("fhc update----锁定sql=".$sql);
  236. // if(is_object($pdo)){
  237. // $result=$pdo->query($sql);
  238. // $data['code']="0";
  239. // $data['info']="";
  240. // }else{
  241. // $data['code']="-1";
  242. // $data['info']="锁定发生未知错误";
  243. // }
  244. break;
  245. case 'unlock': //解锁 //..
  246. // $id_str=isset($_GET['idstr'])?$_GET['idstr']:'';
  247. // $sql="CALL ('".$USER_ID."','".$id_str."')";
  248. // writeLog("fhc update----解锁sql=".$sql);
  249. // if(is_object($pdo)){
  250. // $result=$pdo->query($sql);
  251. // $data['code']="0";
  252. // $data['info']="";
  253. // }else{
  254. // $data['code']="-1";
  255. // $data['info']="解锁发生未知错误";
  256. // }
  257. break;
  258. case 'getVehicleList':
  259. $keyword=isset($_GET['key_word'])?$_GET['key_word']:'';
  260. $company=isset($_GET['company']) ? (empty($_GET['company']) ? "0" : $_GET['company']) : "0";
  261. $sql="CALL SP_GET_VEHICLE_LIST('".$USER_ID."','".$keyword."','".$company."')";
  262. if(is_object($pdo)){
  263. $result=$pdo->query($sql);
  264. $json=$result->fetchAll(PDO::FETCH_ASSOC);
  265. $result->closeCursor();
  266. $data['code']="0";
  267. $data['info']="";
  268. if(count($json)>0){
  269. $data['vehicle_list']=$json;
  270. }else{
  271. $data['vehicle_list']=array();
  272. }
  273. }
  274. break;
  275. case 'getDriverList':
  276. $keyword=isset($_GET['key_word'])?$_GET['key_word']:'';
  277. $company=isset($_GET['company']) ? (empty($_GET['company']) ? "0" : $_GET['company']) : "0";
  278. $sql="CALL SP_GET_DRIVER_LIST('".$USER_ID."','".$keyword."','".$company."')";
  279. if(is_object($pdo)){
  280. $result=$pdo->query($sql);
  281. $json=$result->fetchAll(PDO::FETCH_ASSOC);
  282. $result->closeCursor();
  283. $data['code']="0";
  284. $data['info']="";
  285. if(count($json)>0){
  286. $data['driver_list']=$json;
  287. }else{
  288. $data['driver_list']=array();
  289. }
  290. }
  291. break;
  292. case 'getCompanyList':
  293. $opera_org_id_sql = "select opera_org_id,main_corp_id from base_user where id = " . $USER_ID . " and cancel_flag = 0";
  294. $opera_org_id_result = $pdo->query($opera_org_id_sql);
  295. $rowset = $opera_org_id_result->fetchAll(PDO::FETCH_ASSOC);
  296. $opera_org_id = $rowset[0]['opera_org_id'];
  297. $main_corp_id = $rowset[0]['main_corp_id'];
  298. $and_sql = '';
  299. if ($opera_org_id != '') {
  300. $and_sql .= " and org_id in (" . $opera_org_id . ") ";
  301. }
  302. if ($main_corp_id != 0) {
  303. $and_sql .= " and main_corp_id in (" . $main_corp_id . ") ";
  304. }
  305. // $sql="select
  306. // A.RES_ID as res_id,
  307. // A.RES_NAME as res_name
  308. // from base_resource as A where A.RES_TYPE_ID=18 and A.CANCEL_FLAG=0;";
  309. $sql = "SELECT
  310. s.id as res_id,
  311. s.supplier_name as res_name
  312. from base_supplier as s,
  313. base_supplier_purchase as p
  314. WHERE
  315. s.id = p.supplier_id
  316. and s.cancel_flag = 0
  317. and p.cancel_flag = 0
  318. and p.product_type = 259
  319. " . $and_sql . "
  320. group by s.id";
  321. if(is_object($pdo)){
  322. $result=$pdo->query($sql);
  323. $json=$result->fetchAll(PDO::FETCH_ASSOC);
  324. $result->closeCursor();
  325. $data['code']="0";
  326. $data['info']="";
  327. if(count($json)>0){
  328. $data['company_list']=$json;
  329. }else{
  330. $data['company_list']=array();
  331. }
  332. }
  333. break;
  334. case 'selectPOI':
  335. $run_id=isset($_GET['run_id'])?$_GET['run_id']:"";
  336. $bus_order_id=isset($_GET['bus_order_id'])?$_GET['bus_order_id']:"";
  337. if($run_id=="" || $bus_order_id==""){
  338. $data['code']="400";
  339. $data['info']="缺少参数";
  340. echo json_encode($data);exit();
  341. }
  342. $sql="SELECT DISTINCT
  343. A.START_STATION_AREA_ID AS start_area_id,
  344. A.END_STATION_AREA_ID AS end_area_id,
  345. (SELECT AREA_NAME FROM BASE_AREA WHERE ID = START_STATION_AREA_ID) AS start_area,
  346. (SELECT AREA_NAME FROM BASE_AREA WHERE ID = END_STATION_AREA_ID) AS end_area,
  347. (SELECT TYPE_NAME FROM DICT_TYPE WHERE ID = SEAT_TYPE) AS seat,
  348. A.PROD_ID as prod_id,
  349. IFNULL((SELECT BUS_COST_TYPE FROM RUN_BUS AS A WHERE A.RUN_ID=".$run_id." AND A.BUS_ORDER_ID=".$bus_order_id." AND A.CANCEL_FLAG=0),'') as method_type,
  350. IFNULL((SELECT TYPE_NAME FROM DICT_TYPE WHERE ID = HUMAN_TYPE),'') AS croed,
  351. IFNULL(PRICE.PROD_PRICE,0) as price,
  352. IFNULL((SELECT B.COST_PRICE FROM RUN_BUS_COST AS B WHERE B.RUN_ID=".$run_id." AND B.START_AREA_ID=A.START_STATION_AREA_ID AND B.END_AREA_ID= A.END_STATION_AREA_ID AND B.BUS_ORDER_ID=1 AND B.CANCEL_FLAG=0 AND (select BUS_COST_TYPE FROM RUN_BUS AS A WHERE A.RUN_ID=".$run_id." AND A.BUS_ORDER_ID=".$bus_order_id." AND A.CANCEL_FLAG=0)=129),'0') as every_total_price,
  353. (select count(*) from order_main as T where T.run_id=".$run_id." and T.prod_start_station_area_id=A.START_STATION_AREA_ID and T.prod_end_station_area_id=A.END_STATION_AREA_ID and T.run_bus_order_id=".$bus_order_id." and T.order_valid_status=1 and T.cancel_flag=0) as real_sale
  354. FROM RUN_PROD AS A LEFT JOIN OPERA_PRODUCT_PRICE PRICE ON PRICE.PROD_ID = A.PROD_ID AND PRICE.CANCEL_FLAG = 0
  355. WHERE A.RUN_ID =".$run_id." AND A.CANCEL_FLAG = 0
  356. group by start_area_id,end_area_id; ";
  357. writeLog('selectPOI sql->param='.$run_id);
  358. $sql2="select max(prod_id) as prod_id,max(s_id) as s_id,max(e_id) as e_id from (
  359. select A.prod_id as prod_id,t1.property as s_id,t2.property as e_id from opera_product as A
  360. left join opera_product_property as t1 on t1.prod_id=A.prod_id and t1.type_id=125
  361. left join opera_product_property as t2 on t2.prod_id=A.prod_id and t2.type_id=126
  362. where A.prod_id=(select prod_id from run_main where run_id=".$run_id.")) as temp20160820;";
  363. if(is_object($pdo)){
  364. $result=$pdo->query($sql);
  365. $result2=$pdo->query($sql2);
  366. if($result){
  367. $rowset=$result->fetchAll(PDO::FETCH_ASSOC);
  368. $result->closeCursor();
  369. $rowset2=$result2->fetchAll(PDO::FETCH_ASSOC );
  370. $result2->closeCursor();
  371. $data['code']="0";
  372. $data['info']="";
  373. $data['start_end_areaList']=isset($rowset)?$rowset:array();
  374. $data['real_start_end_area']=isset($rowset2)?$rowset2:array();
  375. echo json_encode($data);exit();
  376. }else{
  377. $data['code']="500";
  378. $data['info']="数据库错误";
  379. echo json_encode($data);exit();
  380. }
  381. }else{
  382. $data['code']="300";
  383. $data['info']="链接数据库错误";
  384. echo json_encode($data);exit();
  385. }
  386. break;
  387. case 'selectCost': //查询成本
  388. $run_id=isset($_GET['run_id'])?$_GET['run_id']:"";
  389. $bus_order_id=isset($_GET['bus_order_id'])?$_GET['bus_order_id']:"";
  390. $start_area_id=isset($_GET['start_area_id'])?$_GET['start_area_id']:"";
  391. $end_area_id=isset($_GET['end_area_id'])?$_GET['end_area_id']:"";
  392. if($run_id=="" || $bus_order_id=="" || $start_area_id=="" || $end_area_id==""){
  393. $data['code']="400";
  394. $data['info']="缺少参数";
  395. echo json_encode($data);exit();
  396. }
  397. $str_main="{".$run_id.",".$bus_order_id.",".$start_area_id.",".$end_area_id."}";
  398. $sql="CALL SP_UPDATE_COST(".$USER_ID.",'".$str_main."','','','','select');";
  399. writeLog('selectCost sql='.$sql);
  400. if(is_object($pdo)){
  401. $result=$pdo->query($sql);
  402. if($result){
  403. $rowset=$result->fetchAll(PDO::FETCH_ASSOC);
  404. $result->closeCursor();
  405. $data['code']="0";
  406. $data['info']="";
  407. $data['costList']=isset($rowset)?$rowset:array();
  408. echo json_encode($data);
  409. exit();
  410. }else{
  411. $data['code']="500";
  412. $data['info']="数据库错误";
  413. echo json_encode($data);exit();
  414. }
  415. }else{
  416. $data['code']="300";
  417. $data['info']="链接数据库错误";
  418. echo json_encode($data);exit();
  419. }
  420. break;
  421. case 'updateCost': //修改成本
  422. $str_main=isset($_GET['str_main'])?$_GET['str_main']:"";
  423. $str_info1=isset($_GET['str_info1'])?$_GET['str_info1']:"{}";
  424. $str_info2=isset($_GET['str_info2'])?$_GET['str_info2']:"{}";
  425. $str_remark=isset($_GET['str_remark'])?$_GET['str_remark']:"";
  426. $str_method=isset($_GET['str_method'])?$_GET['str_method']:"";
  427. if($str_main=="" || $str_info1=="" || $str_remark=="" || $str_method=="" || $str_info2==""){
  428. $data['code']="400";
  429. $data['info']="缺少参数";
  430. echo json_encode($data);exit();
  431. }
  432. if($str_method=='update_car'){
  433. $sql="CALL SP_UPDATE_COST(".$USER_ID.",'".$str_main."','".$str_info1."','".$str_info2."','".$str_remark."','update_car')";
  434. }else{
  435. $sql="CALL SP_UPDATE_COST(".$USER_ID.",'".$str_main."','".$str_info1."','".$str_info2."','".$str_remark."','update_seat')";
  436. }
  437. writeLog('updateCost sql='.$sql);
  438. if(is_object($pdo)){
  439. $result=$pdo->query($sql);
  440. if($result){
  441. $rowset=$result->fetchAll(PDO::FETCH_ASSOC);
  442. $data=array();
  443. $data['code']=isset($rowset['errcode'])?$rowset['errcode']:"0";
  444. $data['info']=isset($rowset['errinfo'])?$rowset['errinfo']:"";
  445. $result->closeCursor();
  446. echo json_encode($data);exit();
  447. }else{
  448. $data['code']="500";
  449. $data['info']="数据库错误";
  450. echo json_encode($data);exit();
  451. }
  452. }else{
  453. $data['code']="300";
  454. $data['info']="链接数据库错误";
  455. echo json_encode($data);exit();
  456. }
  457. break;
  458. default:
  459. break;
  460. }
  461. if(is_array($data) && count($data) > 0 ){
  462. echo json_encode($data);
  463. }
  464. exit;