liugc 1 год назад
Родитель
Сommit
dd91bf17ad

+ 16 - 12
app/adminapi/lists/works/ServiceWorkMailLists.php

@@ -56,7 +56,7 @@ class ServiceWorkMailLists extends BaseAdminDataLists implements ListsSearchInte
      */
     public function lists(): array
     {
-        return ServiceWork::with([
+        $lists = ServiceWork::with([
                 'worker'=>function(Query $query) {
                     $query->field("id,worker_number,real_name,mobile");
                 },
@@ -68,9 +68,15 @@ class ServiceWorkMailLists extends BaseAdminDataLists implements ListsSearchInte
             ->where($this->queryWhere())
             ->where('master_worker_id', '>', 0)
             ->field(['*'])
+            ->append(['category_type_text'])
             ->order(['id' => 'desc'])
             ->select()
             ->toArray();
+        $serialNumber = 1;
+        array_walk($lists, function(&$item) use (&$serialNumber) {
+            $item['serial_number'] = $serialNumber++;
+        });
+        return $lists;
     }
 
 
@@ -93,29 +99,27 @@ class ServiceWorkMailLists extends BaseAdminDataLists implements ListsSearchInte
 
     public function setExcelComplexFields(): array
     {
-
-        /*序号	工单编号	服务类别 category_type	维修家电类型 goodsCategory.name	领单时间 receive_time	预约上门时间 finally_door_time	结单时间 finished_time
-        工程师 worker.real_name	工程师身份证号 worker.id	   工程师手机号 worker.mobile	 资格证书号 worker.id	获证日期 worker.id
-        客户信息 real_name	客户手机号 mobile	客户地址 address*/
         $zh_cn_fields = [
             '序号','工单编号', '服务类别','维修家电类型','领单时间','预约上门时间','结单时间',
             '工程师','工程师身份证号','工程师手机号','资格证书号','获证日期','客户信息','客户手机号','客户地址'
         ];
         $data_fields = [
-            'id','work_sn','category_type',function ($row) { return isset($row['goodsCategory']['name'])?$row['goodsCategory']['name']:''; },function ($row) { return $row['receive_time']?:''; },function ($row) { return isset($row['finally_door_time'])?date('Y-m-d H:i:s',$row['finally_door_time']):''; },function ($row) { return $row['finished_time']?:''; },
-            function ($row) { return isset($row['worker']['real_name'])?$row['worker']['real_name']:''; },function ($row) {
-            return isset($row['worker']['id'])?MasterWorkerInfo::where(['worker_id'=>$row['worker']['id']])->value('id_card'):'';
-            },function ($row) { return isset($row['worker']['mobile'])?$row['worker']['mobile']:''; },function ($row) {
+            'serial_number','work_sn','category_type_text',function ($row) { return isset($row['goodsCategory']['name'])?$row['goodsCategory']['name']:''; },function ($row) { return $row['receive_time']?:''; },function ($row) { return isset($row['finally_door_time'])?date('Y-m-d H:i:s',$row['finally_door_time']):''; },function ($row) { return $row['finished_time']?:''; },
+            function ($row) { return isset($row['worker']['real_name'])?$row['worker']['real_name']:''; },
+            function ($row) { return isset($row['worker']['id'])?MasterWorkerInfo::where(['worker_id'=>$row['worker']['id']])->value('id_card'):''; },
+            function ($row) { return isset($row['worker']['mobile'])?$row['worker']['mobile']:''; },
+            function ($row) {
                 if(isset($row['worker']['id'])){
                     $worker_register_id = MasterWorkerRegister::where(['worker_id'=>$row['worker']['id']])->value('id')?:0;
-                    return MasterWorkerCredentialImages::where(['worker_register_id'=>$worker_register_id])->value('number')?:'';
+                    return MasterWorkerCredentialImages::where(['audit_state'=>1, 'worker_register_id'=>$worker_register_id])->value('number')?:'';
                 }else{
                     return '';
                 }
-            },function ($row) {
+            },
+            function ($row) {
                 if(isset($row['worker']['id'])){
                     $worker_register_id = MasterWorkerRegister::where(['worker_id'=>$row['worker']['id']])->value('id')?:0;
-                    return MasterWorkerCredentialImages::where(['worker_register_id'=>$worker_register_id])->value('start_time')?:'';
+                    return MasterWorkerCredentialImages::where(['audit_state'=>1, 'worker_register_id'=>$worker_register_id])->value('start_time')?:'';
                 }else{
                     return '';
                 }

+ 4 - 2
app/common/command/SendBxMail.php

@@ -42,7 +42,7 @@ class SendBxMail extends Command
         $filename = $excelFile[1];
         if(empty($filePath)) throw new \Exception("邮件发送失败. 错误信息: 路径不存在");
 
-        $mail = new PHPMailer(true);
+        /*$mail = new PHPMailer(true);
 
         try {
             // 邮件服务器设置
@@ -77,7 +77,7 @@ class SendBxMail extends Command
             return '邮件发送成功';
         } catch (\Exception $e) {
             throw new \Exception("邮件发送失败. 错误信息: {$mail->ErrorInfo}");
-        }
+        }*/
     }
 
     public function getExcelFile()
@@ -92,10 +92,12 @@ class SendBxMail extends Command
                 Log::info('ServiceWorkMail:lists或fields不存在');
                 return '';
             }else{
+                $sheet->savePath = './public/exports/';
                 $sheet->generateExcelFile($fields['zh_cn_fields'], $lists,$filename, $fields['data_fields']);
                 return [$sheet->fileUrl(),$filename];
             }
         } catch (\Exception $e) {
+            dd($e);
             Log::info('ServiceWorkMail:'."生成职业责任险投保清单失败. 错误信息: {$e->getMessage()}");
             return '';
         }

+ 6 - 1
app/common/model/works/ServiceWork.php

@@ -15,6 +15,7 @@
 namespace app\common\model\works;
 
 
+use app\adminapi\logic\ConfigLogic;
 use app\api\logic\PerformanceLogic;
 use app\common\model\BaseModel;
 use app\common\model\equity\EquityConfig;
@@ -241,5 +242,9 @@ class ServiceWork extends BaseModel
     {
         return $this->hasOne(PropertyHead::class,'user_id','user_id');
     }
-
+    public function getCategoryTypeTextAttr($value,$data)
+    {
+        $categoryTypedata = array_column(ConfigLogic::getDictByType('category_type')['category_type'],'name','value');
+        return $categoryTypedata[$data['category_type']];
+    }
 }

+ 2 - 1
extend/excel/ExcelWriter.php

@@ -8,6 +8,7 @@ class ExcelWriter
     private $spreadsheet;
     private $sheet;
     private $fileUrl;
+    public string  $savePath = '';
 
     public function __construct()
     {
@@ -37,7 +38,7 @@ class ExcelWriter
 
     public function save($filename)
     {
-        $savePath = "./exports/";
+        $savePath = $this->savePath?:"./exports/";
         $filePath = $savePath . $filename;
         $writer = new Xlsx($this->spreadsheet);
         $writer->save($filePath);