zgg 2 months ago
parent
commit
2a4b86287d

+ 90 - 26
application/admin/controller/PhOrders.php

@@ -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;
+
+    }
+
 }

+ 2 - 0
application/admin/view/ph_orders/index.html

@@ -138,12 +138,14 @@
                 {label:'订单编号',name:'sn',index:'sn',width:50,editable: false,sortable: false},
                 // {label:'创建人',name:'userName',index:'userName',width:30,editable: false,sortable: false},
                 {label:'患者姓名',name:'name',index:'name',width:30,editable: false,sortable: false},
+                {label:'床号',name:'bed',index:'bed',width:30,editable: false,sortable: false},
                 {label:'联系电话',name:'phone',index:'phone',width:40,editable: false,sortable: false},
                 {label:'科室/部门',name:'depName',index:'depName',width:40,editable: false,sortable: false},
                 {label:'预收金',name:'pre_money',index:'pre_money',width:40,editable: false,sortable: false},
                 {label:'陪护服务',name:'cateName',index:'cateName',width:40,editable: false,sortable: false},
                 {label:'开始日期',name:'start',index:'start',width:50,editable: false,sortable: false},
                 {label:'结束日期',name:'end',index:'end',width:50,editable: false,sortable: false},
+                {label:'服务天数',name:'days',index:'days',width:35,editable: false,sortable: false},
                 {label:'订单金额',name:'amount',index:'amount',width:30,editable: false,sortable: false},
                 {label:'服务费',name:'service_money',index:'service_money',width:30,editable: false,sortable: false},
                 {label:'护工',name:'workerName',index:'workerName',width:30,editable: false,sortable: false},