From 66dbcab2db38321a11b30e235abf6a6d505f650c Mon Sep 17 00:00:00 2001 From: wanghongjun <1445693971@qq,com> Date: Tue, 1 Aug 2023 11:26:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=BA=BF=E4=B8=8A=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/library/Pass.php | 13 ++-- .../api/controller/pass/Create.php | 11 ++-- source/application/common/dm/Dm.php | 8 +-- source/application/common/logic/PassFlow.php | 65 ++++++++++--------- source/application/task/controller/Group.php | 16 ++++- .../application/task/controller/Passreal.php | 6 +- 6 files changed, 66 insertions(+), 53 deletions(-) diff --git a/source/application/api/controller/library/Pass.php b/source/application/api/controller/library/Pass.php index b62cb70..d763231 100644 --- a/source/application/api/controller/library/Pass.php +++ b/source/application/api/controller/library/Pass.php @@ -78,7 +78,7 @@ class Pass extends Controller } // --------------------- 小时数据 --------------------- // - $hoursQueryWhere = ['hour_time' => $hour, 'group_id' => $val['group_id']]; + $hoursQueryWhere = ['hour_time' => $hour, 'group_id' => $val['group_id'], 'create_time' => ['>=',date('Y-m-d 00:00:00')]]; $hoursQuery = $dm->find("bt_library_hours",$hoursQueryWhere); # 默认单天数据 @@ -106,9 +106,9 @@ class Pass extends Controller $lastHours = $dm->find('bt_library_hours',$lastHoursWhere,'*','id DESC'); if ($lastHours) { $incount = $val['today_incount'] - $lastHours['target_today_incount']; - $incount = $incount > 0 ? $incount : 0; $outcount = $val['today_outcount'] - $lastHours['target_today_outcount']; - $outcount = $outcount > 0 ? $outcount : 0; + $incount = $incount > 0 ? $incount : 0; + $outcount = $outcount > 0 ? $outcount : 0; } # 创建数据 $insert = [ @@ -118,7 +118,7 @@ class Pass extends Controller 'outcount' => $outcount, 'target_today_incount' => $val['today_incount'], 'target_today_outcount' => $val['today_outcount'], - 'hour_time' => $hour, + 'hour_time' => $hour, 'create_time' => date("Y-m-d H:i:s",time()) ]; @@ -189,7 +189,7 @@ class Pass extends Controller return $this->renderSuccess(); } - /** + /** * 获取今日借阅办证数据 * @return array */ @@ -198,4 +198,5 @@ class Pass extends Controller $data = PassFlow::getLibraryLeaseData(); return $this->renderSuccess(compact('data')); } -} \ No newline at end of file + +} diff --git a/source/application/api/controller/pass/Create.php b/source/application/api/controller/pass/Create.php index f9bb449..d84efce 100644 --- a/source/application/api/controller/pass/Create.php +++ b/source/application/api/controller/pass/Create.php @@ -62,9 +62,10 @@ class Create extends Controller $queryWhere = ['groupId' => $val['groupId'],'granularity' => $val['granularity'],'statTime' => $val['statTime']]; $query = $dm->find('bt_passenger_flow',$queryWhere); + + $groupRes = $dm->find('bt_passenger_monitor_group',['groupId' => $val['groupId']]); + $groupName = isset($groupRes['groupName']) ? $groupRes['groupName']:$val['groupName']; - $groupRes = $dm->find('bt_passenger_monitor_group',['groupId' => $val['groupId']]); - $groupName = isset($groupRes['groupName']) ? $groupRes['groupName'] : $val['groupName']; $insert_arr = [ 'groupId' => $val['groupId'], 'groupName' => $groupName, @@ -108,11 +109,11 @@ class Create extends Controller $dm = new Dm(); foreach ($data as $val) { - $queryWhere = ['groupId' => $val['groupId'],'granularity' => $val['granularity'],'statTime' => $val['statTime']]; + $queryWhere = ['groupId' => $val['groupId'],'granularity' => $val['granularity'],'statTime' => $val['statTime'],'date'=>$val['date']]; $query = $dm->find('bt_passenger_flow_all',$queryWhere); $groupRes = $dm->find('bt_passenger_monitor_group',['groupId' => $val['groupId']]); - $groupName = isset($groupRes['groupName']) ? $groupRes['groupName'] : $val['groupName']; + $groupName = isset($groupRes['groupName']) ? $groupRes['groupName']:$val['groupName']; $insert_arr = [ 'groupId' => $val['groupId'], @@ -246,4 +247,4 @@ class Create extends Controller } -} \ No newline at end of file +} diff --git a/source/application/common/dm/Dm.php b/source/application/common/dm/Dm.php index aac5889..7a48274 100644 --- a/source/application/common/dm/Dm.php +++ b/source/application/common/dm/Dm.php @@ -4,12 +4,6 @@ namespace app\common\dm; class Dm { - private $host = 'localhost:5236'; // IP 地址 - private $port = '5236'; // 端口号 - private $dbname = 'CXK'; // 数据库名 - private $username = 'SYSDBA'; // 用户名 - private $password = 'SYSDBA'; // 密码 - private $charset = 'GBK'; // 字符集 public $conn; public $database = 'STADIUM'; @@ -319,4 +313,4 @@ class Dm 'pageData' => $pageData, ]; } -} \ No newline at end of file +} diff --git a/source/application/common/logic/PassFlow.php b/source/application/common/logic/PassFlow.php index d9499aa..8df8df9 100644 --- a/source/application/common/logic/PassFlow.php +++ b/source/application/common/logic/PassFlow.php @@ -86,7 +86,7 @@ class PassFlow } if ($date == 'week' || $date == 'all') { $data['week'] = [ - 'start_time' => date("Y-m-d",strtotime('this week')) . 'T00:00:00.000+08:00', + 'start_time' => date("Y-m-d",strtotime("this week")) . 'T00:00:00.000+08:00', 'end_time' => date("Y-m-d",strtotime("-".(date("w") - 7) . "day")) . 'T23:59:59.000+08:00' ]; } @@ -116,7 +116,7 @@ class PassFlow $groupsData = []; $dkey=[]; if ($date_str == 'H:00') { - $hour = (int)date("H"); + $hour = (int) date('H'); for ($i = 0; $i <= $hour; $i++) { $str = strlen($i) == 1 ? '0'.$i.':00' : $i.':00'; $allTimeData[$str]['num'] = 0; @@ -261,20 +261,19 @@ class PassFlow $sumFind = $dm->find('bt_passenger_flow_all', $sumWhere,'SUM("flowInNum") as NUM'); $returnData['sumYear']['noRepeatInNum'] = isset($sumFind['NUM']) ? $sumFind['NUM'] : 0; - if (empty($param['groupsId'])) { - # 文化数据 - $mData = $dm->find('bt_library',['group_id' => 'lib001']); + if (empty($groupsId)) { + # 文化数据 + $mData = $dm->find('bt_library',['group_id' => 'lib001']); $returnData['day']['noRepeatInNum'] += isset($mData['today_incount']) ? $mData['today_incount'] : 0; $returnData['month']['noRepeatInNum'] += isset($mData['month_incount']) ? $mData['month_incount'] : 0; $returnData['year']['noRepeatInNum'] += isset($mData['year_incount']) ? $mData['year_incount'] : 0; - $returnData['sumYear']['noRepeatInNum'] += isset($mData['year_incount']) ? $mData['year_incount'] : 0; - $week_start = date("Y-m-d 00:00:00",strtotime('this week')); - $week_end = date("Y-m-d 23:59:59",strtotime("-".(date("w") - 7) . "day")); - $weekDateWhere = ' "group_id" =' . "'lib001'" . ' and "create_time" >= ' . "'{$week_start}'" . ' and "create_time" <= ' . "'{$week_end}'"; - $weekDate = $dm->find('bt_library_hours',$weekDateWhere,'SUM("incount") as NUM'); - $returnData['week']['noRepeatInNum'] += isset($weekDate['NUM']) ? $weekDate['NUM'] : 0; - } - + $returnData['sumYear']['noRepeatInNum'] += isset($mData['year_incount']) ? $mData['year_incount'] : 0; + $week_start = date("Y-m-d 00:00:00",strtotime('this week')); + $week_end = date("Y-m-d 23:59:59",strtotime("-".(date("w") - 7) . "day")); + $weekDateWhere = ' "group_id" =' . "'lib001'" . ' and "create_time" >= ' . "'{$week_start}'" . ' and "create_time" <= ' . "'{$week_end}'"; + $weekDate = $dm->find('bt_library_hours',$weekDateWhere,'SUM("incount") as NUM'); + $returnData['week']['noRepeatInNum'] += isset($weekDate['NUM']) ? $weekDate['NUM'] : 0; + } foreach ($returnData as &$val) { $val['noRepeatInNum'] = formatNumber($val['noRepeatInNum']); } @@ -306,7 +305,7 @@ class PassFlow $returnData = []; foreach ($data as $groupId => $val) { - $proportion = $val['allEnter'] > 0 ? round($val['allEnter']/$threshold,2) : 0; + $proportion = $val['allEnter'] > 0 ? round($val['allEnter']/$threshold,4) : 0; $val['proportion'] = ($proportion * 100) . "%"; $val['congestion'] = self::getPassType($proportion); $val['groupId'] = $groupId; @@ -318,7 +317,7 @@ class PassFlow } $libData = $dm->select('bt_library',['group_id' => ['baz001','BAF055']]); foreach ($libData as $libRow) { - $libProportion = $libRow['today_incount'] > 0 ? round($libRow['today_incount']/$threshold,2) : 0; + $libProportion = $libRow['today_incount'] > 0 ? round($libRow['today_incount']/$threshold,4) : 0; // 文化馆排 4# 图书馆 2# $isort = $libRow['group_id']=='baz001'?2:4; $returnData[] = [ @@ -397,15 +396,15 @@ class PassFlow $groupData = $dm->select('bt_passenger_monitor_group',$groupsWhere); foreach ($groupData as $groupDataRow) { foreach ($allTimeData as $date => $dateValue) { - $returnData[$groupDataRow['groupName']][$date] = $dateValue; + $returnData[$groupDataRow['groupId']][$date] = $dateValue; } } foreach ($list as $value) { $date = date('H:00',ceil($value['createTime'] / 1000)); // 各时间端进馆人数 if (!isset($allTimeData[$date])) continue; - if (!isset($returnData[$value['groupName']][$allTimeData[$date]])) $returnData[$value['groupName']][$date] = 0; - $returnData[$value['groupName']][$date] += $value['flowInNum']; + if (!isset($returnData[$value['groupId']][$allTimeData[$date]])) $returnData[$value['groupId']][$date] = 0; + $returnData[$value['groupId']][$date] += $value['flowInNum']; } $data = []; @@ -419,13 +418,18 @@ class PassFlow $listData['dkeys'][] = $itemKey; $listData['dvalue'][] = $itemRow; } + if (is_numeric($groupName)) { + $groupData = $dm->find('bt_passenger_monitor_group',['groupId' => $groupName]); + $groupName = isset($groupData['groupName']) ? $groupData['groupName'] : $groupName; + } $data[] = [ 'groupName' => $groupName, 'list' => $listData ]; } - $data = self::getLibraryGroupHoursList($dm,false,$data); - + if(empty($param['groupsId'])){ + $data = self::getLibraryGroupHoursList($dm,false,$data); + } return $data; } @@ -642,13 +646,12 @@ class PassFlow if (empty($dm)) $dm = new Dm(); # 获取文化组id - if ($is_group) { - $groupRes = $dm->select('bt_passenger_monitor_group',['type' => 2],'"groupId","groupName"'); - $groupsId = []; - foreach ($groupRes as $groupRow) $groupsId[] = $groupRow['groupId']; - $data = self::toDayGroupsEnterNum($dm,['groupsId' => implode("|",$groupsId)]); - } - +if ($is_group) { + $groupRes = $dm->select('bt_passenger_monitor_group',['type' => 2],'"groupId","groupName"'); + $groupsId = []; + foreach ($groupRes as $groupRow) $groupsId[] = $groupRow['groupId']; + $data = self::toDayGroupsEnterNum($dm,['groupsId' => implode("|",$groupsId)]); +} # 图书、文化馆 $start_create_time = date("Y-m-d 00:00:00"); $end_create_time = date("Y-m-d 23:59:59"); @@ -709,10 +712,12 @@ class PassFlow 'returncount' => 0 ]; if ($LibLeaseRes) { - $data['newreader'] = $LibLeaseRes['newreader']; # 今日办证人数 - $data['servcount'] = $LibLeaseRes['servcount']; # 今日借书册数 + $data['newreader'] = $LibLeaseRes['newreader']; # 今日办证册数 + $data['servcount'] = $LibLeaseRes['servcount']; # 今日借书人数 $data['returncount'] = $LibLeaseRes['returncount']; # 今日还书册数 } return $data; } -} \ No newline at end of file + + +} diff --git a/source/application/task/controller/Group.php b/source/application/task/controller/Group.php index d607f81..d51c6ab 100644 --- a/source/application/task/controller/Group.php +++ b/source/application/task/controller/Group.php @@ -7,7 +7,19 @@ use app\common\model\Pass; class Group { - function run() + public function run(){ + $link = dm_connect('10.97.121.4:5236','SYSDBA','Hn@dameng123') or die('err'.dm_error()); +$sql='select * from "STADIUM"."bt_config"'; +$res = dm_exec($link,$sql); +$data = []; +while ($row = dm_fetch_array($res)) { + $data=$row; +} +var_dump($data); +dm_close($link); + } + + function runbak() { $config = config('api_config'); @@ -80,4 +92,4 @@ class Group return true; } -} \ No newline at end of file +} diff --git a/source/application/task/controller/Passreal.php b/source/application/task/controller/Passreal.php index 796987a..a300ad5 100644 --- a/source/application/task/controller/Passreal.php +++ b/source/application/task/controller/Passreal.php @@ -40,18 +40,18 @@ class Passreal 'statisticsTime' => $value['statisticsTime'], 'enter' => $value['enter'], 'exit' => $value['exit'], - 'pass' => $value['pass'] ?: '', + 'pass' => $value['pass'], 'holdValue' => $value['holdValue'], 'allEnter' => $value['allEnter'], 'allExit' => $value['allExit'] ]; - #Db::table('bt_passenger_flow_real')->insert($insert_arr); + Db::table('bt_passenger_flow_real')->insert($insert_arr); $requestData[] = $insert_arr; } } catch (\Exception $e) { - return $e->getMessage(); + exit( $e->getMessage() ); } $requestRes = \app\common\model\Pass::requestCreateData($requestData,'/api/pass.create/createPassengerFlowReal', $config['host_path']);