From b3b57afc45655de67ce80e37efb35c5756f7123c Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期六, 18 七月 2026 11:54:52 +0800
Subject: [PATCH] 添加收集点和机构汇总

---
 src/modules/report/locales/zh-tw.json        |   43 +
 build/cool/eps.d.ts                          | 1056 ++++++++++++++++++++++---
 src/modules/report/views/dailysite.vue       |  526 ++++++++++++
 src/modules/report/locales/zh-cn.json        |   43 +
 src/modules/report/views/dailydepartment.vue |  523 ++++++++++++
 src/modules/report/views/joblog.vue          |  192 ++++
 src/modules/report/locales/en.json           |   43 +
 build/cool/eps.json                          |    2 
 8 files changed, 2,299 insertions(+), 129 deletions(-)

diff --git a/build/cool/eps.d.ts b/build/cool/eps.d.ts
index 38775c0..266208d 100644
--- a/build/cool/eps.d.ts
+++ b/build/cool/eps.d.ts
@@ -1714,6 +1714,612 @@
 		[key: string]: any;
 	}
 
+	interface ReportDailyDepartmentEntity {
+		/**
+		 * ID
+		 */
+		id?: number;
+
+		/**
+		 * 鏃ユ湡
+		 */
+		date?: Date;
+
+		/**
+		 * 閮ㄩ棬ID
+		 */
+		departmentId?: number;
+
+		/**
+		 * 閮ㄩ棬鍚嶇О
+		 */
+		departmentName?: string;
+
+		/**
+		 * 鎬婚噸閲�
+		 */
+		weightTotal?: number;
+
+		/**
+		 * sw60閲嶉噺
+		 */
+		weightSw60?: number;
+
+		/**
+		 * sw61閲嶉噺
+		 */
+		weightSw61?: number;
+
+		/**
+		 * sw62閲嶉噺
+		 */
+		weightSw62?: number;
+
+		/**
+		 * sw63閲嶉噺
+		 */
+		weightSw63?: number;
+
+		/**
+		 * sw64閲嶉噺
+		 */
+		weightSw64?: number;
+
+		/**
+		 * sw62_001閲嶉噺
+		 */
+		weightSw62001?: number;
+
+		/**
+		 * sw62_002閲嶉噺
+		 */
+		weightSw62002?: number;
+
+		/**
+		 * sw62_003閲嶉噺
+		 */
+		weightSw62003?: number;
+
+		/**
+		 * sw62_004閲嶉噺
+		 */
+		weightSw62004?: number;
+
+		/**
+		 * sw62_005閲嶉噺
+		 */
+		weightSw62005?: number;
+
+		/**
+		 * sw62_006閲嶉噺
+		 */
+		weightSw62006?: number;
+
+		/**
+		 * sw62_007閲嶉噺
+		 */
+		weightSw62007?: number;
+
+		/**
+		 * 鎬荤О閲嶆鏁�
+		 */
+		timeTotal?: number;
+
+		/**
+		 * sw60娆℃暟
+		 */
+		timeSw60?: number;
+
+		/**
+		 * sw61娆℃暟
+		 */
+		timeSw61?: number;
+
+		/**
+		 * sw62娆℃暟
+		 */
+		timeSw62?: number;
+
+		/**
+		 * sw63娆℃暟
+		 */
+		timeSw63?: number;
+
+		/**
+		 * sw64娆℃暟
+		 */
+		timeSw64?: number;
+
+		/**
+		 * sw62001娆℃暟
+		 */
+		timeSw62001?: number;
+
+		/**
+		 * sw62002娆℃暟
+		 */
+		timeSw62002?: number;
+
+		/**
+		 * sw62003娆℃暟
+		 */
+		timeSw62003?: number;
+
+		/**
+		 * sw62004娆℃暟
+		 */
+		timeSw62004?: number;
+
+		/**
+		 * sw62005娆℃暟
+		 */
+		timeSw62005?: number;
+
+		/**
+		 * sw62006娆℃暟
+		 */
+		timeSw62006?: number;
+
+		/**
+		 * sw62007娆℃暟
+		 */
+		timeSw62007?: number;
+
+		/**
+		 * 鎬荤⒊鎺掗噺
+		 */
+		carbonTotal?: number;
+
+		/**
+		 * sw60纰虫帓閲�
+		 */
+		carbonSw60?: number;
+
+		/**
+		 * sw61纰虫帓閲�
+		 */
+		carbonSw61?: number;
+
+		/**
+		 * sw62纰虫帓閲�
+		 */
+		carbonSw62?: number;
+
+		/**
+		 * sw63纰虫帓閲�
+		 */
+		carbonSw63?: number;
+
+		/**
+		 * sw64纰虫帓閲�
+		 */
+		carbonSw64?: number;
+
+		/**
+		 * sw62001纰虫帓閲�
+		 */
+		carbonSw62001?: number;
+
+		/**
+		 * sw62002纰虫帓閲�
+		 */
+		carbonSw62002?: number;
+
+		/**
+		 * sw62003纰虫帓閲�
+		 */
+		carbonSw62003?: number;
+
+		/**
+		 * sw62004纰虫帓閲�
+		 */
+		carbonSw62004?: number;
+
+		/**
+		 * sw62005纰虫帓閲�
+		 */
+		carbonSw62005?: number;
+
+		/**
+		 * sw62006纰虫帓閲�
+		 */
+		carbonSw62006?: number;
+
+		/**
+		 * sw62007纰虫帓閲�
+		 */
+		carbonSw62007?: number;
+
+		/**
+		 * sw62浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62?: number;
+
+		/**
+		 * sw62_001浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62001?: number;
+
+		/**
+		 * sw62_002浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62002?: number;
+
+		/**
+		 * sw62_003浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62003?: number;
+
+		/**
+		 * sw62_004浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62004?: number;
+
+		/**
+		 * sw62_005浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62005?: number;
+
+		/**
+		 * sw62_006浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62006?: number;
+
+		/**
+		 * sw62_007浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62007?: number;
+
+		/**
+		 * 鍒涘缓鏃堕棿
+		 */
+		createTime?: string;
+
+		/**
+		 * 鏇存柊鏃堕棿
+		 */
+		updateTime?: string;
+
+		/**
+		 * 浠绘剰閿��
+		 */
+		[key: string]: any;
+	}
+
+	interface ReportDailysiteEntity {
+		/**
+		 * ID
+		 */
+		id?: number;
+
+		/**
+		 * 鏃ユ湡
+		 */
+		date?: Date;
+
+		/**
+		 * 绔欑偣ID
+		 */
+		siteId?: number;
+
+		/**
+		 * 绔欑偣鍚嶇О
+		 */
+		siteName?: string;
+
+		/**
+		 * 鎬婚噸閲�
+		 */
+		weightTotal?: number;
+
+		/**
+		 * sw60閲嶉噺
+		 */
+		weightSw60?: number;
+
+		/**
+		 * sw61閲嶉噺
+		 */
+		weightSw61?: number;
+
+		/**
+		 * sw62閲嶉噺
+		 */
+		weightSw62?: number;
+
+		/**
+		 * sw63閲嶉噺
+		 */
+		weightSw63?: number;
+
+		/**
+		 * sw64閲嶉噺
+		 */
+		weightSw64?: number;
+
+		/**
+		 * sw62_001閲嶉噺
+		 */
+		weightSw62001?: number;
+
+		/**
+		 * sw62_002閲嶉噺
+		 */
+		weightSw62002?: number;
+
+		/**
+		 * sw62_003閲嶉噺
+		 */
+		weightSw62003?: number;
+
+		/**
+		 * sw62_004閲嶉噺
+		 */
+		weightSw62004?: number;
+
+		/**
+		 * sw62_005閲嶉噺
+		 */
+		weightSw62005?: number;
+
+		/**
+		 * sw62_006閲嶉噺
+		 */
+		weightSw62006?: number;
+
+		/**
+		 * sw62_007閲嶉噺
+		 */
+		weightSw62007?: number;
+
+		/**
+		 * 鎬荤О閲嶆鏁�
+		 */
+		timeTotal?: number;
+
+		/**
+		 * sw60娆℃暟
+		 */
+		timeSw60?: number;
+
+		/**
+		 * sw61娆℃暟
+		 */
+		timeSw61?: number;
+
+		/**
+		 * sw62娆℃暟
+		 */
+		timeSw62?: number;
+
+		/**
+		 * sw63娆℃暟
+		 */
+		timeSw63?: number;
+
+		/**
+		 * sw64娆℃暟
+		 */
+		timeSw64?: number;
+
+		/**
+		 * sw62001娆℃暟
+		 */
+		timeSw62001?: number;
+
+		/**
+		 * sw62002娆℃暟
+		 */
+		timeSw62002?: number;
+
+		/**
+		 * sw62003娆℃暟
+		 */
+		timeSw62003?: number;
+
+		/**
+		 * sw62004娆℃暟
+		 */
+		timeSw62004?: number;
+
+		/**
+		 * sw62005娆℃暟
+		 */
+		timeSw62005?: number;
+
+		/**
+		 * sw62006娆℃暟
+		 */
+		timeSw62006?: number;
+
+		/**
+		 * sw62007娆℃暟
+		 */
+		timeSw62007?: number;
+
+		/**
+		 * 鎬荤⒊鎺掗噺
+		 */
+		carbonTotal?: number;
+
+		/**
+		 * sw60纰虫帓閲�
+		 */
+		carbonSw60?: number;
+
+		/**
+		 * sw61纰虫帓閲�
+		 */
+		carbonSw61?: number;
+
+		/**
+		 * sw62纰虫帓閲�
+		 */
+		carbonSw62?: number;
+
+		/**
+		 * sw63纰虫帓閲�
+		 */
+		carbonSw63?: number;
+
+		/**
+		 * sw64纰虫帓閲�
+		 */
+		carbonSw64?: number;
+
+		/**
+		 * sw62001纰虫帓閲�
+		 */
+		carbonSw62001?: number;
+
+		/**
+		 * sw62002纰虫帓閲�
+		 */
+		carbonSw62002?: number;
+
+		/**
+		 * sw62003纰虫帓閲�
+		 */
+		carbonSw62003?: number;
+
+		/**
+		 * sw62004纰虫帓閲�
+		 */
+		carbonSw62004?: number;
+
+		/**
+		 * sw62005纰虫帓閲�
+		 */
+		carbonSw62005?: number;
+
+		/**
+		 * sw62006纰虫帓閲�
+		 */
+		carbonSw62006?: number;
+
+		/**
+		 * sw62007纰虫帓閲�
+		 */
+		carbonSw62007?: number;
+
+		/**
+		 * sw62浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62?: number;
+
+		/**
+		 * sw62_001浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62001?: number;
+
+		/**
+		 * sw62_002浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62002?: number;
+
+		/**
+		 * sw62_003浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62003?: number;
+
+		/**
+		 * sw62_004浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62004?: number;
+
+		/**
+		 * sw62_005浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62005?: number;
+
+		/**
+		 * sw62_006浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62006?: number;
+
+		/**
+		 * sw62_007浼扮畻閿�鍞
+		 */
+		estimatedSalesSw62007?: number;
+
+		/**
+		 * 鍒涘缓鏃堕棿
+		 */
+		createTime?: string;
+
+		/**
+		 * 鏇存柊鏃堕棿
+		 */
+		updateTime?: string;
+
+		/**
+		 * 浠绘剰閿��
+		 */
+		[key: string]: any;
+	}
+
+	interface ReportJoblogEntity {
+		/**
+		 * ID
+		 */
+		id?: number;
+
+		/**
+		 * 浠诲姟绫诲瀷: SITE_DAILY(绔欑偣鏃ユ眹鎬�), DEPT_DAILY(閮ㄩ棬鏃ユ眹鎬�)
+		 */
+		jobName?: string;
+
+		/**
+		 * 鏁版嵁鐩爣鏃ユ湡
+		 */
+		dataDate?: Date;
+
+		/**
+		 * 寮�濮嬫椂闂�
+		 */
+		startTime?: Date;
+
+		/**
+		 * 缁撴潫鏃堕棿
+		 */
+		endTime?: Date;
+
+		/**
+		 * 鐘舵��: 鏈紑濮�, 杩愯涓�, 鎴愬姛, 澶辫触
+		 */
+		status?: enum;
+
+		/**
+		 * 澶勭悊璁板綍鏁�
+		 */
+		recordsProcessed?: number;
+
+		/**
+		 * 澶辫触娆℃暟
+		 */
+		failedCount?: number;
+
+		/**
+		 * 閿欒鍫嗘爤淇℃伅
+		 */
+		errorMessage?: string;
+
+		/**
+		 * 鍒涘缓鏃堕棿
+		 */
+		createTime?: string;
+
+		/**
+		 * 鏇存柊鏃堕棿
+		 */
+		updateTime?: string;
+
+		/**
+		 * 浠绘剰閿��
+		 */
+		[key: string]: any;
+	}
+
 	interface SpaceInfoEntity {
 		/**
 		 * ID
@@ -2084,6 +2690,11 @@
 		list: BaseSysUserEntity[];
 	}
 
+	interface BasicdataBuyerPageResponse {
+		pagination: PagePagination;
+		list: BasicdataBuyerEntity[];
+	}
+
 	interface BasicdataDriverPageResponse {
 		pagination: PagePagination;
 		list: BasicdataDriverEntity[];
@@ -2114,11 +2725,6 @@
 		list: BasicdataWastetypeEntity[];
 	}
 
-	interface BasicdataBuyerPageResponse {
-		pagination: PagePagination;
-		list: BasicdataBuyerEntity[];
-	}
-
 	interface DemoGoodsPageResponse {
 		pagination: PagePagination;
 		list: DemoGoodsEntity[];
@@ -2132,6 +2738,11 @@
 	interface DictTypePageResponse {
 		pagination: PagePagination;
 		list: DictTypeEntity[];
+	}
+
+	interface OperationWastesalePageResponse {
+		pagination: PagePagination;
+		list: OperationWastesaleEntity[];
 	}
 
 	interface PluginInfoPageResponse {
@@ -2174,6 +2785,21 @@
 		list: RecycleDataEntity[];
 	}
 
+	interface ReportDailydepartmentPageResponse {
+		pagination: PagePagination;
+		list: ReportDailyDepartmentEntity[];
+	}
+
+	interface ReportDailysitePageResponse {
+		pagination: PagePagination;
+		list: ReportDailysiteEntity[];
+	}
+
+	interface ReportJoblogPageResponse {
+		pagination: PagePagination;
+		list: ReportJoblogEntity[];
+	}
+
 	interface SpaceInfoPageResponse {
 		pagination: PagePagination;
 		list: SpaceInfoEntity[];
@@ -2197,11 +2823,6 @@
 	interface UserInfoPageResponse {
 		pagination: PagePagination;
 		list: UserInfoEntity[];
-	}
-
-	interface OperationWastesalePageResponse {
-		pagination: PagePagination;
-		list: OperationWastesaleEntity[];
 	}
 
 	interface BaseCoding {
@@ -2690,6 +3311,64 @@
 		request: Request;
 	}
 
+	interface BasicdataBuyer {
+		/**
+		 * 鍒犻櫎
+		 */
+		delete(data?: any): Promise<any>;
+
+		/**
+		 * 淇敼
+		 */
+		update(data?: any): Promise<any>;
+
+		/**
+		 * 鍗曚釜淇℃伅
+		 */
+		info(data?: any): Promise<BasicdataBuyerEntity>;
+
+		/**
+		 * 鍒楄〃鏌ヨ
+		 */
+		list(data?: any): Promise<BasicdataBuyerEntity[]>;
+
+		/**
+		 * 鍒嗛〉鏌ヨ
+		 */
+		page(data?: any): Promise<BasicdataBuyerPageResponse>;
+
+		/**
+		 * 鏂板
+		 */
+		add(data?: any): Promise<any>;
+
+		/**
+		 * 鏉冮檺鏍囪瘑
+		 */
+		permission: {
+			delete: string;
+			update: string;
+			info: string;
+			list: string;
+			page: string;
+			add: string;
+		};
+
+		/**
+		 * 鏉冮檺鐘舵��
+		 */
+		_permission: {
+			delete: boolean;
+			update: boolean;
+			info: boolean;
+			list: boolean;
+			page: boolean;
+			add: boolean;
+		};
+
+		request: Request;
+	}
+
 	interface BasicdataDriver {
 		/**
 		 * 鍒犻櫎
@@ -3038,64 +3717,6 @@
 		request: Request;
 	}
 
-	interface BasicdataBuyer {
-		/**
-		 * 鍒犻櫎
-		 */
-		delete(data?: any): Promise<any>;
-
-		/**
-		 * 淇敼
-		 */
-		update(data?: any): Promise<any>;
-
-		/**
-		 * 鍗曚釜淇℃伅
-		 */
-		info(data?: any): Promise<BasicdataBuyerEntity>;
-
-		/**
-		 * 鍒楄〃鏌ヨ
-		 */
-		list(data?: any): Promise<BasicdataBuyerEntity[]>;
-
-		/**
-		 * 鍒嗛〉鏌ヨ
-		 */
-		page(data?: any): Promise<BasicdataBuyerPageResponse>;
-
-		/**
-		 * 鏂板
-		 */
-		add(data?: any): Promise<any>;
-
-		/**
-		 * 鏉冮檺鏍囪瘑
-		 */
-		permission: {
-			delete: string;
-			update: string;
-			info: string;
-			list: string;
-			page: string;
-			add: string;
-		};
-
-		/**
-		 * 鏉冮檺鐘舵��
-		 */
-		_permission: {
-			delete: boolean;
-			update: boolean;
-			info: boolean;
-			list: boolean;
-			page: boolean;
-			add: boolean;
-		};
-
-		request: Request;
-	}
-
 	interface DemoGoods {
 		/**
 		 * 鍒犻櫎
@@ -3280,6 +3901,64 @@
 		 * 鍒嗛〉鏌ヨ
 		 */
 		page(data?: any): Promise<DictTypePageResponse>;
+
+		/**
+		 * 鏂板
+		 */
+		add(data?: any): Promise<any>;
+
+		/**
+		 * 鏉冮檺鏍囪瘑
+		 */
+		permission: {
+			delete: string;
+			update: string;
+			info: string;
+			list: string;
+			page: string;
+			add: string;
+		};
+
+		/**
+		 * 鏉冮檺鐘舵��
+		 */
+		_permission: {
+			delete: boolean;
+			update: boolean;
+			info: boolean;
+			list: boolean;
+			page: boolean;
+			add: boolean;
+		};
+
+		request: Request;
+	}
+
+	interface OperationWastesale {
+		/**
+		 * 鍒犻櫎
+		 */
+		delete(data?: any): Promise<any>;
+
+		/**
+		 * 淇敼
+		 */
+		update(data?: any): Promise<any>;
+
+		/**
+		 * 鍗曚釜淇℃伅
+		 */
+		info(data?: any): Promise<OperationWastesaleEntity>;
+
+		/**
+		 * 鍒楄〃鏌ヨ
+		 */
+		list(data?: any): Promise<OperationWastesaleEntity[]>;
+
+		/**
+		 * 鍒嗛〉鏌ヨ
+		 */
+		page(data?: any): Promise<OperationWastesalePageResponse>;
 
 		/**
 		 * 鏂板
@@ -3755,6 +4434,180 @@
 		request: Request;
 	}
 
+	interface ReportDailydepartment {
+		/**
+		 * 鍒犻櫎
+		 */
+		delete(data?: any): Promise<any>;
+
+		/**
+		 * 淇敼
+		 */
+		update(data?: any): Promise<any>;
+
+		/**
+		 * 鍗曚釜淇℃伅
+		 */
+		info(data?: any): Promise<ReportDailyDepartmentEntity>;
+
+		/**
+		 * 鍒楄〃鏌ヨ
+		 */
+		list(data?: any): Promise<ReportDailyDepartmentEntity[]>;
+
+		/**
+		 * 鍒嗛〉鏌ヨ
+		 */
+		page(data?: any): Promise<ReportDailydepartmentPageResponse>;
+
+		/**
+		 * 鏂板
+		 */
+		add(data?: any): Promise<any>;
+
+		/**
+		 * 鏉冮檺鏍囪瘑
+		 */
+		permission: {
+			delete: string;
+			update: string;
+			info: string;
+			list: string;
+			page: string;
+			add: string;
+		};
+
+		/**
+		 * 鏉冮檺鐘舵��
+		 */
+		_permission: {
+			delete: boolean;
+			update: boolean;
+			info: boolean;
+			list: boolean;
+			page: boolean;
+			add: boolean;
+		};
+
+		request: Request;
+	}
+
+	interface ReportDailysite {
+		/**
+		 * 鍒犻櫎
+		 */
+		delete(data?: any): Promise<any>;
+
+		/**
+		 * 淇敼
+		 */
+		update(data?: any): Promise<any>;
+
+		/**
+		 * 鍗曚釜淇℃伅
+		 */
+		info(data?: any): Promise<ReportDailysiteEntity>;
+
+		/**
+		 * 鍒楄〃鏌ヨ
+		 */
+		list(data?: any): Promise<ReportDailysiteEntity[]>;
+
+		/**
+		 * 鍒嗛〉鏌ヨ
+		 */
+		page(data?: any): Promise<ReportDailysitePageResponse>;
+
+		/**
+		 * 鏂板
+		 */
+		add(data?: any): Promise<any>;
+
+		/**
+		 * 鏉冮檺鏍囪瘑
+		 */
+		permission: {
+			delete: string;
+			update: string;
+			info: string;
+			list: string;
+			page: string;
+			add: string;
+		};
+
+		/**
+		 * 鏉冮檺鐘舵��
+		 */
+		_permission: {
+			delete: boolean;
+			update: boolean;
+			info: boolean;
+			list: boolean;
+			page: boolean;
+			add: boolean;
+		};
+
+		request: Request;
+	}
+
+	interface ReportJoblog {
+		/**
+		 * 鍒犻櫎
+		 */
+		delete(data?: any): Promise<any>;
+
+		/**
+		 * 淇敼
+		 */
+		update(data?: any): Promise<any>;
+
+		/**
+		 * 鍗曚釜淇℃伅
+		 */
+		info(data?: any): Promise<ReportJoblogEntity>;
+
+		/**
+		 * 鍒楄〃鏌ヨ
+		 */
+		list(data?: any): Promise<ReportJoblogEntity[]>;
+
+		/**
+		 * 鍒嗛〉鏌ヨ
+		 */
+		page(data?: any): Promise<ReportJoblogPageResponse>;
+
+		/**
+		 * 鏂板
+		 */
+		add(data?: any): Promise<any>;
+
+		/**
+		 * 鏉冮檺鏍囪瘑
+		 */
+		permission: {
+			delete: string;
+			update: string;
+			info: string;
+			list: string;
+			page: string;
+			add: string;
+		};
+
+		/**
+		 * 鏉冮檺鐘舵��
+		 */
+		_permission: {
+			delete: boolean;
+			update: boolean;
+			info: boolean;
+			list: boolean;
+			page: boolean;
+			add: boolean;
+		};
+
+		request: Request;
+	}
+
 	interface SpaceInfo {
 		/**
 		 * 鍒犻櫎
@@ -4066,64 +4919,6 @@
 		request: Request;
 	}
 
-	interface OperationWastesale {
-		/**
-		 * 鍒犻櫎
-		 */
-		delete(data?: any): Promise<any>;
-
-		/**
-		 * 淇敼
-		 */
-		update(data?: any): Promise<any>;
-
-		/**
-		 * 鍗曚釜淇℃伅
-		 */
-		info(data?: any): Promise<OperationWastesaleEntity>;
-
-		/**
-		 * 鍒楄〃鏌ヨ
-		 */
-		list(data?: any): Promise<OperationWastesaleEntity[]>;
-
-		/**
-		 * 鍒嗛〉鏌ヨ
-		 */
-		page(data?: any): Promise<OperationWastesalePageResponse>;
-
-		/**
-		 * 鏂板
-		 */
-		add(data?: any): Promise<any>;
-
-		/**
-		 * 鏉冮檺鏍囪瘑
-		 */
-		permission: {
-			delete: string;
-			update: string;
-			info: string;
-			list: string;
-			page: string;
-			add: string;
-		};
-
-		/**
-		 * 鏉冮檺鐘舵��
-		 */
-		_permission: {
-			delete: boolean;
-			update: boolean;
-			info: boolean;
-			list: boolean;
-			page: boolean;
-			add: boolean;
-		};
-
-		request: Request;
-	}
-
 	interface RequestOptions {
 		url: string;
 		method?: "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "CONNECT";
@@ -4161,16 +4956,17 @@
 			};
 		};
 		basicdata: {
+			buyer: BasicdataBuyer;
 			driver: BasicdataDriver;
 			iot: BasicdataIot;
 			site: BasicdataSite;
 			sorter: BasicdataSorter;
 			vehicle: BasicdataVehicle;
 			wastetype: BasicdataWastetype;
-			buyer: BasicdataBuyer;
 		};
 		demo: { goods: DemoGoods; tenant: DemoTenant };
 		dict: { info: DictInfo; type: DictType };
