diff --git a/app/adminapi/controller/CostConsultationReportController.php b/app/adminapi/controller/CostConsultationReportController.php
index 2d04a8868..462b7b26f 100644
--- a/app/adminapi/controller/CostConsultationReportController.php
+++ b/app/adminapi/controller/CostConsultationReportController.php
@@ -8,6 +8,7 @@ use app\common\model\cost_project\CostProject;
 use app\common\model\cost_project\CostProjectPerson;
 use app\common\model\DataReception;
 use app\common\model\dept\Dept;
+use app\common\model\ProjectCommission;
 use app\common\model\task\TaskAllocation;
 use app\common\model\TaskHandlingThreeLevelReview;
 use app\common\model\zjzx_finance\ZjzxInvoice;
@@ -89,7 +90,7 @@ class CostConsultationReportController extends  BaseAdminController
 			    //到账金额
 			    $data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['id'])->sum('amount');
 				//提成金额
-			    $data['total_commission_amount'] = 0;
+			    $data['total_commission_amount'] = ProjectCommission::where('project_id',$data['id'])->sum('bczfze');
 	    })->toArray();
 	    $count = CostProject::where($where)->count();
         return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
@@ -98,35 +99,42 @@ class CostConsultationReportController extends  BaseAdminController
     // 项目全过程跟踪表
     public function project_trace()
     {
-        $page_no = $this->request->param('page_no', 1);
-        $page_size = $this->request->param('page_size', 15);
-        $params = $this->request->param();
-        $project_name = $params['project_name'] ?? '';
-        $contract_name = $params['contract_name'] ?? '';
-
-        $query = Db::name('cost_project')->alias('p')->leftJoin('cost_approved_project c', 'p.contract_id=c.id')->where(function ($query) use ($project_name, $contract_name) {
-            if ($contract_name) {
-                $query->where('c.contract_name', 'like', '%' . $contract_name . '%');
-            }
-            if ($project_name) {
-                $query->where('p.project_name', 'like', '%' . $project_name . '%');
-            }
-        })->append(['task_allocation_status', 'task_handling_three_level_review_status', 'data_reception_status'])
-            ->withAttr('task_allocation_status', function ($data, $value) {
-                $count = TaskAllocation::where('cost_project_id', $value['id'])->count();
-                return $count > 0 ? 1 : 0;
-            })->withAttr('task_handling_three_level_review_status', function ($data, $value) {
-                $count = TaskHandlingThreeLevelReview::where('project_id', $value['id'])->count();
-                return $count > 0 ? 1 : 0;
-            })->withAttr('data_reception_status', function ($data, $value) {
-                $count = DataReception::where('project_id', $value['id'])->count();
-                return $count > 0 ? 1 : 0;
-            });
-        $count = $query->count();
-        $lists = $query->append(['dept'])->withAttr('dept', function ($value, $data) {
-            return Dept::where('id', $data['depar'])->findOrEmpty()->toArray();
-        })->page($page_no, $page_size)->select();
-        return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
+	    $params = $this->request->get();
+	    $page_no = !empty($params['page_no']) ? $params['page_no'] : 1;
+	    $page_size = !empty($params['page_size']) ? $params['page_size'] : 15;
+	    $where = [];
+	    if(!empty($params['contract_name'])){
+		    $contract_ids1 = CostApprovedProject::where('contract_name','like','%'.$params['contract_name'].'%')->column('id');
+		    $where[] = ['contract_id','in',$contract_ids1];
+	    }
+	    if(!empty($params['project_name'])){
+		    $where[] = ['project_name','like','%'.$params['project_name'].'%'];
+	    }
+	    $lists = CostProject::field('id,contract_id,project_num,project_name,depar')
+		    ->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function($data){
+			    $contract = CostApprovedProject::field('contract_name,project_director')->where('id',$data['contract_id'])->findOrEmpty();
+				$dept = Dept::field('name')->where('id', $data['depar'])->findOrEmpty();
+			    $data['contract_name'] = $contract['contract_name'];
+			    $data['project_director'] = $contract['project_director'];
+				$data['dept_name'] = $dept['name'];
+				//任务分配状态
+			    $task_allocation_status = TaskAllocation::where('cost_project_id', $data['id'])->count();
+				$data['task_allocation_status'] = $task_allocation_status > 0 ? 1 : 0;
+				//任务办理状态
+			    $task_handling_three_level_review_status = TaskHandlingThreeLevelReview::where('project_id', $data['id'])->count();
+                $data['task_handling_three_level_review_status'] = $task_handling_three_level_review_status > 0 ? 1 : 0;
+				//资料归档状态
+			    $data_reception_status = DataReception::where('project_id', $data['id'])->count();
+			    $data['data_reception_status'] = $data_reception_status > 0 ? 1 : 0;
+			    //开票金额
+			    $data['total_invoice_amount'] = ZjzxInvoice::where('project_id',$data['id'])->sum('apply_amount');
+			    //到账金额
+			    $data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['id'])->sum('amount');
+			    //提成金额
+			    $data['total_commission_amount'] = ProjectCommission::where('project_id',$data['id'])->sum('bczfze');
+		    })->toArray();
+	    $count = CostProject::where($where)->count();
+	    return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
     }
 
     /**
@@ -134,34 +142,31 @@ class CostConsultationReportController extends  BaseAdminController
      */
     public function project_invoice_receipt()
     {
-        $page_no = $this->request->param('page_no', 1);
-        $page_size = $this->request->param('page_size', 15);
-        $project_name = $params['project_name'] ?? '';
-        $depar_id = $params['depar_id'] ?? 0;
-        $query = (new CostProject)->with(['cost_project_contract']);
-        $field = 'id,project_num,project_name,depar,principal,contract_id';
-        if ($project_name) {
-            $query->where('project_name', 'like', '%' . $project_name . '%');
-        }
-        if ($depar_id) {
-            $query->where('depar', $depar_id);
-        }
-
-        $count = $query->count();
-        $lists = $query->field($field)->page($page_no, $page_size)->select()->each(function ($item) {
-            $item['start_date'] = date('Y-m-d', $item['start_date']);
-            $item['end_date'] = date('Y-m-d', $item['end_date']);
-            if ($item['depar'] > 0) {
-                $item['depar'] = Dept::where('id', $item['depar'])->value('name');
-            }
-            if ($item['principal'] > 0) {
-                $item['principal'] = Dept::where('id', $item['principal'])->value('name');
-            }
-            $item['has_invoice_amount'] = 0;
-            $item['amount_Collected'] = 0;
-            return $item;
-        });
-        return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
+	    $params = $this->request->get();
+	    $page_no = !empty($params['page_no']) ? $params['page_no'] : 1;
+	    $page_size = !empty($params['page_size']) ? $params['page_size'] : 15;
+	    $where = [];
+	    if(!empty($params['contract_name'])){
+		    $contract_ids1 = CostApprovedProject::where('contract_name','like','%'.$params['contract_name'].'%')->column('id');
+		    $where[] = ['contract_id','in',$contract_ids1];
+	    }
+	    if(!empty($params['project_name'])){
+		    $where[] = ['project_name','like','%'.$params['project_name'].'%'];
+	    }
+	    $lists = CostProject::field('id,contract_id,project_num,project_name,depar')
+		    ->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function($data){
+			    $contract = CostApprovedProject::field('contract_name,project_director')->where('id',$data['contract_id'])->findOrEmpty();
+			    $dept = Dept::field('name')->where('id', $data['depar'])->findOrEmpty();
+			    $data['contract_name'] = $contract['contract_name'];
+			    $data['project_director'] = $contract['project_director'];
+			    $data['dept_name'] = $dept['name'];
+			    //开票金额
+			    $data['total_invoice_amount'] = ZjzxInvoice::where('project_id',$data['id'])->sum('apply_amount');
+			    //到账金额
+			    $data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['id'])->sum('amount');
+		    })->toArray();
+	    $count = CostProject::where($where)->count();
+	    return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
     }
 
     /**
@@ -207,4 +212,18 @@ class CostConsultationReportController extends  BaseAdminController
         });
         return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
     }
+	
+	//项目提成统计
+	public function project_commission_statistics(){
+		$params = $this->request->get();
+		$page_no = !empty($params['page_no']) ? $params['page_no'] : 1;
+		$page_size = !empty($params['page_size']) ? $params['page_size'] : 15;
+		$where = [];
+		if(!empty($params['project_name'])){
+			$where[] = ['project_name','like','%'.$params['project_name'].'%'];
+		}
+//		if(!empty($params['date'])){
+//
+//		}
+	}
 }
diff --git a/app/adminapi/lists/ProjectCommissionLists.php b/app/adminapi/lists/ProjectCommissionLists.php
index c2fc33b41..b890807de 100644
--- a/app/adminapi/lists/ProjectCommissionLists.php
+++ b/app/adminapi/lists/ProjectCommissionLists.php
@@ -17,9 +17,12 @@ namespace app\adminapi\lists;
 
 use app\adminapi\lists\BaseAdminDataLists;
 use app\common\lists\ListsExcelInterface;
+use app\common\model\cost_project\CostApprovedProject;
+use app\common\model\cost_project\CostProject;
 use app\common\model\ProjectCommission;
 use app\common\lists\ListsSearchInterface;
 use app\common\model\ProjectCommissionDetail;
+use app\common\model\zjzx_finance\ZjzxRefund;
 
 
 /**
@@ -57,16 +60,25 @@ class ProjectCommissionLists extends BaseAdminDataLists implements ListsSearchIn
      */
     public function lists(): array
     {
-        return ProjectCommission::with(['projectInfo', 'contract'])
-            ->append(['children'])
-            ->where($this->searchWhere)
+        return ProjectCommission::withoutField('create_time,update_time,delete_time')->where($this->searchWhere)
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['id' => 'desc'])
-            ->withAttr('children', function ($value, $data){
-                $details = ProjectCommissionDetail::where('project_commission_id', $data['id'])->select();
-                return $details;
-            })
-            ->select()
+            ->select()->each(function($data){
+		        $project = CostProject::field('project_name,project_num,contract_id')->where('id',$data['project_id'])->findOrEmpty();
+		        $contract = CostApprovedProject::field('contract_name,project_director,industry_nature')->where('id',$project['contract_id'])->findOrEmpty();
+		        $data['project_name'] = $project['project_name'];
+		        $data['project_num'] = $project['project_num'];
+		        $data['contract_name'] = $contract['contract_name'];
+		        $data['project_director'] = $contract['project_director'];
+		        $data['industry_nature'] = $contract->industry_nature_text;
+		        //到账金额
+		        $data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['project_id'])->sum('amount');
+		        //已支付总额
+		        $data['total_pay_amount'] = ProjectCommission::where('project_id',$data['project_id'])->sum('bczfze');
+		        //应提成总金额
+		        $data['total_commission_amount'] = $data['total_refund_amount'] * ($data['rate'] / 100);
+		        $data['children'] = ProjectCommissionDetail::field('id,engineer,task_name,task_type,professional_type,zj_amount,sk_amount,tc_rate,tc_amount,pay_amount,other_fee')->where('project_commission_id', $data['id'])->select()->toArray();
+	        })
             ->toArray();
     }
 
