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

168 lines
4.2 KiB
PHP

<?php
namespace App\Http\Controllers\API\H5;
use App\Http\Controllers\API\AspNetZhuanController;
use App\Http\Controllers\Controller;
use DateTime;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class NMRController extends Controller
{
//获取核磁号 本月每日剩余号源数量
public function GetMonthPlanCount()
{
$hospital_id =request('hospital_id');
$month=request('month');
// 获取给定月份的第一天
$firstDayOfMonth = date('Y-m-01', strtotime($month));
// 获取给定月份的最后一天
$lastDayOfMonth = date('Y-m-t', strtotime($month));
$today = date('Y-m-d');
$days = [];
for ($date = $firstDayOfMonth; $date <= $lastDayOfMonth; $date = date('Y-m-d', strtotime($date . ' +1 day'))) {
// 如果当前日期大于或等于今天的日期,则添加到数组中
if ($date >= $today) {
$days[] = $date;
}
}
$aspnet=new AspNetZhuanController();
$list=[];
$nmr=$aspnet::ErXian(['yyid'=>6,'data'=>$days ,'action'=>"1"],uniqid());
//获取每日数量
foreach($nmr as $k=>$v){
$t_v=[];
foreach ($v as $k1 => $v1) {
if($v1['keyong']==0){
$t_v[]=$v1;
}
}
$list[]=[
'date'=>$k,
'count'=>count($t_v)
];
}
//获取整月日期
// 获取当月的第一天
$firstDay = date("Y-m-d", strtotime($month . "-01"));
// 获取当月的最后一天
$lastDay = date("Y-m-t", strtotime($month));
$dates = array();
$k=0;
for ($i = $firstDay; $i <= $lastDay; $i = date("Y-m-d", strtotime($i . " +1 day"))) {
$xingqi=\App\Lib\Tools::GetWeekName($i);
$dates[]=[
'date'=>$i,
'xingqi'=>$xingqi,
'count'=>0
];
foreach ($list as $item) {
if($item['date'] == $i){
$dates[$k]=[
'date'=>$i,
'xingqi'=>$xingqi,
'count'=>$item['count']
];
break;
}
}
$k++;
}
return \Yz::Return(true,"查询完成",['list'=>$dates]);
}
//核磁当日号源
public function GetDayPlanList()
{
$hospital_id =request('hospital');
$date=request('date');
// 获取前后各三天的日期
$dateTime = new DateTime($date);
$days7=[];
for ($i = -3; $i <= 3; $i++) {
$dateTimeClone = clone $dateTime; // 克隆对象以避免修改原对象
$dateTimeClone->modify("$i days"); // 修改日期
$days7[] = $dateTimeClone->format('Y-m-d'); // 按照需要的格式添加到结果数组
}
$aspnet=new AspNetZhuanController();
$week7=[];
$currentDate = new DateTime();
$nmr=$aspnet::ErXian(['yyid'=>6,'data'=>$days7,'action'=>"1"],uniqid());
//获取每日数量
foreach($nmr as $k=>$v){
$t_v=[];
foreach ($v as $k1 => $v1) {
$givenDate = new DateTime($v1['DTime']);
if($v1['keyong']==0 and $givenDate > $currentDate){
$t_v[]=$v1;
}
}
$xingqi=\App\Lib\Tools::GetWeekName($k);
$week7[]=[
'date'=>$k,
'count'=>count($t_v),
'xingqi'=>$xingqi
];
}
$list=[];
if(isset($nmr[$date])){
foreach($nmr[$date] as $k=>$v){
$givenDate = new DateTime($v['DTime']);
if($givenDate > $currentDate){
$list[]=[
'id'=>$v['TimeNum'],
'time'=>$v['Time'],
'status'=>$v['keyong']==="0"?1:2,
];
}
}
}
// $list=[
// [
// 'id'=>1,
// 'status'=>1,
// 'time'=>'10:15'
// ],
// [
// 'id'=>1,
// 'status'=>1,
// 'time'=>'10:45'
// ]
// ];
// $week7=[];
// $k=0;
// foreach ($days7 as $date) {
// $xingqi=\App\Lib\Tools::GetWeekName($date);
// $week7[]=[
// 'date'=>$date,
// 'count'=>0,
// 'xingqi'=>$xingqi
// ];
// foreach ($weeklist as $plan) {
// if($plan['date'] == $date){
// $week7[$k]=[
// 'date'=>$date,
// 'xingqi'=>$xingqi,
// 'count'=>$plan['count']
// ];
// break;
// }
// }
// $k++;
// }
return \Yz::Return(true,"查询完成",['list'=>$list,'weeklist'=>$week7]);
}
}