Răsfoiți Sursa

Merge branch 'master' of e.coding.net:zdap/weixiu/weixiu_api into data_rules-m

liugc 1 an în urmă
părinte
comite
9b75219e5b

+ 23 - 0
app/adminapi/controller/export/ExportController.php

@@ -20,6 +20,7 @@ use app\adminapi\controller\BaseAdminController;
 use app\adminapi\lists\export\ExportLists;
 use app\adminapi\logic\export\ExportLogic;
 use app\adminapi\validate\export\ExportValidate;
+use app\common\service\ExcelExportService;
 
 
 /**
@@ -105,4 +106,26 @@ class ExportController extends BaseAdminController
     }
 
 
+    /*
+     * @notes 通用下载
+     */
+    public function generalDownload()
+    {
+        $params = $this->request->get();
+        if(empty($params['download_type'])) return $this->fail('参数错误');
+        $result = ExportLogic::add([
+            'download_type' => $params['download_type']??0,
+            'params' => $params,
+            'name' => $params['download_name']??'',
+            'admin_id' => $this->adminId,
+        ]);
+        if (false === $result) {
+            return $this->fail(ExportLogic::getError());
+        }
+        // 暂时 - 立即生成导出文件
+        (new ExcelExportService)->download($result);
+        return $this->success('添加成功-'.$result, [], 1, 1);
+    }
+
+
 }

+ 22 - 0
app/adminapi/controller/master_worker/EngineerBillController.php

@@ -104,4 +104,26 @@ class EngineerBillController extends BaseAdminController
         return $this->success('打款成功', [], 1, 1);
     }
 
+
+    /*
+     * 列表导出 - 不涉及任何后续批量编号逻辑
+     */
+    public function listsDownload()
+    {
+        $params = $this->request->get();
+        $filename = "财务结算工程师";
+        $result = ExportLogic::add([
+            'download_type' => 5,
+            'params' => $params,
+            'name' => $filename,
+            'admin_id' => $this->adminId,
+        ]);
+        if (false === $result) {
+            return $this->fail(ExportLogic::getError());
+        }
+        // 暂时 - 立即生成导出文件
+        (new ExcelExportService)->download($result);
+        return $this->success('添加成功-'.$result, [], 1, 1);
+    }
+
 }

+ 1 - 0
app/adminapi/lists/finance/WorkerAccountLogLists.php

@@ -64,6 +64,7 @@ class WorkerAccountLogLists extends BaseAdminDataLists implements ListsSearchInt
     {
         $field = 'u.nickname,u.account,u.sn,u.avatar,u.mobile,al.action,al.change_amount,al.left_amount,al.change_type,al.work_sn,al.create_time';
         $lists = MasterWorkerAccountLog::alias('al')
+            ->with(['serviceWork'])
             ->join('master_worker u', 'u.id = al.worker_id')
             ->field($field)
             ->where($this->searchWhere)

+ 11 - 0
app/adminapi/lists/master_worker/EngineerBillLists.php

@@ -133,4 +133,15 @@ class EngineerBillLists extends BaseAdminDataLists implements ListsSearchInterfa
             ->count();*/
     }
 
+    public function setExcelComplexFields(): array
+    {
+        $zh_cn_fields = [
+            '工程师ID','工程师编号', '工程师姓名','工程师银行卡号','工程师开户行','支行信息','工程师上月最后结算余额'
+        ];
+        $data_fields = ['id','worker_number','real_name','bank_account','bank_name','opening_branch','left_amount'];
+        return [
+            'zh_cn_fields' => $zh_cn_fields,
+            'data_fields' => $data_fields
+        ];
+    }
 }

+ 11 - 0
app/adminapi/lists/sale/PropertyHeadAnalysisLists.php

@@ -131,4 +131,15 @@ class PropertyHeadAnalysisLists extends BaseAdminDataLists implements ListsSearc
             ->count();
     }
 