diff --git a/app/adminapi/logic/ProjectCommissionLogic.php b/app/adminapi/logic/ProjectCommissionLogic.php
index 3d1bc8017..dd2986392 100644
--- a/app/adminapi/logic/ProjectCommissionLogic.php
+++ b/app/adminapi/logic/ProjectCommissionLogic.php
@@ -15,9 +15,12 @@
 namespace app\adminapi\logic;
 
 
+use app\common\model\cost_project\CostApprovedProject;
+use app\common\model\cost_project\CostProject;
 use app\common\model\ProjectCommission;
 use app\common\logic\BaseLogic;
 use app\common\model\ProjectCommissionDetail;
+use app\common\model\zjzx_finance\ZjzxRefund;
 use think\facade\Db;
 
 
@@ -45,18 +48,12 @@ class ProjectCommissionLogic extends BaseLogic
                 'dataid' => generate_sn(ProjectCommission::class,'dataid'),
                 'num' => generate_sn(ProjectCommission::class,'num'),
                 'project_id' => $params['project_id'],
-                'affcontract' => $params['affcontract'],
-                'industry' => $params['industry'],
-                'hk' => $params['hk'],
                 'rate' => $params['rate'],
-                'ticheng' => $params['ticheng'],
-                'paid_amount' => $params['paid_amount'],
                 'bczfze' => $params['bczfze'],
                 'djr' => $params['djr'],
