north 7 years ago
parent
commit
1cface1ef9

+ 5 - 0
www/protected/controllers/HouseKeepingController.php

@@ -164,5 +164,10 @@ class HouseKeepingController extends AdminController
         $h->time = time();
         $h->save();
     }
+    public function actionOutputExcel()
+    {
+        $data = HouseKeeping::model()->findAll();
+        Service::factory('Excel1Service')->push($data);
+    }
 
 }

+ 6 - 0
www/protected/controllers/JgEmployeController.php

@@ -173,4 +173,10 @@ class JGEmployeController extends AdminController
         $employe->save();
         CommonFn::requestAjax(true,'保存成功');exit;
     }
+
+    public function actionOutputExcel()
+    {
+        $data = JGEmploye::model()->findAll();
+        $res=Service::factory('ExcelService')->push($data);
+    }
 }

+ 120 - 0
www/protected/services/Excel1Service.php

@@ -0,0 +1,120 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: PHP
+ * Date: 2016/11/28
+ * Time: 16:20
+ */
+class Excel1Service extends Service
+{
+
+
+    /**
+     * @param $data 数据
+     * @param string $name 导出的excel名称
+     * @param $export 导出的类型  execute_export 执行订单汇总 order订单明细 tech保洁师明细
+     */
+    public function push($data) {
+        error_reporting(E_ALL);
+        date_default_timezone_set('Asia/Shanghai');
+        $channel_option = ROrder::$channel_option;
+        $objPHPExcel = new PHPExcel();
+        /*以下是一些设置 ,什么作者  标题啊之类的*/
+        $objPHPExcel->getProperties()->setCreator("north")
+            ->setLastModifiedBy("north")
+            ->setTitle("数据EXCEL导出")
+            ->setSubject("数据EXCEL导出")
+            ->setDescription("备份数据")
+            ->setKeywords("excel")
+            ->setCategory("result file");
+        /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/
+        $num = 1;
+        $objPHPExcel->setActiveSheetIndex(0)
+            //Excel的第A列,uid是你查出数组的键值,下面以此类推
+            ->setCellValue('A' . $num, '姓名')//$user_name
+            ->setCellValue('B' . $num, '手机号')//$mobile
+            ->setCellValue('C' . $num, '服务地址')//$address
+            ->setCellValue('D' . $num, '服务类型')//$type
+            ->setCellValue('E' . $num, '服务形式')//$cart
+            ->setCellValue('F' . $num, '服务时间开始时间')//$server_start_time
+            ->setCellValue('G' . $num, '服务时间结束时间')//$server_end_time
+            ->setCellValue('H' . $num, '服务技能')//$skill
+            ->setCellValue('I' . $num, '预产期')//$yc_time
+            ->setCellValue('J' . $num, '年龄')//$age
+            ->setCellValue('K'.$num,'备注')//$desc
+            ->setCellValue('L'.$num,'状态')//$status
+            ->setCellValue('M'.$num,'预约日期')//$status_time
+            ->setCellValue('N'.$num,'服务人员')//$tech
+            ->setCellValue('O'.$num,'服务人员手机号')//$tech_mobile
+            ->setCellValue('P'.$num,'签约状态')//$contract
+            ->setCellValue('Q'.$num,'创建时间')//$time
+            ->setCellValue('R'.$num,'取消原因')//$cancel_cause
+            ->setCellValue('S'.$num,'门店ID')//$store_id
+        ;
+        $num += 1;
+        foreach($data as $key => $value){
+            if ($value['type'] == 1) {
+                $server_start_time = date('H:i:s',$value['server_start_time']);
+                $server_end_time = date('H:i:s',$value['server_end_time']);
+            } else {
+                $server_start_time = date('Y-m-d H:i:s',$value['server_start_time']);
+                $server_end_time = date('Y-m-d H:i:s',$value['server_end_time']);
+            }
+            $yc_time = date('Y-m-d H:i:s',$value['yc_time']);
+            $status_time = date('Y-m-d H:i:s',$value['status_time']);
+            $time = date('Y-m-d H:i:s',$value['time']);
+
+
+            $type = '';
+
+            $type = HouseKeeping::$type_option[intval($value['type'])];
+            $cart = HouseKeeping::$type_option[intval($value['cart'])];
+            //$cart = '';
+
+
+
+            $skill = '';
+            foreach ($value['skill'] as $v) {
+                $skill .= JGEmploye::$skill_options[intval($v)]['name']." ";
+            }
+
+
+
+
+            $objPHPExcel->setActiveSheetIndex(0)
+                //Excel的第A列,uid是你查出数组的键值,下面以此类推
+                ->setCellValue('A' . $num, $value['user_name'])
+                ->setCellValue('B' . $num, $value['mobile'])
+                ->setCellValue('C' . $num, $value['address'])
+                ->setCellValue('D' . $num, $type)
+                ->setCellValue('E' . $num, $cart)
+                ->setCellValue('F' . $num, $server_start_time)
+                ->setCellValue('G' . $num, $server_end_time)
+                ->setCellValue('H' . $num, $skill)
+                ->setCellValue('I' . $num, $yc_time)
+                ->setCellValue('J' . $num, $value['age'])
+                ->setCellValue('K'.$num,$value['desc'])
+                ->setCellValue('L'.$num,HouseKeeping::$status_option[intval($value['status'])])
+                ->setCellValue('M'.$num,$status_time)
+                ->setCellValue('N'.$num,$value['tech'])
+                ->setCellValue('O'.$num,$value['tech_mobile'])
+                ->setCellValue('P'.$num,$value['contract'])
+                ->setCellValue('Q'.$num,$time)
+                ->setCellValue('R'.$num,$value['cancel_cause'])
+                ->setCellValue('S'.$num,$value['store_id'])
+            ;
+            $num += 1;
+        }
+
+        $objPHPExcel->getActiveSheet()->setTitle('User');
+        $objPHPExcel->setActiveSheetIndex(0);
+        header('Content-Type: application/vnd.ms-excel');
+        $name = '家政管理-预约管理';
+        header('Content-Disposition: attachment;filename="' . $name . '.xls"');
+        header('Cache-Control: max-age=0');
+        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
+        $objWriter->save('php://output');
+        exit;
+    }
+
+}