+		operation: { wastesale: OperationWastesale };
 		plugin: { info: PluginInfo };
 		push: {
 			auditlog: PushAuditlog;
@@ -4181,9 +4977,13 @@
 			weight: PushWeight;
 		};
 		recycle: { data: RecycleData };
+		report: {
+			dailydepartment: ReportDailydepartment;
+			dailysite: ReportDailysite;
+			joblog: ReportJoblog;
+		};
 		space: { info: SpaceInfo; type: SpaceType };
 		task: { info: TaskInfo };
 		user: { address: UserAddress; info: UserInfo };
-		operation: { wastesale: OperationWastesale };
 	};
 }
diff --git a/build/cool/eps.json b/build/cool/eps.json
index 2001f6b..72b527f 100644
--- a/build/cool/eps.json
+++ b/build/cool/eps.json
@@ -1 +1 @@
-[{"prefix":"/admin/base/coding","name":"","api":[{"method":"get","path":"/getModuleTree"},{"method":"post","path":"/createCode"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/comm","name":"","api":[{"method":"post","path":"/personUpdate"},{"method":"get","path":"/uploadMode"},{"method":"get","path":"/permmenu"},{"method":"get","path":"/program"},{"method":"get","path":"/person"},{"method":"post","path":"/upload"},{"method":"post","path":"/logout"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/open","name":"","api":[{"method":"get","path":"/refreshToken"},{"method":"get","path":"/captcha"},{"method":"post","path":"/login"},{"method":"get","path":"/html"},{"method":"get","path":"/eps"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/department","name":"BaseSysDepartmentEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/order"},{"method":"post","path":"/list"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/log","name":"BaseSysLogEntity","api":[{"method":"post","path":"/setKeep"},{"method":"get","path":"/getKeep"},{"method":"post","path":"/clear"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"濮撳悕","nullable":true,"source":"b.name"},{"propertyName":"action","type":"string","length":"","comment":"琛屼负","nullable":false,"source":"a.action"},{"propertyName":"ip","type":"string","length":"","comment":"ip","nullable":true,"source":"a.ip"}]}},{"prefix":"/admin/base/sys/menu","name":"BaseSysMenuEntity","api":[{"method":"post","path":"/create"},{"method":"post","path":"/export"},{"method":"post","path":"/import"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/parse"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/param","name":"BaseSysParamEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/html"},{"method":"get","path":"/info"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"dataType","type":"number","length":"","comment":"鏁版嵁绫诲瀷 0-瀛楃涓� 1-瀵屾枃鏈� 2-鏂囦欢 ","nullable":false,"defaultValue":0,"source":"a.dataType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"鍚嶇О","nullable":false,"source":"a.name"},{"propertyName":"keyName","type":"string","length":"","comment":"閿�","nullable":false,"source":"a.keyName"}]}},{"prefix":"/admin/base/sys/role","name":"BaseSysRoleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"鍚嶇О","nullable":false,"source":"a.name"},{"propertyName":"label","type":"string","length":"50","comment":"瑙掕壊鏍囩","nullable":true,"source":"a.label"}]}},{"prefix":"/admin/base/sys/user","name":"BaseSysUserEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/move"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/basicdata/buyer","name":"BasicdataBuyerEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"閮ㄩ棬ID","nullable":true,"source":"a.departmentId"},{"propertyName":"name","type":"string","length":"200","comment":"鍚嶇О","nullable":false,"source":"a.name"},{"propertyName":"contact","type":"string","length":"50","comment":"鑱旂郴浜�","nullable":true,"source":"a.contact"}],"fieldLike":[{"propertyName":"name","type":"string","length":"200","comment":"鍚嶇О","nullable":false,"source":"a.name"},{"propertyName":"address","type":"string","length":"255","comment":"鍦板潃","nullable":true,"source":"a.address"}],"keyWordLikeFields":[]}},{"prefix":"/admin/basicdata/driver","name":"BasicdataDriverEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"鎵�灞炲崟浣�","nullable":true,"source":"a.departmentId"},{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":0,"dict":["婵�娲�","绂佺敤"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessId","type":"string","length":"64","comment":"韬唤璇佸彿","nullable":false,"source":"a.businessId"},{"propertyName":"phone","type":"string","length":"32","comment":"鎵嬫満鍙�","nullable":true,"source":"a.phone"},{"propertyName":"licenseNo","type":"string","length":"64","comment":"椹鹃┒璇佸彿","nullable":true,"source":"a.licenseNo"}]}},{"prefix":"/admin/basicdata/iot","name":"BasicdataIotEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"iotTypeCode","type":"string","length":"","comment":"缁堢绫诲瀷","nullable":false,"source":"a.iotTypeCode"},{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":1,"dict":["绂佺敤","鍚敤"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"iotName","type":"string","length":"","comment":"缁堢鍚嶇О","nullable":false,"source":"a.iotName"},{"propertyName":"iotCode","type":"string","length":"","comment":"缁堢缂栫爜","nullable":false,"source":"a.iotCode"}]}},{"prefix":"/admin/basicdata/site","name":"BasicdataSiteEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"number","length":"","comment":"褰掑睘鍗曚綅","nullable":false,"source":"a.departmentId"},{"propertyName":"siteType","type":"string","length":"","comment":"绔欑偣绫诲瀷","nullable":false,"defaultValue":"鏀堕泦鐐�","dict":"sitetype","source":"a.siteType"},{"propertyName":"status","type":"number","length":"","comment":"鏄惁鍚敤","nullable":false,"defaultValue":1,"dict":["绂佺敤","鍚敤"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"address","type":"string","length":"","comment":"鍦板潃","nullable":false,"source":"a.address"},{"propertyName":"leader","type":"string","length":"","comment":"璐熻矗浜�","nullable":false,"source":"a.leader"}]}},{"prefix":"/admin/basicdata/sorter","name":"BasicdataSorterEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":0,"dict":["鍦ㄨ亴","绂昏亴","绂佺敤"],"source":"a.status"},{"propertyName":"departmentId","type":"bigint","length":"","comment":"鎵�灞炲崟浣�","nullable":true,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessName","type":"string","length":"64","comment":"濮撳悕","nullable":false,"source":"a.businessName"},{"propertyName":"businessId","type":"string","length":"32","comment":"韬唤璇佸彿","nullable":true,"source":"a.businessId"},{"propertyName":"phone","type":"string","length":"32","comment":"鎵嬫満鍙�","nullable":true,"source":"a.phone"}]}},{"prefix":"/admin/basicdata/vehicle","name":"BasicdataVehicleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"vehicleType","type":"string","length":"","comment":"杞﹀瀷","nullable":false,"defaultValue":"鍘㈠紡璐ц溅","dict":"vehicletype","source":"a.vehicleType"},{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":0,"dict":["鍚敤","绂佺敤"],"source":"a.status"},{"propertyName":"departmentId","type":"bigint","length":"","comment":"鎵�灞炲崟浣�","nullable":true,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessId","type":"string","length":"32","comment":"杞︾墝鍙�","nullable":false,"source":"a.businessId"},{"propertyName":"defaultDriver","type":"bigint","length":"","comment":"榛樿鍙告満","nullable":true,"source":"a.defaultDriver"}]}},{"prefix":"/admin/basicdata/wastetype","name":"BasicdataWastetypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"isRecyclable","type":"number","length":"","comment":"鏄惁鍙洖鏀�","nullable":false,"defaultValue":0,"dict":["鍚�","鏄�"],"source":"a.isRecyclable"},{"propertyName":"status","type":"number","length":"","comment":"鏄惁鍚敤","nullable":false,"defaultValue":1,"dict":["绂佺敤","鍚敤"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"鍚嶇О","nullable":false,"source":"a.name"},{"propertyName":"code","type":"string","length":"","comment":"浠g爜","nullable":false,"source":"a.code"}]}},{"prefix":"/admin/demo/goods","name":"DemoGoodsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":1,"dict":["绂佺敤","鍚敤"],"source":"a.status"}],"fieldLike":[{"propertyName":"title","type":"string","length":"50","comment":"鏍囬","nullable":false,"source":"a.title"}],"keyWordLikeFields":[{"propertyName":"description","type":"string","length":"","comment":"鎻忚堪","nullable":true,"source":"a.description"}]}},{"prefix":"/admin/demo/tenant","name":"DemoGoodsEntity","api":[{"method":"post","path":"/noTenant"},{"method":"post","path":"/noUse"},{"method":"post","path":"/use"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/info","name":"DictInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/types"},{"method":"post","path":"/data"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/type","name":"DictTypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/operation/wastesale","name":"OperationWastesaleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"閮ㄩ棬ID","nullable":false,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/plugin/info","name":"PluginInfoEntity","api":[{"method":"post","path":"/install"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/push/auditlog","name":"PushAuditlogEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"瀹㈡埛绔疘D","nullable":false,"source":"a.deviceNo"},{"propertyName":"pushType","type":"string","length":"","comment":"鎺ㄩ�佺被鍨�","nullable":false,"defaultValue":"weight","dict":["weight","health_gps","vehicle_gps","driver_anomaly","others"],"source":"a.pushType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"errorMessage","type":"text","length":"","comment":"閿欒杩斿洖淇℃伅","nullable":true,"source":"a.errorMessage"}]}},{"prefix":"/admin/push/cameragps","name":"PushCameraGpsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"string","length":"","comment":"瀹氫綅绮惧害","nullable":false,"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"sn","type":"string","length":"","comment":"璁惧搴忓垪鍙�","nullable":false,"source":"a.sn"}]}},{"prefix":"/admin/push/deviceonoff","name":"PushDeviceOnoffEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"deviceId","type":"string","length":"","comment":"璁惧ID","nullable":false,"source":"a.deviceId"},{"propertyName":"subSerial","type":"string","length":"","comment":"瀛愬簭鍒楀彿","nullable":true,"source":"a.subSerial"},{"propertyName":"deviceName","type":"string","length":"","comment":"璁惧鍚嶇О","nullable":true,"source":"a.deviceName"}]}},{"prefix":"/admin/push/siteweight","name":"PushSiteweightEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"璁惧鍙�","nullable":false,"source":"a.deviceNo"},{"propertyName":"siteType","type":"string","length":"","comment":"绔欑偣绫诲瀷","nullable":false,"defaultValue":"鏀堕泦鐐�","dict":"sitetype","source":"d.siteType"}],"fieldLike":[{"propertyName":"deviceNo","type":"string","length":"","comment":"璁惧鍙�","nullable":false,"source":"a.deviceNo"}],"keyWordLikeFields":[]}},{"prefix":"/admin/push/vehiclegps","name":"PushVehicleGpsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"string","length":"","comment":"瀹氫綅绮惧害","nullable":false,"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"sn","type":"string","length":"","comment":"璁惧搴忓垪鍙�","nullable":false,"source":"a.sn"},{"propertyName":"vehicleNo","type":"string","length":"","comment":"杞︾墝鍙�","nullable":true,"source":"a.vehicleNo"}]}},{"prefix":"/admin/push/weight","name":"PushWeightEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"璁惧鍙�","nullable":false,"source":"a.deviceNo"},{"propertyName":"garbageType","type":"string","length":"","comment":"鍨冨溇绫诲瀷","nullable":false,"source":"a.garbageType"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/recycle/data","name":"RecycleDataEntity","api":[{"method":"post","path":"/restore"},{"method":"get","path":"/info"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"userName","type":"string","length":"","comment":"濮撳悕","nullable":true,"source":"b.name"},{"propertyName":"url","type":"string","length":"","comment":"璇锋眰鐨勬帴鍙�","nullable":true,"source":"a.url"}]}},{"prefix":"/admin/space/info","name":"SpaceInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"type","type":"string","length":"","comment":"绫诲瀷","nullable":false,"source":"a.type"},{"propertyName":"classifyId","type":"number","length":"","comment":"鍒嗙被ID","nullable":true,"source":"a.classifyId"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/space/type","name":"SpaceTypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/task/info","name":"TaskInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/start"},{"method":"post","path":"/once"},{"method":"post","path":"/stop"},{"method":"get","path":"/info"},{"method":"post","path":"/page"},{"method":"get","path":"/log"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"鐘舵�� 0-鍋滄 1-杩愯","nullable":false,"defaultValue":1,"source":"a.status"},{"propertyName":"type","type":"number","length":"","comment":"鐘舵�� 0-绯荤粺 1-鐢ㄦ埛","nullable":false,"defaultValue":0,"source":"a.type"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/user/address","name":"UserAddressEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/user/info","name":"UserInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":1,"dict":["绂佺敤","姝e父","宸叉敞閿�"],"source":"a.status"},{"propertyName":"gender","type":"number","length":"","comment":"鎬у埆","nullable":false,"defaultValue":0,"dict":["鏈煡","鐢�","濂�"],"source":"a.gender"},{"propertyName":"loginType","type":"number","length":"","comment":"鐧诲綍鏂瑰紡","nullable":false,"defaultValue":0,"dict":["灏忕▼搴�","鍏紬鍙�","H5"],"source":"a.loginType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"nickName","type":"string","length":"","comment":"鏄电О","nullable":true,"source":"a.nickName"},{"propertyName":"phone","type":"string","length":"","comment":"鎵嬫満鍙�","nullable":true,"source":"a.phone"}]}}]
\ No newline at end of file
+[{"prefix":"/admin/base/coding","name":"","api":[{"method":"get","path":"/getModuleTree"},{"method":"post","path":"/createCode"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/comm","name":"","api":[{"method":"post","path":"/personUpdate"},{"method":"get","path":"/uploadMode"},{"method":"get","path":"/permmenu"},{"method":"get","path":"/program"},{"method":"get","path":"/person"},{"method":"post","path":"/upload"},{"method":"post","path":"/logout"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/open","name":"","api":[{"method":"get","path":"/refreshToken"},{"method":"get","path":"/captcha"},{"method":"post","path":"/login"},{"method":"get","path":"/html"},{"method":"get","path":"/eps"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/department","name":"BaseSysDepartmentEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/order"},{"method":"post","path":"/list"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/log","name":"BaseSysLogEntity","api":[{"method":"post","path":"/setKeep"},{"method":"get","path":"/getKeep"},{"method":"post","path":"/clear"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"濮撳悕","nullable":true,"source":"b.name"},{"propertyName":"action","type":"string","length":"","comment":"琛屼负","nullable":false,"source":"a.action"},{"propertyName":"ip","type":"string","length":"","comment":"ip","nullable":true,"source":"a.ip"}]}},{"prefix":"/admin/base/sys/menu","name":"BaseSysMenuEntity","api":[{"method":"post","path":"/create"},{"method":"post","path":"/export"},{"method":"post","path":"/import"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/parse"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/param","name":"BaseSysParamEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/html"},{"method":"get","path":"/info"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"dataType","type":"number","length":"","comment":"鏁版嵁绫诲瀷 0-瀛楃涓� 1-瀵屾枃鏈� 2-鏂囦欢 ","nullable":false,"defaultValue":0,"source":"a.dataType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"鍚嶇О","nullable":false,"source":"a.name"},{"propertyName":"keyName","type":"string","length":"","comment":"閿�","nullable":false,"source":"a.keyName"}]}},{"prefix":"/admin/base/sys/role","name":"BaseSysRoleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"鍚嶇О","nullable":false,"source":"a.name"},{"propertyName":"label","type":"string","length":"50","comment":"瑙掕壊鏍囩","nullable":true,"source":"a.label"}]}},{"prefix":"/admin/base/sys/user","name":"BaseSysUserEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/move"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/basicdata/buyer","name":"BasicdataBuyerEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"閮ㄩ棬ID","nullable":true,"source":"a.departmentId"},{"propertyName":"name","type":"string","length":"200","comment":"鍚嶇О","nullable":false,"source":"a.name"},{"propertyName":"contact","type":"string","length":"50","comment":"鑱旂郴浜�","nullable":true,"source":"a.contact"}],"fieldLike":[{"propertyName":"name","type":"string","length":"200","comment":"鍚嶇О","nullable":false,"source":"a.name"},{"propertyName":"address","type":"string","length":"255","comment":"鍦板潃","nullable":true,"source":"a.address"}],"keyWordLikeFields":[]}},{"prefix":"/admin/basicdata/driver","name":"BasicdataDriverEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"鎵�灞炲崟浣�","nullable":true,"source":"a.departmentId"},{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":0,"dict":["婵�娲�","绂佺敤"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessId","type":"string","length":"64","comment":"韬唤璇佸彿","nullable":false,"source":"a.businessId"},{"propertyName":"phone","type":"string","length":"32","comment":"鎵嬫満鍙�","nullable":true,"source":"a.phone"},{"propertyName":"licenseNo","type":"string","length":"64","comment":"椹鹃┒璇佸彿","nullable":true,"source":"a.licenseNo"}]}},{"prefix":"/admin/basicdata/iot","name":"BasicdataIotEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"iotTypeCode","type":"string","length":"","comment":"缁堢绫诲瀷","nullable":false,"source":"a.iotTypeCode"},{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":1,"dict":["绂佺敤","鍚敤"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"iotName","type":"string","length":"","comment":"缁堢鍚嶇О","nullable":false,"source":"a.iotName"},{"propertyName":"iotCode","type":"string","length":"","comment":"缁堢缂栫爜","nullable":false,"source":"a.iotCode"}]}},{"prefix":"/admin/basicdata/site","name":"BasicdataSiteEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"number","length":"","comment":"褰掑睘鍗曚綅","nullable":false,"source":"a.departmentId"},{"propertyName":"siteType","type":"string","length":"","comment":"绔欑偣绫诲瀷","nullable":false,"defaultValue":"鏀堕泦鐐�","dict":"sitetype","source":"a.siteType"},{"propertyName":"status","type":"number","length":"","comment":"鏄惁鍚敤","nullable":false,"defaultValue":1,"dict":["绂佺敤","鍚敤"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"address","type":"string","length":"","comment":"鍦板潃","nullable":false,"source":"a.address"},{"propertyName":"leader","type":"string","length":"","comment":"璐熻矗浜�","nullable":false,"source":"a.leader"}]}},{"prefix":"/admin/basicdata/sorter","name":"BasicdataSorterEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":0,"dict":["鍦ㄨ亴","绂昏亴","绂佺敤"],"source":"a.status"},{"propertyName":"departmentId","type":"bigint","length":"","comment":"鎵�灞炲崟浣�","nullable":true,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessName","type":"string","length":"64","comment":"濮撳悕","nullable":false,"source":"a.businessName"},{"propertyName":"businessId","type":"string","length":"32","comment":"韬唤璇佸彿","nullable":true,"source":"a.businessId"},{"propertyName":"phone","type":"string","length":"32","comment":"鎵嬫満鍙�","nullable":true,"source":"a.phone"}]}},{"prefix":"/admin/basicdata/vehicle","name":"BasicdataVehicleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"vehicleType","type":"string","length":"","comment":"杞﹀瀷","nullable":false,"defaultValue":"鍘㈠紡璐ц溅","dict":"vehicletype","source":"a.vehicleType"},{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":0,"dict":["鍚敤","绂佺敤"],"source":"a.status"},{"propertyName":"departmentId","type":"bigint","length":"","comment":"鎵�灞炲崟浣�","nullable":true,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessId","type":"string","length":"32","comment":"杞︾墝鍙�","nullable":false,"source":"a.businessId"},{"propertyName":"defaultDriver","type":"bigint","length":"","comment":"榛樿鍙告満","nullable":true,"source":"a.defaultDriver"}]}},{"prefix":"/admin/basicdata/wastetype","name":"BasicdataWastetypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"isRecyclable","type":"number","length":"","comment":"鏄惁鍙洖鏀�","nullable":false,"defaultValue":0,"dict":["鍚�","鏄�"],"source":"a.isRecyclable"},{"propertyName":"status","type":"number","length":"","comment":"鏄惁鍚敤","nullable":false,"defaultValue":1,"dict":["绂佺敤","鍚敤"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"鍚嶇О","nullable":false,"source":"a.name"},{"propertyName":"code","type":"string","length":"","comment":"浠g爜","nullable":false,"source":"a.code"}]}},{"prefix":"/admin/demo/goods","name":"DemoGoodsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":1,"dict":["绂佺敤","鍚敤"],"source":"a.status"}],"fieldLike":[{"propertyName":"title","type":"string","length":"50","comment":"鏍囬","nullable":false,"source":"a.title"}],"keyWordLikeFields":[{"propertyName":"description","type":"string","length":"","comment":"鎻忚堪","nullable":true,"source":"a.description"}]}},{"prefix":"/admin/demo/tenant","name":"DemoGoodsEntity","api":[{"method":"post","path":"/noTenant"},{"method":"post","path":"/noUse"},{"method":"post","path":"/use"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/info","name":"DictInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/types"},{"method":"post","path":"/data"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/type","name":"DictTypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/operation/wastesale","name":"OperationWastesaleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"閮ㄩ棬ID","nullable":false,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/plugin/info","name":"PluginInfoEntity","api":[{"method":"post","path":"/install"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/push/auditlog","name":"PushAuditlogEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"瀹㈡埛绔疘D","nullable":false,"source":"a.deviceNo"},{"propertyName":"pushType","type":"string","length":"","comment":"鎺ㄩ�佺被鍨�","nullable":false,"defaultValue":"weight","dict":["weight","health_gps","vehicle_gps","driver_anomaly","others"],"source":"a.pushType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"errorMessage","type":"text","length":"","comment":"閿欒杩斿洖淇℃伅","nullable":true,"source":"a.errorMessage"}]}},{"prefix":"/admin/push/cameragps","name":"PushCameraGpsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"string","length":"","comment":"瀹氫綅绮惧害","nullable":false,"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"sn","type":"string","length":"","comment":"璁惧搴忓垪鍙�","nullable":false,"source":"a.sn"}]}},{"prefix":"/admin/push/deviceonoff","name":"PushDeviceOnoffEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"deviceId","type":"string","length":"","comment":"璁惧ID","nullable":false,"source":"a.deviceId"},{"propertyName":"subSerial","type":"string","length":"","comment":"瀛愬簭鍒楀彿","nullable":true,"source":"a.subSerial"},{"propertyName":"deviceName","type":"string","length":"","comment":"璁惧鍚嶇О","nullable":true,"source":"a.deviceName"}]}},{"prefix":"/admin/push/siteweight","name":"PushSiteweightEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"璁惧鍙�","nullable":false,"source":"a.deviceNo"},{"propertyName":"siteType","type":"string","length":"","comment":"绔欑偣绫诲瀷","nullable":false,"defaultValue":"鏀堕泦鐐�","dict":"sitetype","source":"d.siteType"}],"fieldLike":[{"propertyName":"deviceNo","type":"string","length":"","comment":"璁惧鍙�","nullable":false,"source":"a.deviceNo"}],"keyWordLikeFields":[]}},{"prefix":"/admin/push/vehiclegps","name":"PushVehicleGpsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"string","length":"","comment":"瀹氫綅绮惧害","nullable":false,"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"sn","type":"string","length":"","comment":"璁惧搴忓垪鍙�","nullable":false,"source":"a.sn"},{"propertyName":"vehicleNo","type":"string","length":"","comment":"杞︾墝鍙�","nullable":true,"source":"a.vehicleNo"}]}},{"prefix":"/admin/push/weight","name":"PushWeightEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"璁惧鍙�","nullable":false,"source":"a.deviceNo"},{"propertyName":"garbageType","type":"string","length":"","comment":"鍨冨溇绫诲瀷","nullable":false,"source":"a.garbageType"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/recycle/data","name":"RecycleDataEntity","api":[{"method":"post","path":"/restore"},{"method":"get","path":"/info"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"userName","type":"string","length":"","comment":"濮撳悕","nullable":true,"source":"b.name"},{"propertyName":"url","type":"string","length":"","comment":"璇锋眰鐨勬帴鍙�","nullable":true,"source":"a.url"}]}},{"prefix":"/admin/report/dailydepartment","name":"ReportDailyDepartmentEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"date","type":"date","length":"","comment":"鏃ユ湡","nullable":false,"source":"a.date"},{"propertyName":"departmentId","type":"number","length":"","comment":"閮ㄩ棬ID","nullable":false,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"departmentName","type":"string","length":"","comment":"閮ㄩ棬鍚嶇О","nullable":false,"source":"a.departmentName"}]}},{"prefix":"/admin/report/dailysite","name":"ReportDailysiteEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"date","type":"date","length":"","comment":"鏃ユ湡","nullable":false,"source":"a.date"},{"propertyName":"siteId","type":"number","length":"","comment":"绔欑偣ID","nullable":false,"source":"a.siteId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"siteName","type":"string","length":"","comment":"绔欑偣鍚嶇О","nullable":false,"source":"a.siteName"}]}},{"prefix":"/admin/report/joblog","name":"ReportJoblogEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"dataDate","type":"date","length":"","comment":"鏁版嵁鐩爣鏃ユ湡","nullable":false,"source":"a.dataDate"},{"propertyName":"status","type":"enum","length":"","comment":"鐘舵��: 鏈紑濮�, 杩愯涓�, 鎴愬姛, 澶辫触","nullable":false,"defaultValue":"INIT","source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"jobName","type":"string","length":"","comment":"浠诲姟绫诲瀷: SITE_DAILY(绔欑偣鏃ユ眹鎬�), DEPT_DAILY(閮ㄩ棬鏃ユ眹鎬�)","nullable":false,"source":"a.jobName"}]}},{"prefix":"/admin/space/info","name":"SpaceInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"type","type":"string","length":"","comment":"绫诲瀷","nullable":false,"source":"a.type"},{"propertyName":"classifyId","type":"number","length":"","comment":"鍒嗙被ID","nullable":true,"source":"a.classifyId"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/space/type","name":"SpaceTypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/task/info","name":"TaskInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/start"},{"method":"post","path":"/once"},{"method":"post","path":"/stop"},{"method":"get","path":"/info"},{"method":"post","path":"/page"},{"method":"get","path":"/log"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"鐘舵�� 0-鍋滄 1-杩愯","nullable":false,"defaultValue":1,"source":"a.status"},{"propertyName":"type","type":"number","length":"","comment":"鐘舵�� 0-绯荤粺 1-鐢ㄦ埛","nullable":false,"defaultValue":0,"source":"a.type"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/user/address","name":"UserAddressEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/user/info","name":"UserInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"鐘舵��","nullable":false,"defaultValue":1,"dict":["绂佺敤","姝e父","宸叉敞閿�"],"source":"a.status"},{"propertyName":"gender","type":"number","length":"","comment":"鎬у埆","nullable":false,"defaultValue":0,"dict":["鏈煡","鐢�","濂�"],"source":"a.gender"},{"propertyName":"loginType","type":"number","length":"","comment":"鐧诲綍鏂瑰紡","nullable":false,"defaultValue":0,"dict":["灏忕▼搴�","鍏紬鍙�","H5"],"source":"a.loginType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"nickName","type":"string","length":"","comment":"鏄电О","nullable":true,"source":"a.nickName"},{"propertyName":"phone","type":"string","length":"","comment":"鎵嬫満鍙�","nullable":true,"source":"a.phone"}]}}]
\ No newline at end of file
diff --git a/src/modules/report/locales/en.json b/src/modules/report/locales/en.json
new file mode 100644
index 0000000..f55a723
--- /dev/null
+++ b/src/modules/report/locales/en.json
@@ -0,0 +1,43 @@
+{
+"鏈紑濮�":"鏈紑濮�",
+"杩愯涓�":"杩愯涓�",
+"鎴愬姛":"鎴愬姛",
+"澶辫触":"澶辫触",
+"浠诲姟鍚嶇О":"浠诲姟鍚嶇О",
+"鏁版嵁鏃ユ湡":"鏁版嵁鏃ユ湡",
+"鏃ユ湡鑼冨洿":"鏃ユ湡鑼冨洿",
+"鏇存柊鏃堕棿":"鏇存柊鏃堕棿",
+"澶勭悊璁板綍鏁�":"澶勭悊璁板綍鏁�",
+"澶辫触娆℃暟":"澶辫触娆℃暟",
+"閿欒鍫嗘爤淇℃伅":"閿欒鍫嗘爤淇℃伅",
+"寮�濮嬫椂闂�":"寮�濮嬫椂闂�",
+"缁撴潫鏃堕棿":"缁撴潫鏃堕棿",
+"鏃ユ湡":"鏃ユ湡",
+"绔欑偣ID":"绔欑偣鍚嶇О",
+"鎬婚噸閲�":"鎬婚噸閲�",
+"sw60閲嶉噺":"sw60閲嶉噺",
+"sw61閲嶉噺":"sw61閲嶉噺",
+"sw62閲嶉噺":"sw62閲嶉噺",
+"sw63閲嶉噺":"sw63閲嶉噺",
+"sw64閲嶉噺":"sw64閲嶉噺",
+"鎬荤О閲嶆鏁�":"鎬荤О閲嶆鏁�",
+"sw60娆℃暟":"sw60娆℃暟",
+"sw61娆℃暟":"sw61娆℃暟",
+"sw62娆℃暟":"sw62娆℃暟",
+"sw63娆℃暟":"sw63娆℃暟",
+"sw64娆℃暟":"sw64娆℃暟",
+"鎬荤⒊鎺掗噺":"鎬荤⒊鎺掗噺(kgCO鈧俥/kg)",
+"sw60纰虫帓閲�":"sw60纰虫帓閲�",
+"sw61纰虫帓閲�":"sw61纰虫帓閲�",
+"sw62纰虫帓閲�":"sw62纰虫帓閲�",
+"sw63纰虫帓閲�":"sw63纰虫帓閲�",
+"sw64纰虫帓閲�":"sw64纰虫帓閲�",
+"sw62浼扮畻閿�鍞":"sw62浼扮畻閿�鍞",
+"INIT":"INIT",
+"RUNNING":"RUNNING",
+"SUCCESS":"SUCCESS",
+"FAILED":"FAILED",
+"鏁版嵁鐩爣鏃ユ湡":"鏁版嵁鐩爣鏃ユ湡",
+"鐘舵��: 鏈紑濮�, 杩愯涓�, 鎴愬姛, 澶辫触":"鐘舵��: 鏈紑濮�, 杩愯涓�, 鎴愬姛, 澶辫触",
+"浠诲姟绫诲瀷: SITE_DAILY(绔欑偣鏃ユ眹鎬�), DEPT_DAILY(閮ㄩ棬鏃ユ眹鎬�)":"浠诲姟绫诲瀷: SITE_DAILY(绔欑偣鏃ユ眹鎬�), DEPT_DAILY(閮ㄩ棬鏃ユ眹鎬�)"
+}
\ No newline at end of file
diff --git a/src/modules/report/locales/zh-cn.json b/src/modules/report/locales/zh-cn.json
new file mode 100644
index 0000000..f55a723
--- /dev/null
+++ b/src/modules/report/locales/zh-cn.json
@@ -0,0 +1,43 @@
+{
+"鏈紑濮�":"鏈紑濮�",
+"杩愯涓�":"杩愯涓�",
+"鎴愬姛":"鎴愬姛",
+"澶辫触":"澶辫触",
+"浠诲姟鍚嶇О":"浠诲姟鍚嶇О",
+"鏁版嵁鏃ユ湡":"鏁版嵁鏃ユ湡",
+"鏃ユ湡鑼冨洿":"鏃ユ湡鑼冨洿",
+"鏇存柊鏃堕棿":"鏇存柊鏃堕棿",
+"澶勭悊璁板綍鏁�":"澶勭悊璁板綍鏁�",
+"澶辫触娆℃暟":"澶辫触娆℃暟",
+"閿欒鍫嗘爤淇℃伅":"閿欒鍫嗘爤淇℃伅",
+"寮�濮嬫椂闂�":"寮�濮嬫椂闂�",
+"缁撴潫鏃堕棿":"缁撴潫鏃堕棿",
+"鏃ユ湡":"鏃ユ湡",
+"绔欑偣ID":"绔欑偣鍚嶇О",
+"鎬婚噸閲�":"鎬婚噸閲�",
+"sw60閲嶉噺":"sw60閲嶉噺",
+"sw61閲嶉噺":"sw61閲嶉噺",
+"sw62閲嶉噺":"sw62閲嶉噺",
+"sw63閲嶉噺":"sw63閲嶉噺",
+"sw64閲嶉噺":"sw64閲嶉噺",
+"鎬荤О閲嶆鏁�":"鎬荤О閲嶆鏁�",
+"sw60娆℃暟":"sw60娆℃暟",
+"sw61娆℃暟":"sw61娆℃暟",
+"sw62娆℃暟":"sw62娆℃暟",
+"sw63娆℃暟":"sw63娆℃暟",
+"sw64娆℃暟":"sw64娆℃暟",
+"鎬荤⒊鎺掗噺":"鎬荤⒊鎺掗噺(kgCO鈧俥/kg)",
+"sw60纰虫帓閲�":"sw60纰虫帓閲�",
+"sw61纰虫帓閲�":"sw61纰虫帓閲�",
+"sw62纰虫帓閲�":"sw62纰虫帓閲�",
+"sw63纰虫帓閲�":"sw63纰虫帓閲�",
+"sw64纰虫帓閲�":"sw64纰虫帓閲�",
+"sw62浼扮畻閿�鍞":"sw62浼扮畻閿�鍞",
+"INIT":"INIT",
+"RUNNING":"RUNNING",
+"SUCCESS":"SUCCESS",
+"FAILED":"FAILED",
+"鏁版嵁鐩爣鏃ユ湡":"鏁版嵁鐩爣鏃ユ湡",
+"鐘舵��: 鏈紑濮�, 杩愯涓�, 鎴愬姛, 澶辫触":"鐘舵��: 鏈紑濮�, 杩愯涓�, 鎴愬姛, 澶辫触",
+"浠诲姟绫诲瀷: SITE_DAILY(绔欑偣鏃ユ眹鎬�), DEPT_DAILY(閮ㄩ棬鏃ユ眹鎬�)":"浠诲姟绫诲瀷: SITE_DAILY(绔欑偣鏃ユ眹鎬�), DEPT_DAILY(閮ㄩ棬鏃ユ眹鎬�)"
+}
\ No newline at end of file
diff --git a/src/modules/report/locales/zh-tw.json b/src/modules/report/locales/zh-tw.json
new file mode 100644
index 0000000..f55a723
--- /dev/null
+++ b/src/modules/report/locales/zh-tw.json
@@ -0,0 +1,43 @@
+{
+"鏈紑濮�":"鏈紑濮�",
+"杩愯涓�":"杩愯涓�",
+"鎴愬姛":"鎴愬姛",
+"澶辫触":"澶辫触",
+"浠诲姟鍚嶇О":"浠诲姟鍚嶇О",
+"鏁版嵁鏃ユ湡":"鏁版嵁鏃ユ湡",
+"鏃ユ湡鑼冨洿":"鏃ユ湡鑼冨洿",
+"鏇存柊鏃堕棿":"鏇存柊鏃堕棿",
+"澶勭悊璁板綍鏁�":"澶勭悊璁板綍鏁�",
+"澶辫触娆℃暟":"澶辫触娆℃暟",
+"閿欒鍫嗘爤淇℃伅":"閿欒鍫嗘爤淇℃伅",
+"寮�濮嬫椂闂�":"寮�濮嬫椂闂�",
+"缁撴潫鏃堕棿":"缁撴潫鏃堕棿",
+"鏃ユ湡":"鏃ユ湡",
+"绔欑偣ID":"绔欑偣鍚嶇О",
+"鎬婚噸閲�":"鎬婚噸閲�",
+"sw60閲嶉噺":"sw60閲嶉噺",
+"sw61閲嶉噺":"sw61閲嶉噺",
+"sw62閲嶉噺":"sw62閲嶉噺",
+"sw63閲嶉噺":"sw63閲嶉噺",
+"sw64閲嶉噺":"sw64閲嶉噺",
+"鎬荤О閲嶆鏁�":"鎬荤О閲嶆鏁�",
+"sw60娆℃暟":"sw60娆℃暟",
+"sw61娆℃暟":"sw61娆℃暟",
+"sw62娆℃暟":"sw62娆℃暟",
+"sw63娆℃暟":"sw63娆℃暟",
+"sw64娆℃暟":"sw64娆℃暟",
+"鎬荤⒊鎺掗噺":"鎬荤⒊鎺掗噺(kgCO鈧俥/kg)",
+"sw60纰虫帓閲�":"sw60纰虫帓閲�",
+"sw61纰虫帓閲�":"sw61纰虫帓閲�",
+"sw62纰虫帓閲�":"sw62纰虫帓閲�",
+"sw63纰虫帓閲�":"sw63纰虫帓閲�",
+"sw64纰虫帓閲�":"sw64纰虫帓閲�",
+"sw62浼扮畻閿�鍞":"sw62浼扮畻閿�鍞",
+"INIT":"INIT",
+"RUNNING":"RUNNING",
+"SUCCESS":"SUCCESS",
+"FAILED":"FAILED",
+"鏁版嵁鐩爣鏃ユ湡":"鏁版嵁鐩爣鏃ユ湡",
+"鐘舵��: 鏈紑濮�, 杩愯涓�, 鎴愬姛, 澶辫触":"鐘舵��: 鏈紑濮�, 杩愯涓�, 鎴愬姛, 澶辫触",
+"浠诲姟绫诲瀷: SITE_DAILY(绔欑偣鏃ユ眹鎬�), DEPT_DAILY(閮ㄩ棬鏃ユ眹鎬�)":"浠诲姟绫诲瀷: SITE_DAILY(绔欑偣鏃ユ眹鎬�), DEPT_DAILY(閮ㄩ棬鏃ユ眹鎬�)"
+}
\ No newline at end of file
diff --git a/src/modules/report/views/dailydepartment.vue b/src/modules/report/views/dailydepartment.vue
new file mode 100644
index 0000000..3fcedab
--- /dev/null
+++ b/src/modules/report/views/dailydepartment.vue
@@ -0,0 +1,523 @@
+<template>
+	<cl-crud ref="Crud">
+		<cl-row>
+			<!-- 鍒锋柊鎸夐挳 -->
+			<cl-refresh-btn />
+			<!-- 鏂板鎸夐挳 -->
+			<!--cl-add-btn /-->
+			<!-- 鍒犻櫎鎸夐挳 -->
+			<!--cl-multi-delete-btn /-->
+			<cl-flex1 />
+			<!-- 鏉′欢鎼滅储 -->
+			<cl-search ref="Search" />
+		</cl-row>
+
+		<cl-row>
+			<!-- 鏁版嵁琛ㄦ牸 -->
+			<cl-table ref="Table" />
+		</cl-row>
+
+		<cl-row>
+			<cl-flex1 />
+			<!-- 鍒嗛〉鎺т欢 -->
+			<cl-pagination />
+		</cl-row>
+
+		<!-- 鏂板銆佺紪杈� -->
+		<!--cl-upsert ref="Upsert" /-->
+	</cl-crud>
+</template>
+
+<script lang="ts" setup>
+defineOptions({
+	name: "report-dailydepartment"
+});
+
+import { useCrud, useTable, useUpsert, useSearch } from "@cool-vue/crud";
+import { useCool } from "/@/cool";
+import { useI18n } from "vue-i18n";
+
+const { service } = useCool();
+const { t } = useI18n();
+
+// cl-upsert
+/*
+const Upsert = useUpsert({
+	items: [
+		{
+			label: t('鏃ユ湡'),
+			prop: "date",
+			component: {
+				name: "el-date-picker",
+				props: { type: "date", valueFormat: "YYYY-MM-DD" }
+			},
+			span: 12,
+			required: true
+		},
+		{
+			label: t('閫夋嫨绔欑偣'),
+			prop: "siteId",
+			component: { vm: SiteSelect },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('绔欑偣鍚嶇О'),
+			prop: "siteName",
+			component: { name: "el-input", props: { clearable: true } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('鎬婚噸閲�'),
+			prop: "weightTotal",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw60閲嶉噺'),
+			prop: "weightSw60",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw61閲嶉噺'),
+			prop: "weightSw61",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62閲嶉噺'),
+			prop: "weightSw62",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw63閲嶉噺'),
+			prop: "weightSw63",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw64閲嶉噺'),
+			prop: "weightSw64",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_001閲嶉噺'),
+			prop: "weightSw62001",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_002閲嶉噺'),
+			prop: "weightSw62002",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_003閲嶉噺'),
+			prop: "weightSw62003",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_004閲嶉噺'),
+			prop: "weightSw62004",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_005閲嶉噺'),
+			prop: "weightSw62005",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_006閲嶉噺'),
+			prop: "weightSw62006",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_007閲嶉噺'),
+			prop: "weightSw62007",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('鎬荤О閲嶆鏁�'),
+			prop: "timeTotal",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw60娆℃暟'),
+			prop: "timeSw60",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw61娆℃暟'),
+			prop: "timeSw61",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62娆℃暟'),
+			prop: "timeSw62",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw63娆℃暟'),
+			prop: "timeSw63",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw64娆℃暟'),
+			prop: "timeSw64",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62001娆℃暟'),
+			prop: "timeSw62001",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62002娆℃暟'),
+			prop: "timeSw62002",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62003娆℃暟'),
+			prop: "timeSw62003",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62004娆℃暟'),
+			prop: "timeSw62004",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62005娆℃暟'),
+			prop: "timeSw62005",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62006娆℃暟'),
+			prop: "timeSw62006",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62007娆℃暟'),
+			prop: "timeSw62007",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('鎬荤⒊鎺掗噺'),
+			prop: "carbonTotal",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw60纰虫帓閲�'),
+			prop: "carbonSw60",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw61纰虫帓閲�'),
+			prop: "carbonSw61",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62纰虫帓閲�'),
+			prop: "carbonSw62",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw63纰虫帓閲�'),
+			prop: "carbonSw63",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw64纰虫帓閲�'),
+			prop: "carbonSw64",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62001纰虫帓閲�'),
+			prop: "carbonSw62001",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62002纰虫帓閲�'),
+			prop: "carbonSw62002",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62003纰虫帓閲�'),
+			prop: "carbonSw62003",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62004纰虫帓閲�'),
+			prop: "carbonSw62004",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62005纰虫帓閲�'),
+			prop: "carbonSw62005",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62006纰虫帓閲�'),
+			prop: "carbonSw62006",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62007纰虫帓閲�'),
+			prop: "carbonSw62007",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_001浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62001",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_002浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62002",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_003浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62003",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_004浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62004",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_005浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62005",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_006浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62006",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_007浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62007",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		}
+	]
+});
+*/
+// cl-table
+const Table = useTable({
+	columns: [
+		{ type: "selection" },
+		{
+			label: t('鏃ユ湡'),
+			prop: "date",
+			minWidth: 140,
+			sortable: "custom",
+			component: { name: "cl-date-text", props: { format: "YYYY-MM-DD" } }
+		},
+		{ label: t('閮ㄩ棬鍚嶇О'), prop: "departmentName", minWidth: 140 },
+		{ label: t('鎬婚噸閲�'), prop: "weightTotal", minWidth: 140, sortable: "custom" },
+		{ label: t('sw60閲嶉噺'), prop: "weightSw60", minWidth: 140, sortable: "custom" },
+		{ label: t('sw61閲嶉噺'), prop: "weightSw61", minWidth: 140, sortable: "custom" },
+		{ label: t('sw62閲嶉噺'), prop: "weightSw62", minWidth: 140, sortable: "custom" },
+		{ label: t('sw63閲嶉噺'), prop: "weightSw63", minWidth: 140, sortable: "custom" },
+		{ label: t('sw64閲嶉噺'), prop: "weightSw64", minWidth: 140, sortable: "custom" },
+		{ label: t('鎬荤О閲嶆鏁�'), prop: "timeTotal", minWidth: 140, sortable: "custom" },
+		{ label: t('sw60娆℃暟'), prop: "timeSw60", minWidth: 140, sortable: "custom" },
+		{ label: t('sw61娆℃暟'), prop: "timeSw61", minWidth: 140, sortable: "custom" },
+		{ label: t('sw62娆℃暟'), prop: "timeSw62", minWidth: 140, sortable: "custom" },
+		{ label: t('sw63娆℃暟'), prop: "timeSw63", minWidth: 140, sortable: "custom" },
+		{ label: t('sw64娆℃暟'), prop: "timeSw64", minWidth: 140, sortable: "custom" },
+		{ label: t('鎬荤⒊鎺掗噺'), prop: "carbonTotal", minWidth: 140, sortable: "custom" },
+		{ label: t('sw60纰虫帓閲�'), prop: "carbonSw60", minWidth: 140, sortable: "custom" },
+		{ label: t('sw61纰虫帓閲�'), prop: "carbonSw61", minWidth: 140, sortable: "custom" },
+		{ label: t('sw62纰虫帓閲�'), prop: "carbonSw62", minWidth: 140, sortable: "custom" },
+		{ label: t('sw63纰虫帓閲�'), prop: "carbonSw63", minWidth: 140, sortable: "custom" },
+		{ label: t('sw64纰虫帓閲�'), prop: "carbonSw64", minWidth: 140, sortable: "custom" },
+		{
+			label: t('sw62浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62",
+			minWidth: 140,
+			sortable: "custom"
+		},
+		{
+			label: t('鍒涘缓鏃堕棿'),
+			prop: "createTime",
+			minWidth: 170,
+			sortable: "desc",
+			component: { name: "cl-date-text" }
+		},
+		/*
+		{
+			label: t('鏇存柊鏃堕棿'),
+			prop: "updateTime",
+			minWidth: 170,
+			sortable: "custom",
+			component: { name: "cl-date-text" }
+		},
+		{ type: "op", buttons: ["edit", "delete"] }
+		*/
+	]
+});
+
+// cl-search
+const Search = useSearch();
+
+// cl-crud
+const Crud = useCrud(
+	{
+		service: service.report.dailydepartment
+	},
+	(app) => {
+		app.refresh();
+	}
+);
+
+// 鍒锋柊
+function refresh(params?: any) {
+	Crud.value?.refresh(params);
+}
+</script>
diff --git a/src/modules/report/views/dailysite.vue b/src/modules/report/views/dailysite.vue
new file mode 100644
index 0000000..35596e3
--- /dev/null
+++ b/src/modules/report/views/dailysite.vue
@@ -0,0 +1,526 @@
+<template>
+	<cl-crud ref="Crud">
+		<cl-row>
+			<!-- 鍒锋柊鎸夐挳 -->
+			<cl-refresh-btn />
+			<!-- 鏂板鎸夐挳 -->
+			<!--cl-add-btn /-->
+			<!-- 鍒犻櫎鎸夐挳 -->
+			<!--cl-multi-delete-btn /-->// ...鍙睍绀洪儴鍒嗗瓧娈�... //
+			<cl-flex1 />
+			<!-- 鏉′欢鎼滅储 -->
+			<cl-search ref="Search" />
+		</cl-row>
+
+		<cl-row>
+			<!-- 鏁版嵁琛ㄦ牸 -->
+			<cl-table ref="Table" />
+		</cl-row>
+
+		<cl-row>
+			<cl-flex1 />
+			<!-- 鍒嗛〉鎺т欢 -->
+			<cl-pagination />
+		</cl-row>
+
+		<!-- 鏂板銆佺紪杈� -->
+		<!--cl-upsert ref="Upsert" /-->
+	</cl-crud>
+</template>
+
+<script lang="ts" setup>
+defineOptions({
+	name: "report-dailysite"
+});
+
+import { useCrud, useTable, useUpsert, useSearch } from "@cool-vue/crud";
+import { useCool } from "/@/cool";
+import { useI18n } from "vue-i18n";
+
+const { service } = useCool();
+const { t } = useI18n();
+
+// cl-upsert
+
+/*
+const Upsert = useUpsert({
+	items: [
+		{
+			label: t('鏃ユ湡'),
+			prop: "date",
+			component: {
+				name: "el-date-picker",
+				props: { type: "date", valueFormat: "YYYY-MM-DD" }
+			},
+			span: 12,
+			required: true
+		},
+		{
+			label: t('绔欑偣ID'),
+			prop: "siteId",
+			component: { name: "el-input", props: { clearable: true } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('绔欑偣鍚嶇О'),
+			prop: "siteName",
+			component: { name: "el-input", props: { clearable: true } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('鎬婚噸閲�'),
+			prop: "weightTotal",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw60閲嶉噺'),
+			prop: "weightSw60",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw61閲嶉噺'),
+			prop: "weightSw61",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62閲嶉噺'),
+			prop: "weightSw62",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw63閲嶉噺'),
+			prop: "weightSw63",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw64閲嶉噺'),
+			prop: "weightSw64",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_001閲嶉噺'),
+			prop: "weightSw62001",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_002閲嶉噺'),
+			prop: "weightSw62002",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_003閲嶉噺'),
+			prop: "weightSw62003",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_004閲嶉噺'),
+			prop: "weightSw62004",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_005閲嶉噺'),
+			prop: "weightSw62005",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_006閲嶉噺'),
+			prop: "weightSw62006",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_007閲嶉噺'),
+			prop: "weightSw62007",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('鎬荤О閲嶆鏁�'),
+			prop: "timeTotal",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw60娆℃暟'),
+			prop: "timeSw60",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw61娆℃暟'),
+			prop: "timeSw61",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62娆℃暟'),
+			prop: "timeSw62",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw63娆℃暟'),
+			prop: "timeSw63",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw64娆℃暟'),
+			prop: "timeSw64",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62001娆℃暟'),
+			prop: "timeSw62001",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62002娆℃暟'),
+			prop: "timeSw62002",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62003娆℃暟'),
+			prop: "timeSw62003",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62004娆℃暟'),
+			prop: "timeSw62004",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62005娆℃暟'),
+			prop: "timeSw62005",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62006娆℃暟'),
+			prop: "timeSw62006",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62007娆℃暟'),
+			prop: "timeSw62007",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('鎬荤⒊鎺掗噺'),
+			prop: "carbonTotal",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw60纰虫帓閲�'),
+			prop: "carbonSw60",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw61纰虫帓閲�'),
+			prop: "carbonSw61",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62纰虫帓閲�'),
+			prop: "carbonSw62",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw63纰虫帓閲�'),
+			prop: "carbonSw63",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw64纰虫帓閲�'),
+			prop: "carbonSw64",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62001纰虫帓閲�'),
+			prop: "carbonSw62001",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62002纰虫帓閲�'),
+			prop: "carbonSw62002",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62003纰虫帓閲�'),
+			prop: "carbonSw62003",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62004纰虫帓閲�'),
+			prop: "carbonSw62004",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62005纰虫帓閲�'),
+			prop: "carbonSw62005",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62006纰虫帓閲�'),
+			prop: "carbonSw62006",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62007纰虫帓閲�'),
+			prop: "carbonSw62007",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_001浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62001",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_002浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62002",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_003浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62003",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_004浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62004",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_005浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62005",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_006浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62006",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('sw62_007浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62007",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		}
+	]
+});
+
+*/
+
+// cl-table
+const Table = useTable({
+	columns: [
+		{ type: "selection" },
+		{
+			label: t('鏃ユ湡'),
+			prop: "date",
+			minWidth: 140,
+			sortable: "custom",
+			component: { name: "cl-date-text", props: { format: "YYYY-MM-DD" } }
+		},
+		{ label: t('绔欑偣鍚嶇О'), prop: "siteName", minWidth: 140 },
+		{ label: t('鎬婚噸閲�'), prop: "weightTotal", minWidth: 140, sortable: "custom" },
+		{ label: t('sw60閲嶉噺'), prop: "weightSw60", minWidth: 140, sortable: "custom" },
+		{ label: t('sw61閲嶉噺'), prop: "weightSw61", minWidth: 140, sortable: "custom" },
+		{ label: t('sw62閲嶉噺'), prop: "weightSw62", minWidth: 140, sortable: "custom" },
+		{ label: t('sw63閲嶉噺'), prop: "weightSw63", minWidth: 140, sortable: "custom" },
+		{ label: t('sw64閲嶉噺'), prop: "weightSw64", minWidth: 140, sortable: "custom" },
+		{ label: t('鎬荤О閲嶆鏁�'), prop: "timeTotal", minWidth: 140, sortable: "custom" },
+		{ label: t('sw60娆℃暟'), prop: "timeSw60", minWidth: 140, sortable: "custom" },
+		{ label: t('sw61娆℃暟'), prop: "timeSw61", minWidth: 140, sortable: "custom" },
+		{ label: t('sw62娆℃暟'), prop: "timeSw62", minWidth: 140, sortable: "custom" },
+		{ label: t('sw63娆℃暟'), prop: "timeSw63", minWidth: 140, sortable: "custom" },
+		{ label: t('sw64娆℃暟'), prop: "timeSw64", minWidth: 140, sortable: "custom" },
+		{ label: t('鎬荤⒊鎺掗噺'), prop: "carbonTotal", minWidth: 140, sortable: "custom" },
+		{ label: t('sw60纰虫帓閲�'), prop: "carbonSw60", minWidth: 140, sortable: "custom" },
+		{ label: t('sw61纰虫帓閲�'), prop: "carbonSw61", minWidth: 140, sortable: "custom" },
+		{ label: t('sw62纰虫帓閲�'), prop: "carbonSw62", minWidth: 140, sortable: "custom" },
+		{ label: t('sw63纰虫帓閲�'), prop: "carbonSw63", minWidth: 140, sortable: "custom" },
+		{ label: t('sw64纰虫帓閲�'), prop: "carbonSw64", minWidth: 140, sortable: "custom" },
+		{
+			label: t('sw62浼扮畻閿�鍞'),
+			prop: "estimatedSalesSw62",
+			minWidth: 140,
+			sortable: "custom"
+		},
+		{
+			label: t('鍒涘缓鏃堕棿'),
+			prop: "createTime",
+			minWidth: 170,
+			sortable: "desc",
+			component: { name: "cl-date-text" }
+		},
+		/*
+		{
+			label: t('鏇存柊鏃堕棿'),
+			prop: "updateTime",
+			minWidth: 170,
+			sortable: "custom",
+			component: { name: "cl-date-text" }
+		},
+		{ type: "op", buttons: ["edit", "delete"] }
+		*/
+	]
+});
+
+// cl-search
+const Search = useSearch();
+
+// cl-crud
+const Crud = useCrud(
+	{
+		service: service.report.dailysite
+	},
+	(app) => {
+		app.refresh();
+	}
+);
+
+// 鍒锋柊
+function refresh(params?: any) {
+	Crud.value?.refresh(params);
+}
+</script>
diff --git a/src/modules/report/views/joblog.vue b/src/modules/report/views/joblog.vue
new file mode 100644
index 0000000..15d4d1b
--- /dev/null
+++ b/src/modules/report/views/joblog.vue
@@ -0,0 +1,192 @@
+<template>
+	<cl-crud ref="Crud">
+		<cl-row>
+			<!-- 鍒锋柊鎸夐挳 -->
+			<cl-refresh-btn />
+			<!-- 鏂板鎸夐挳 -->
+			<!--cl-add-btn /-->
+			<!-- 鍒犻櫎鎸夐挳 -->
+			<!--cl-multi-delete-btn /-->
+			<cl-flex1 />
+			<!-- 鏉′欢鎼滅储 -->
+			<cl-search ref="Search" />
+		</cl-row>
+
+		<cl-row>
+			<!-- 鏁版嵁琛ㄦ牸 -->
+			<cl-table ref="Table" />
+		</cl-row>
+
+		<cl-row>
+			<cl-flex1 />
+			<!-- 鍒嗛〉鎺т欢 -->
+			<cl-pagination />
+		</cl-row>
+
+		<!-- 鏂板銆佺紪杈� -->
+		<!--cl-upsert ref="Upsert" /-->
+	</cl-crud>
+</template>
+
+<script lang="ts" setup>
+defineOptions({
+	name: "report-joblog"
+});
+
+import { useCrud, useTable, useUpsert, useSearch } from "@cool-vue/crud";
+import { useCool } from "/@/cool";
+import { useI18n } from "vue-i18n";
+import { reactive } from "vue";
+
+const { service } = useCool();
+const { t } = useI18n();
+
+// 閫夐」
+const options = reactive({
+	status: [
+		{ label: t('INIT'), value: 'INIT' },
+		{ label: t('RUNNING'), value: 'RUNNING' },
+		{ label: t('SUCCESS'), value: 'SUCCESS' },
+		{ label: t('FAILED'), value: 'FAILED' }
+	]
+});
+
+// cl-upsert
+const Upsert = useUpsert({
+	items: [
+		{
+			label: t('浠诲姟鍚嶇О'),
+			prop: "jobName",
+			component: { name: "el-input", props: { clearable: true } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('鏁版嵁鏃ユ湡'),
+			prop: "dataDate",
+			component: {
+				name: "el-date-picker",
+				props: { type: "date", valueFormat: "YYYY-MM-DD" }
+			},
+			span: 12,
+			required: true
+		},
+		{
+			label: t('鏃ユ湡鑼冨洿'),
+			prop: "date",
+			component: {
+				name: "el-date-picker",
+				props: {
+					type: "daterange",
+					valueFormat: "YYYY-MM-DD 00:00:00",
+					defaultTime: ["2000-01-31T16:00:00.000Z", "2000-02-01T15:59:59.000Z"]
+				}
+			},
+			span: 12,
+			hook: "datetimeRange"
+		},
+		{
+			label: t('鐘舵��'),
+			prop: "status",
+			component: { name: "el-radio-group", options: options.status },
+			value: 0,
+			required: true
+		},
+		{
+			label: t('澶勭悊璁板綍鏁�'),
+			prop: "recordsProcessed",
+			hook: "number",
+			component: { name: "el-input-number", props: { min: 0 } },
+			span: 12,
+			required: true
+		},
+		{
+			label: t('閿欒鍫嗘爤淇℃伅'),
+			prop: "errorMessage",
+			component: { name: "el-input", props: { type: "textarea", rows: 4 } }
+		}
+	]
+});
+
+// cl-table
+const Table = useTable({
+	columns: [
+		{ type: "selection" },
+		{ label: t('浠诲姟鍚嶇О'), prop: "jobName", minWidth: 140 },
+		{
+			label: t('鏁版嵁鏃ユ湡'),
+			prop: "dataDate",
+			minWidth: 140,
+			sortable: "custom",
+			component: { name: "cl-date-text", props: { format: "YYYY-MM-DD" } }
+		},
+		{
+			label: t('寮�濮嬫椂闂�'),
+			prop: "startTime",
+			minWidth: 140,
+			sortable: "custom",
+			component: { name: "cl-date-text", props: { format: "YYYY-MM-DD HH:mm:ss" } }
+		},
+		{
+			label: t('缁撴潫鏃堕棿'),
+			prop: "endTime",
+			minWidth: 140,
+			sortable: "custom",
+			component: { name: "cl-date-text", props: { format: "YYYY-MM-DD HH:mm:ss" } }
+		},
+		{ label: t('鐘舵��'), prop: "status", minWidth: 120, dict: options.status },
+		{
+			label: t('澶勭悊璁板綍鏁�'),
+			prop: "recordsProcessed",
+			minWidth: 140,
+			sortable: "custom"
+		},
+		{
+			label: t('澶辫触娆℃暟'),
+			prop: "failedCount",
+			minWidth: 200
+		},
+		{
+			label: t('閿欒鍫嗘爤淇℃伅'),
+			prop: "errorMessage",
+			showOverflowTooltip: true,
+			minWidth: 200
+		},
+		{
+			label: t('鍒涘缓鏃堕棿'),
+			prop: "createTime",
+			minWidth: 170,
+			sortable: "desc",
+			component: { name: "cl-date-text" }
+		},
+		/*
+		{
+			label: t('鏇存柊鏃堕棿'),
+			prop: "updateTime",
+			minWidth: 170,
+			sortable: "custom",
+			component: { name: "cl-date-text" }
+		},
+		{ type: "op", buttons: ["edit", "delete"] }
+		*/
+	]
+});
+
+// cl-search
+const Search = useSearch();
+
+// cl-crud
+const Crud = useCrud(
+	{
+		service: service.report.joblog
+	},
+	(app) => {
+		app.refresh();
+	}
+);
+
+// 鍒锋柊
+function refresh(params?: any) {
+	Crud.value?.refresh(params);
+}
+</script>

--
Gitblit v1.9.1