header("Content-type: text/html; charset=utf-8"); date_default_timezone_set('Asia/Shanghai'); require_once '/data/web/tran.valsun.cn/crontab/config.php'; require_once SCRIPT_PATH . "framework.php"; Core::getInstance(); $numberList = array(); //跟踪号列表 $page = isset($argv[1]) ? abs(intval($argv[1])) : 1; //页码 $pagenum = isset($argv[2]) ? abs(intval($argv[2])) : 2000; //每页多少条 $carrierId = isset($argv[3]) ? abs(intval($argv[3])) : ""; //运输方式ID $where = isset($argv[4]) ? $argv[4] : "scanTime>=" . strtotime("-3 day" . ' 00:00:01') . " AND toMarkTime = 0"; //跟踪号状态 $numberList = TransOpenApiModel::getTrackNumberList($page, $pagenum, $carrierId, $where); //获取符合条件的跟踪号列表 $total = count($numberList); echo $total . "条数据处理开始,时间" . date('Y-m-d H:i:s', time()) . "\n\n"; if ($total > 0) { $data = array(); $idArr = array(); $nums = 100; $pages = 1; $id = 0; foreach ($numberList as $v) { $idArr[] = $v['orderSn']; } $pages = ceil(count($idArr) / $nums); for ($i = 1; $i <= $pages; $i++) { for ($j = 0; $j < $nums; $j++) {
$carrierId = isset($argv[3]) ? abs(intval($argv[3])) : ""; //运输方式ID $where = isset($argv[4]) ? $argv[4] : ""; //跟踪号状态 $hours = isset($argv[5]) ? $argv[5] : 0; //最近几个小时内数据 $countrys = TransOpenApiModel::getCountriesStandard("ALL"); $nodes = TransOpenApiModel::getTrackNodeList(61); print_r($nodes); if (empty($nodes)) { exit("未设置运德物流预警节点,暂没法分析数据!\n"); } foreach ($countrys as $c) { $country = $c['countryNameEn']; $postion = empty($where) ? "toCountry = '{$country}'" : $where . " AND toCountry = '{$country}'"; $numberList = TransOpenApiModel::getTrackNumberList($page, $pagenum, $carrierId, $postion, $hours, 'DESC'); //获取符合条件的跟踪号列表 $total = count($numberList); echo date('Y-m-d H:i:s', time()) . "===" . $c['countryNameEn'] . "===" . $total . "条数据分析开始!" . "\n\n"; //得到原始数据 foreach ($numberList as $v) { $timestr = date('Y-m-d H:i:s', time()); $times = $v['scanTime']; $details = TrackWarnInfoModel::listTrackNumberInfo($carrierId, $v['trackNumber']); $details = json_decode($details, true); foreach ($details as $detail) { foreach ($nodes as $node) { if (strpos($detail['event'], $node['nodeName']) !== false) { $trackTime = strtotime($detail['trackTime']); if ($trackTime !== false) { $aging = $trackTime - $times;