+    public function setExcelComplexFields(): array
+    {
+        $zh_cn_fields = [
+            '所属代理','所属小区', '所属销售','单数','总金额'
+        ];
+        $data_fields = ['property_name','village_name','sale_name','work_count','total_sales_amount'];
+        return [
+            'zh_cn_fields' => $zh_cn_fields,
+            'data_fields' => $data_fields
+        ];
+    }
 }

+ 14 - 1
app/adminapi/lists/sale/SaleAnalysisLists.php

@@ -95,7 +95,8 @@ class SaleAnalysisLists extends BaseAdminDataLists implements ListsSearchInterfa
             ->leftJoin('sale c', 'a.sale_id = c.id')
             ->field([
                 'a.sale_id','c.sale_name','c.mobile',
-                Db::raw("COUNT(a.work_id) AS work_count,SUM(CASE WHEN a.sale_type = 1 THEN b.work_amount ELSE 0 END) AS amount_sales_agent,SUM(CASE WHEN a.sale_type = 2 THEN b.work_amount ELSE 0 END) AS amount_sales_individual,COUNT(CASE WHEN a.sale_type = 1 THEN a.work_id ELSE null END) AS count_sales_agent,COUNT(CASE WHEN a.sale_type = 2 THEN a.work_id ELSE null END) AS count_sales_individual")
+                Db::raw("SUM( CASE WHEN a.sale_type = 1 THEN b.system_amount ELSE 0 END ) AS system_amount_agent,SUM( CASE WHEN a.sale_type = 2 THEN b.system_amount ELSE 0 END ) AS system_amount_individual,
+                COUNT(a.work_id) AS work_count,SUM(CASE WHEN a.sale_type = 1 THEN b.work_amount ELSE 0 END) AS amount_sales_agent,SUM(CASE WHEN a.sale_type = 2 THEN b.work_amount ELSE 0 END) AS amount_sales_individual,COUNT(CASE WHEN a.sale_type = 1 THEN a.work_id ELSE null END) AS count_sales_agent,COUNT(CASE WHEN a.sale_type = 2 THEN a.work_id ELSE null END) AS count_sales_individual")
             ])
             ->where($this->searchWhere)
             ->where($this->queryWhere())
@@ -134,4 +135,16 @@ class SaleAnalysisLists extends BaseAdminDataLists implements ListsSearchInterfa
             ->count();
     }
 
+    public function setExcelComplexFields(): array
+    {
+        $zh_cn_fields = [
+            '姓名','手机号', '工单数','个人工单数','个人流水金额','个人系统结算金额','签约物业工单数','签约物业流水金额','签约系统结算金额'
+        ];
+        $data_fields = ['sale_name','mobile','work_count','count_sales_individual','amount_sales_individual','system_amount_individual'
+            ,'count_sales_agent','amount_sales_agent','system_amount_agent'];
+        return [
+            'zh_cn_fields' => $zh_cn_fields,
+            'data_fields' => $data_fields
+        ];
+    }
 }

+ 5 - 0
app/common/model/master_worker/MasterWorkerAccountLog.php

@@ -3,6 +3,7 @@ namespace app\common\model\master_worker;
 
 use app\common\model\BaseModel;
 use app\common\model\MasterWorkerRegister;
+use app\common\model\works\ServiceWork;
 use think\model\concern\SoftDelete;
 
 /**
@@ -25,4 +26,8 @@ class MasterWorkerAccountLog extends BaseModel
     {
         return $this->hasOne(MasterWorker::class, 'id', 'worker_id');
     }
+    public function serviceWork()
+    {
+        return $this->hasOne(ServiceWork::class, 'work_sn', 'work_sn');
+    }
 }

+ 3 - 0
config/export.php

@@ -11,5 +11,8 @@ return [
         '2' =>  'MasterWorkerServiceOrderDownload',
         '3' =>  'UserEquityDownload',
         '4' =>  'master_commission.MasterWorkerCommissionNoticeLists',
+        '5' =>  'master_worker.EngineerBillLists',
+        '6' =>  'sale.SaleAnalysisLists',
+        '7' =>  'sale.PropertyHeadAnalysisLists',
     ],
 ];