-                'apptime' => $params['apptime'],
-                'remark' => $params['remark'],
+                'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0,
+                'remark' => $params['remark'] ?? '',
             ]);
-
             foreach ($params['project_commission_detail'] as $item) {
                 $item['project_commission_id'] = $projectCommission->id;
                 ProjectCommissionDetailLogic::add($item);
@@ -83,17 +80,13 @@ class ProjectCommissionLogic extends BaseLogic
         Db::startTrans();
         try {
             ProjectCommission::where('id', $params['id'])->update([
-                'project_id' => $params['project_id'],
-                'affcontract' => $params['affcontract'],
-                'industry' => $params['industry'],
-                'hk' => $params['hk'],
-                'rate' => $params['rate'],
-                'ticheng' => $params['ticheng'],
-                'paid_amount' => $params['paid_amount'],
-                'bczfze' => $params['bczfze'],
-                'djr' => $params['djr'],
-                'apptime' => $params['apptime'],
-                'remark' => $params['remark'],
+	            'project_id' => $params['project_id'],
+	            'rate' => $params['rate'],
+	            'bczfze' => $params['bczfze'],
+	            'djr' => $params['djr'],
+	            'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0,
+	            'remark' => $params['remark'] ?? '',
+	            'update_time' => time(),
             ]);
 
             Db::commit();
@@ -133,8 +126,21 @@ class ProjectCommissionLogic extends BaseLogic
      */
     public static function detail($params): array
     {
-        $data = ProjectCommission::with(['projectInfo', 'contract'])->findOrEmpty($params['id'])->toArray();
-        $data['project_commission_detail'] = ProjectCommissionDetail::where('project_commission_id', $params['id'])->select()->toArray();
+        $data = ProjectCommission::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id'])->toArray();
+		$project = CostProject::field('project_name,project_num,contract_id')->where('id',$data['project_id'])->findOrEmpty();
+		$contract = CostApprovedProject::field('contract_name,project_director,industry_nature')->where('id',$project['contract_id'])->findOrEmpty();
+		$data['project_name'] = $project['project_name'];
+		$data['project_num'] = $project['project_num'];
+		$data['contract_name'] = $contract['contract_name'];
+		$data['project_director'] = $contract['project_director'];
+		$data['industry_nature'] = $contract->industry_nature_text;
+	    //到账金额
+	    $data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['project_id'])->sum('amount');
+		//已支付总额
+	    $data['total_pay_amount'] = ProjectCommission::where('project_id',$data['project_id'])->sum('bczfze');
+		//应提成总金额
+	    $data['total_commission_amount'] = $data['total_refund_amount'] * ($data['rate'] / 100);
+        $data['project_commission_detail'] = ProjectCommissionDetail::field('id,engineer,task_name,task_type,professional_type,zj_amount,sk_amount,tc_rate,tc_amount,pay_amount,other_fee,remark')->where('project_commission_id', $data['id'])->select()->toArray();
         return $data;
     }
 }
