|
@@ -120,6 +120,9 @@ class PhOrders extends Auth
|
|
|
$lists[$k]['is_zf'] = 1;
|
|
|
}
|
|
|
}
|
|
|
+ if ($v['status'] == 2){
|
|
|
+ $lists[$k]['days'] = $this->getWorkerDay($v['start'],$v['end']);
|
|
|
+ }
|
|
|
}
|
|
|
int_to_string($lists,['status' => $this->status]);
|
|
|
//数据返回
|
|
@@ -433,10 +436,14 @@ class PhOrders extends Auth
|
|
|
->value('real_name');
|
|
|
$lists[$k]['depName'] = '';
|
|
|
$lists[$k]['cateName'] = '';
|
|
|
+ $lists[$k]['price'] = '';
|
|
|
if($v['cate_id'] > 0){
|
|
|
- $lists[$k]['cateName'] = Db::name('cate')
|
|
|
+ $cate = Db::name('cate')
|
|
|
->where('id',$v['cate_id'])
|
|
|
- ->value('title');
|
|
|
+ ->field('price,title')
|
|
|
+ ->find();
|
|
|
+ $lists[$k]['cateName'] =$cate['title'];
|
|
|
+ $lists[$k]['price'] =$cate['price'];
|
|
|
}
|
|
|
if($v['dep_id'] > 0){
|
|
|
$lists[$k]['depName'] = Db::name('dep')
|
|
@@ -452,6 +459,7 @@ class PhOrders extends Auth
|
|
|
->value('b.real_name');
|
|
|
}
|
|
|
$lists[$k]['workerName'] = implode(',',$worker);
|
|
|
+ $lists[$k]['days'] = $v['status'] == 2 ? $this->getWorkerDay($v['start'],$v['end']) : '';
|
|
|
}
|
|
|
int_to_string($lists,['status' => $this->status]);
|
|
|
//实例化PHPExcel类
|
|
@@ -462,18 +470,22 @@ class PhOrders extends Auth
|
|
|
//设置表格头(即excel表格的第一行)
|
|
|
$objPHPExcel->setActiveSheetIndex(0)
|
|
|
->setCellValue('A1', '订单编号')
|
|
|
- ->setCellValue('B1', '联系人')
|
|
|
- ->setCellValue('C1', '联系电话')
|
|
|
- ->setCellValue('D1', '科室')
|
|
|
- ->setCellValue('E1', '陪护服务')
|
|
|
- ->setCellValue('F1', '护工姓名')
|
|
|
- ->setCellValue('G1', '开始日期')
|
|
|
- ->setCellValue('H1', '结束日期')
|
|
|
- ->setCellValue('I1', '订单金额')
|
|
|
- ->setCellValue('J1', '服务费')
|
|
|
- ->setCellValue('K1', '状态')
|
|
|
- ->setCellValue('L1', '下单日期')
|
|
|
- ->setCellValue('M1', '完成日期');
|
|
|
+ ->setCellValue('B1', '病人姓名')
|
|
|
+ ->setCellValue('C1', '床号')
|
|
|
+ ->setCellValue('D1', '联系人')
|
|
|
+ ->setCellValue('E1', '联系电话')
|
|
|
+ ->setCellValue('F1', '科室')
|
|
|
+ ->setCellValue('G1', '陪护服务')
|
|
|
+ ->setCellValue('H1', '服务单价')
|
|
|
+ ->setCellValue('I1', '护工姓名')
|
|
|
+ ->setCellValue('J1', '开始日期')
|
|
|
+ ->setCellValue('K1', '结束日期')
|
|
|
+ ->setCellValue('L1', '服务天数')
|
|
|
+ ->setCellValue('M1', '订单金额')
|
|
|
+ ->setCellValue('N1', '服务费')
|
|
|
+ ->setCellValue('O1', '状态')
|
|
|
+ ->setCellValue('P1', '下单日期')
|
|
|
+ ->setCellValue('Q1', '完成日期');
|
|
|
|
|
|
|
|
|
// 设置表格头水平居中
|
|
@@ -503,6 +515,14 @@ class PhOrders extends Auth
|
|
|
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('M1')->getAlignment()
|
|
|
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getStyle('N1')->getAlignment()
|
|
|
+ ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getStyle('O1')->getAlignment()
|
|
|
+ ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getStyle('P1')->getAlignment()
|
|
|
+ ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getStyle('Q1')->getAlignment()
|
|
|
+ ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
|
|
//设置列水平居中
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()
|
|
@@ -531,6 +551,14 @@ class PhOrders extends Auth
|
|
|
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('M')->getAlignment()
|
|
|
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getStyle('N')->getAlignment()
|
|
|
+ ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getStyle('O')->getAlignment()
|
|
|
+ ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getStyle('P')->getAlignment()
|
|
|
+ ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getStyle('Q')->getAlignment()
|
|
|
+ ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
|
|
|
|
|
//设置单元格宽度
|
|
@@ -547,23 +575,31 @@ class PhOrders extends Auth
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('K')->setWidth(20);
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('L')->setWidth(20);
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('M')->setWidth(20);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('N')->setWidth(20);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('O')->setWidth(20);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('P')->setWidth(20);
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('Q')->setWidth(20);
|
|
|
|
|
|
|
|
|
//循环刚取出来的数组,将数据逐一添加到excel表格。
|
|
|
for ($i = 0; $i < count($lists); $i++) {
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $lists[$i]['sn']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $lists[$i]['contact']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('C' . ($i + 2), $lists[$i]['phone']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('D' . ($i + 2), $lists[$i]['depName']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('E' . ($i + 2), $lists[$i]['cateName']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('F' . ($i + 2), $lists[$i]['workerName']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('G' . ($i + 2), $lists[$i]['start']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('H' . ($i + 2), $lists[$i]['end']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('I' . ($i + 2), $lists[$i]['amount']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('J' . ($i + 2), $lists[$i]['service_money']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('K' . ($i + 2), $lists[$i]['status_text']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('L' . ($i + 2), $lists[$i]['create_time']);
|
|
|
- $objPHPExcel->getActiveSheet()->setCellValue('M' . ($i + 2), $lists[$i]['update_time']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $lists[$i]['name']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('C' . ($i + 2), $lists[$i]['bed']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('D' . ($i + 2), $lists[$i]['contact']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('E' . ($i + 2), $lists[$i]['phone']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('F' . ($i + 2), $lists[$i]['depName']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('G' . ($i + 2), $lists[$i]['cateName']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('H' . ($i + 2), $lists[$i]['price']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('I' . ($i + 2), $lists[$i]['workerName']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('J' . ($i + 2), $lists[$i]['start']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('K' . ($i + 2), $lists[$i]['end']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('L' . ($i + 2), $lists[$i]['days']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('M' . ($i + 2), $lists[$i]['amount']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('N' . ($i + 2), $lists[$i]['service_money']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('O' . ($i + 2), $lists[$i]['status_text']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('P' . ($i + 2), $lists[$i]['create_time']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('Q' . ($i + 2), $lists[$i]['update_time']);
|
|
|
}
|
|
|
//设置保存的Excel表格名称
|
|
|
$filename = '订单列表' . date('YmdHis', time()) . '.xls';
|
|
@@ -877,4 +913,32 @@ class PhOrders extends Auth
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 计算工期(不满一天按0.5天计算)
|
|
|
+ * @param string $startDate 开始时间(格式:Y-m-d H:i:s)
|
|
|
+ * @param string $endDate 结束时间(格式:Y-m-d H:i:s)
|
|
|
+ * @return float 计算后的天数
|
|
|
+ */
|
|
|
+ function getWorkerDay($startDate, $endDate)
|
|
|
+ {
|
|
|
+ // 将日期字符串转换为时间戳
|
|
|
+ $startTimestamp = strtotime($startDate);
|
|
|
+ $endTimestamp = strtotime($endDate);
|
|
|
+
|
|
|
+ // 计算时间差(秒)
|
|
|
+ $diffSeconds = $endTimestamp - $startTimestamp;
|
|
|
+
|
|
|
+ // 计算完整的天数
|
|
|
+ $fullDays = intval($diffSeconds / (24 * 3600)); // 完整的天数
|
|
|
+ $remainingSeconds = $diffSeconds % (24 * 3600); // 剩余的秒数
|
|
|
+
|
|
|
+ // 如果剩余时间大于0,则按0.5天计算
|
|
|
+ $partialDay = ($remainingSeconds > 0) ? 0.5 : 0;
|
|
|
+
|
|
|
+ $totalDays = $fullDays + $partialDay;
|
|
|
+
|
|
|
+ return $totalDays;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|