+ 105 - 0
www/protected/services/ExcelService.php

@@ -0,0 +1,105 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: PHP
+ * Date: 2016/11/28
+ * Time: 16:20
+ */
+class ExcelService extends Service
+{
+
+
+    /**
+     * @param $data 数据
+     * @param string $name 导出的excel名称
+     * @param $export 导出的类型  execute_export 执行订单汇总 order订单明细 tech保洁师明细
+     */
+    public function push($data) {
+        error_reporting(E_ALL);
+        date_default_timezone_set('Asia/Shanghai');
+        $channel_option = ROrder::$channel_option;
+        $objPHPExcel = new PHPExcel();
+        /*以下是一些设置 ,什么作者  标题啊之类的*/
+        $objPHPExcel->getProperties()->setCreator("north")
+            ->setLastModifiedBy("north")
+            ->setTitle("数据EXCEL导出")
+            ->setSubject("数据EXCEL导出")
+            ->setDescription("备份数据")
+            ->setKeywords("excel")
+            ->setCategory("result file");
+        /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/
+        $num = 1;
+        $objPHPExcel->setActiveSheetIndex(0)
+            //Excel的第A列,uid是你查出数组的键值,下面以此类推
+            ->setCellValue('A' . $num, '姓名')//$name
+            ->setCellValue('B' . $num, '联系方式')//$phone
+            ->setCellValue('C' . $num, '性别')//$sex
+            ->setCellValue('D' . $num, '本地住址')//$address
+            //->setCellValue('G' . $num, 'charge_id')
+            ->setCellValue('E' . $num, '户籍住址')//$address
+            ->setCellValue('F' . $num, '钟点工时段')//$work_time_part
+            //->setCellValue('F' . $num, '订单处理时间')
+            ->setCellValue('G' . $num, '其他时间')//$work_time
+            ->setCellValue('H' . $num, '注册日期')//$reg_time
+            ->setCellValue('I' . $num, '工种')//$work_type
+            ->setCellValue('J' . $num, '服务技能')//$skill
+            ->setCellValue('K'.$num,'自述')//$readme
+            ->setCellValue('L'.$num,'状态')//$status
+            ->setCellValue('M'.$num,'备注')//$desc
+            ->setCellValue('N'.$num,'门店ID')//$store_id
+        ;
+        $num += 1;
+        foreach($data as $key => $value){
+
+            $reg_time = date('Y-m-d H:i:s',$value['reg_time']);
+            $work_time = date('Y-m-d H:i:s',$value['work_time']);
+            $work_time_part = '';
+            foreach ($value['work_time_part'] as $v) {
+                $start = $v['start'];
+                $end = $v['end'];
+                $work_time_part .= "[$start-$end] ";
+            }
+            $work_type = '';
+            foreach ($value['work_type'] as $v) {
+                $work_type .= JGEmploye::$work_type_options[intval($v)]['name']." ";
+            }
+            $skill = '';
+            foreach ($value['skill'] as $v) {
+                $skill .= JGEmploye::$skill_options[intval($v)]['name']." ";
+            }
+
+
+
+
+            $objPHPExcel->setActiveSheetIndex(0)
+                //Excel的第A列,uid是你查出数组的键值,下面以此类推
+                ->setCellValue('A' . $num, $value['name'])
+                ->setCellValue('B' . $num, $value['phone'])
+                ->setCellValue('C' . $num, $value['sex'])
+                ->setCellValue('D' . $num, $value['address'][0])
+                ->setCellValue('E' . $num, $value['address'][1])
+                ->setCellValue('F' . $num, $work_time_part)
+                ->setCellValue('G' . $num, $work_time)
+                ->setCellValue('H' . $num, $reg_time)
+                ->setCellValue('I' . $num, $work_type)
+                ->setCellValue('J' . $num, $skill)
+                ->setCellValue('K'.$num,$value['readme'])
+                ->setCellValue('L'.$num,JGEmploye::$status_options[intval($value['status'])]['name'])
+                ->setCellValue('M'.$num,$value['desc'])
+                ->setCellValue('N'.$num,$value['store_id'])
+            ;
+            $num += 1;
+        }
+
+        $objPHPExcel->getActiveSheet()->setTitle('User');
+        $objPHPExcel->setActiveSheetIndex(0);
+        header('Content-Type: application/vnd.ms-excel');
+        $name = '家政管理-雇员管理';
+        header('Content-Disposition: attachment;filename="' . $name . '.xls"');
+        header('Cache-Control: max-age=0');
+        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
+        $objWriter->save('php://output');
+        exit;
+    }
+
+}