\ No newline at end of file
diff --git a/app/adminapi/validate/ProjectCommissionValidate.php b/app/adminapi/validate/ProjectCommissionValidate.php
index e77392704..cab4b9daf 100644
--- a/app/adminapi/validate/ProjectCommissionValidate.php
+++ b/app/adminapi/validate/ProjectCommissionValidate.php
@@ -1,94 +1,118 @@
-<?php
-// +----------------------------------------------------------------------
-// | likeadmin快速开发前后端分离管理后台(PHP版)
-// +----------------------------------------------------------------------
-// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
-// | 开源版本可自由商用,可去除界面版权logo
-// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
-// | github下载:https://github.com/likeshop-github/likeadmin
-// | 访问官网:https://www.likeadmin.cn
-// | likeadmin团队 版权所有 拥有最终解释权
-// +----------------------------------------------------------------------
-// | author: likeadminTeam
-// +----------------------------------------------------------------------
-
-namespace app\adminapi\validate;
-
-
-use app\common\validate\BaseValidate;
-
-
-/**
- * ProjectCommission验证器
- * Class ProjectCommissionValidate
- * @package app\adminapi\validate
- */
-class ProjectCommissionValidate extends BaseValidate
-{
-
-     /**
-      * 设置校验规则
-      * @var string[]
-      */
-    protected $rule = [
-        'id' => 'require',

-    ];
-
-
-    /**
-     * 参数描述
-     * @var string[]
-     */
-    protected $field = [
-        'id' => 'id',

-    ];
-
-
-    /**
-     * @notes 添加场景
-     * @return ProjectCommissionValidate
-     * @author likeadmin
-     * @date 2024/02/23 09:37
-     */
-    public function sceneAdd()
-    {
-        return $this->remove('id', true);
-    }
-
-
-    /**
-     * @notes 编辑场景
-     * @return ProjectCommissionValidate
-     * @author likeadmin
-     * @date 2024/02/23 09:37
-     */
-    public function sceneEdit()
-    {
-        return $this->only(['id']);
-    }
-
-
-    /**
-     * @notes 删除场景
-     * @return ProjectCommissionValidate
-     * @author likeadmin
-     * @date 2024/02/23 09:37
-     */
-    public function sceneDelete()
-    {
-        return $this->only(['id']);
-    }
-
-
-    /**
-     * @notes 详情场景
-     * @return ProjectCommissionValidate
-     * @author likeadmin
-     * @date 2024/02/23 09:37
-     */
-    public function sceneDetail()
-    {
-        return $this->only(['id']);
-    }
-
+<?php
+// +----------------------------------------------------------------------
+// | likeadmin快速开发前后端分离管理后台(PHP版)
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | 开源版本可自由商用,可去除界面版权logo
+// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
+// | github下载:https://github.com/likeshop-github/likeadmin
+// | 访问官网:https://www.likeadmin.cn
+// | likeadmin团队 版权所有 拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeadminTeam
+// +----------------------------------------------------------------------
+
+namespace app\adminapi\validate;
+
+
+use app\common\model\cost_project\CostProject;
+use app\common\model\ProjectCommission;
+use app\common\validate\BaseValidate;
+
+
+/**
+ * ProjectCommission验证器
+ * Class ProjectCommissionValidate
+ * @package app\adminapi\validate
+ */
+class ProjectCommissionValidate extends BaseValidate
+{
+
+     /**
+      * 设置校验规则
+      * @var string[]
+      */
+    protected $rule = [
+        'id' => 'require|checkData',
+        'project_id' => 'require|checkProject',
+        'rate' => 'require|float|gt:0',
+        'bczfze' => 'require|float|egt:0',
+        'djr' => 'require',
+        'apptime' => 'require|dateFormat:YH-m-d',
+    ];
+
+
+    /**
+     * 参数描述
+     * @var string[]
+     */
+    protected $field = [
+        'id' => 'id',
+	    'project_id' => '项目id',
+	    'rate' => '提成比例',
+	    'bczfze' => '本次支付总额',
+	    'djr' => '登记人',
+	    'apptime' => '登记日期',
+    ];
+
+
+    /**
+     * @notes 添加场景
+     * @return ProjectCommissionValidate
+     * @author likeadmin
+     * @date 2024/02/23 09:37
+     */
+    public function sceneAdd()
+    {
+        return $this->remove('id', true);
+    }
+
+
+    /**
+     * @notes 编辑场景
+     * @return ProjectCommissionValidate
+     * @author likeadmin
+     * @date 2024/02/23 09:37
+     */
+    public function sceneEdit()
+    {
+        return $this->only(['id']);
+    }
+
+
+    /**
+     * @notes 删除场景
+     * @return ProjectCommissionValidate
+     * @author likeadmin
+     * @date 2024/02/23 09:37
+     */
+    public function sceneDelete()
+    {
+        return $this->only(['id']);
+    }
+
+
+    /**
+     * @notes 详情场景
+     * @return ProjectCommissionValidate
+     * @author likeadmin
+     * @date 2024/02/23 09:37
+     */
+    public function sceneDetail()
+    {
+        return $this->only(['id']);
+    }
+	
+	public function checkData($value): bool|string
+	{
+		$data = ProjectCommission::where('id',$value)->findOrEmpty();
+		return $data->isEmpty() ? '数据不存在' : true;
+	}
+	
+	public function checkProject($value): bool|string
+	{
+		$data = CostProject::where('id',$value)->findOrEmpty();
+		return $data->isEmpty() ? '项目信息不存在' : true;
+	}
+
 }
\ No newline at end of file
diff --git a/app/common/model/ProjectCommission.php b/app/common/model/ProjectCommission.php
index e4f51a741..035e0ba79 100644
--- a/app/common/model/ProjectCommission.php
+++ b/app/common/model/ProjectCommission.php
@@ -40,4 +40,9 @@ class ProjectCommission extends BaseModel
     {
         return $this->hasOne(CostApprovedProject::class, 'id','affcontract');
     }
+	
+	public function getAppTimeAttr($value): string
+	{
+		return !empty($value) ? date('Y-m-d',$value) : '';
+	}
 }
\ No newline at end of file