Browse Source

在职导出

wang jun 2 months ago
parent
commit
ac67a5db4e
2 changed files with 103 additions and 2 deletions
  1. 101 0
      application/index/controller/Worker.php
  2. 2 2
      application/index/logic/workercheck.php

+ 101 - 0
application/index/controller/Worker.php

@@ -72,6 +72,107 @@ class Worker extends Controller {
 
         return json_encode($res_r, 320);
     }
+    /**
+     * 在职导出
+     *
+     * @return void
+     * @author wj
+     * @date 2025-03-14
+     */
+    public function getallworkerbycid_export() {
+        $queryinfo = request()->param();
+        $pagenum = $queryinfo['pageNum'];
+        $pagesize = $queryinfo['pageSize'];
+        $workerlogic = new workermanger();
+        $w_list = [];
+        if (isset($queryinfo['companyid']) && !empty($queryinfo['companyid'])) {
+            $cid = $queryinfo['companyid'];
+            $w_list = $workerlogic->getallworkerlistbycid($pagenum, $pagesize, $cid);
+        }
+
+        if (isset($queryinfo['wname']) && !empty($queryinfo['wname'])) {
+            $wname = $queryinfo['wname'];
+            $w_list = $workerlogic->getworkerinfobyname($queryinfo);
+        }
+        if (empty($w_list)) {
+            $this->error("无列表信息");
+        }
+
+        //wname 用户姓名 pname 所在工地 shengfengid 身份证号 dayprice 日工资 workclass 工种 telno 手机号  wage 年龄 cardno 银行卡
+        vendor('PHPExcel.PHPExcel');
+        $objPHPExcel = new \PHPExcel();
+        $pageindex = 0;
+        $objPHPExcel->setActiveSheetIndex($pageindex);
+        //5.设置表格头(即excel表格的第一行)
+        $objPHPExcel->setActiveSheetIndex($pageindex)
+            ->setCellValue('A1', '用户姓名')
+            ->setCellValue('B1', '所在工地')
+            ->setCellValue('C1', '身份证号')
+            ->setCellValue('D1', '日工资')
+            ->setCellValue('E1', '工种')
+            ->setCellValue('F1', '手机号')
+            ->setCellValue('G1', '年龄')
+            ->setCellValue('H1', '银行卡');
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getStyle('A')->getAlignment()
+            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getStyle('B')->getAlignment()
+            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getStyle('C')->getAlignment()
+            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getStyle('D')->getAlignment()
+            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getStyle('E')->getAlignment()
+            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getStyle('F')->getAlignment()
+            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getStyle('G')->getAlignment()
+            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getStyle('H')->getAlignment()
+            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getColumnDimension('A')->setWidth(20);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getColumnDimension('B')->setWidth(50);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getColumnDimension('C')->setWidth(50);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getColumnDimension('D')->setWidth(20);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getColumnDimension('E')->setWidth(20);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getColumnDimension('F')->setWidth(50);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getColumnDimension('G')->setWidth(20);
+        $objPHPExcel->setActiveSheetIndex($pageindex)->getColumnDimension('H')->setWidth(50);
+        $rowindex = 2;
+        foreach ($w_list as $key => $value) {
+            $wname = $value['wname'];
+            $pname = isset($value['pname']) ? $value['pname'] : "";
+            $shengfengid = " " . $value['shengfengid'];
+            $dayprice = $value['dayprice'];
+            $workclass = $value['workclass'];
+            $telno = $value['telno'];
+            $wage = $value['wage'];
+            $cardno = " " . $value['cardno'];
+            $objPHPExcel->getActiveSheet()->setCellValue('A' . $rowindex, $wname);
+            $objPHPExcel->getActiveSheet()->setCellValue('B' . $rowindex, $pname);
+            $objPHPExcel->getActiveSheet()->setCellValue('C' . $rowindex, $shengfengid);
+            $objPHPExcel->getActiveSheet()->setCellValue('D' . $rowindex, $dayprice);
+            $objPHPExcel->getActiveSheet()->setCellValue('E' . $rowindex, $workclass);
+            $objPHPExcel->getActiveSheet()->setCellValue('F' . $rowindex, $telno);
+            $objPHPExcel->getActiveSheet()->setCellValue('G' . $rowindex, $wage);
+            $objPHPExcel->getActiveSheet()->setCellValue('H' . $rowindex, $cardno);
+            $rowindex += 1;
+        }
+        $title = '在职员工';
+        $objPHPExcel->getActiveSheet()->setTitle($title);
+        $filename = $title . "_" . date('ymd', time()) . '.xls';
+        $filename = urlencode($filename);
+
+        //9.设置浏览器窗口下载表格
+        header("Content-Type: application/force-download");
+        header("Content-Type: application/octet-stream");
+        header("Content-Type: application/download");
+        header('Content-Type: text/html; charset=utf-8');
+        header('Content-Disposition:inline;filename="' . $filename . '"');
+        //生成excel文件
+        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
+        //下载文件在浏览器窗口
+        $objWriter->save('php://output');
+    }
     /**
      * 查询已不在公司项目的历史工作人员
      * 仅限于森一人员使用

+ 2 - 2
application/index/logic/workercheck.php

@@ -133,10 +133,10 @@ class workercheck {
                 if ($pid > 3) {
                     $t_pl = new prjlocationmodel();
                     log::info($ploaction);
+                    $ploaction = $t_pl->selinfobyprjid($pid);
                     if (!empty($ploaction)) {
                         log::info('computergps');
-                        $ploaction = $t_pl->selinfobyprjid($pid);
-						$checkradius = $ploaction['checkradius'];
+                        $checkradius = $ploaction['checkradius'];
                         $p_lng = $ploaction['gps_lng'];
                         $p_lat = $ploaction['gps_lat'];
                         $distance = $this->calculateDistance($p_lat, $p_lng, $uinfo['gps_lat'], $uinfo['gps_lng']);