+ 4 - 1
www/protected/views/houseKeeping/index.php

@@ -20,6 +20,7 @@
         <input id="filter_status" />
 
       </div>
+        <a href="#" class='easyui-linkbutton' iconCls="icon-add" plain="true" onclick="export_order('tech','');return false;">导出预约信息</a>
 
 
     </div>
@@ -741,6 +742,8 @@
     var  minute = now.getMinutes();
     return   year+"-"+month+"-"+date+" "+hour+":"+minute;
   }
-
+  function export_order(exp,export_type) {
+    window.location.href = module_router+'/OutputExcel';
+  }
 
 </script>

+ 4 - 0
www/protected/views/jgEmploye/index.php

@@ -20,6 +20,7 @@
                 <input id="filter_status" />
 
             </div>
+            <a href="#" class='easyui-linkbutton' iconCls="icon-add" plain="true" onclick="export_order('tech','');return false;">导出雇员信息</a>
 
             <div style="margin: 3px 2px;padding:5px;border: 1px solid #95B8E7;">
                 <a href="#" class='easyui-linkbutton' plain="true" iconCls="icon-add" onclick="add_content();return false;">新增雇员</a>
@@ -874,5 +875,8 @@
     function parse_extra_item(extra,is_last,index){
         return '<div data='+index+'>['+extra.type+'-'+extra.price+']'+'&nbsp;&nbsp;<a href="#"  class="del_extra">删除</a></div>';
     }
+    function export_order(exp,export_type) {
+      window.location.href = module_router+'/OutputExcel';
+    }
 
 </script>