From 60a352640d89cebc4c2733a734ef07eddf3f29ab Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期日, 28 九月 2025 09:15:45 +0800
Subject: [PATCH] 代码生成
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleDetailServiceImpl.java | 148 +
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCustomerCloudController.java | 91
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningCloudController.java | 91
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkKeysService.java | 97
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetLogService.java | 97
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetGridController.java | 90
server/db/business.jk_sketch_customer.permissions.sql | 6
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkLineCloudController.java | 91
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchLineServiceImpl.java | 149 +
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningController.java | 90
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleDetailCloudController.java | 91
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkOrdersServiceImpl.java | 152 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkLineServiceImpl.java | 151 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java | 167 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCustomerService.java | 97
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchCustomerController.java | 90
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetCloudController.java | 91
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetGridMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java | 89
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkOrdersController.java | 90
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkOrders.java | 82
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java | 152 +
server/db/business.jk_sketch_line.permissions.sql | 6
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetGridCloudController.java | 91
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchCloudController.java | 91
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchCustomerServiceImpl.java | 149 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketch.java | 82
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java | 148 +
server/db/business.warning_rule_detail.permissions.sql | 6
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkIccardMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchLineMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningService.java | 97
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleMapper.java | 12
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningRuleController.java | 90
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkLineMapper.java | 12
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningPushCloudController.java | 91
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkKeysMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningPushService.java | 97
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java | 77
server/db/business.jk_keys.permissions.sql | 6
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCustomerController.java | 90
server/db/business.jk_cabinet.permissions.sql | 6
server/db/business.jk_sketch.permissions.sql | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java | 161 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java | 100
server/db/business.jk_cabinet_log.permissions.sql | 6
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningPushController.java | 90
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleDetailMapper.java | 12
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetLogController.java | 90
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkVersionServiceImpl.java | 154 +
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkVersionCloudController.java | 91
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchLineService.java | 97
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java | 145 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkLine.java | 81
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketchCustomer.java | 78
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetLogCloudController.java | 91
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningPushMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkKeys.java | 77
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchCustomerMapper.java | 12
server/db/business.jk_orders.permissions.sql | 6
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkIccardController.java | 90
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java | 77
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java | 94
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkOrdersService.java | 97
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkOrdersMapper.java | 12
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchLineController.java | 90
server/db/business.jk_customer.permissions.sql | 6
server/db/business.jk_cabinet_grid.permissions.sql | 6
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Warning.java | 102
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkLineController.java | 90
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleCloudController.java | 91
server/db/business.warning_push.permissions.sql | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkIccardServiceImpl.java | 145 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCustomerServiceImpl.java | 157 +
server/db/business.warning.permissions.sql | 6
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchCustomerCloudController.java | 91
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetLogMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCustomer.java | 90
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkVersion.java | 85
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkVersionService.java | 97
server/db/business.warning_rule.permissions.sql | 6
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkVersionMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java | 157 +
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkKeysCloudController.java | 91
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleDetailService.java | 97
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningRuleDetailController.java | 90
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java | 148 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkIccard.java | 73
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchService.java | 97
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCustomerMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.java | 73
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchController.java | 90
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkOrdersCloudController.java | 91
server/db/business.jk_version.permissions.sql | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkIccardService.java | 97
server/db/business.jk_line.permissions.sql | 6
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinet.java | 139
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java | 194 +
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetController.java | 90
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchCustomerService.java | 97
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketchLine.java | 78
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleService.java | 97
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkLineService.java | 97
server/db/business.jk_iccard.permissions.sql | 6
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkVersionController.java | 90
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchLineCloudController.java | 91
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkIccardCloudController.java | 91
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetService.java | 97
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkKeysController.java | 90
112 files changed, 8,593 insertions(+), 0 deletions(-)
diff --git a/server/db/business.jk_cabinet.permissions.sql b/server/db/business.jk_cabinet.permissions.sql
new file mode 100644
index 0000000..86ac27b
--- /dev/null
+++ b/server/db/business.jk_cabinet.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinet:create', '鏂板缓閽ュ寵鏌滃熀鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinet:delete', '鍒犻櫎閽ュ寵鏌滃熀鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinet:update', '淇敼閽ュ寵鏌滃熀鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinet:query', '鏌ヨ閽ュ寵鏌滃熀鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinet:exportExcel', '瀵煎嚭閽ュ寵鏌滃熀鏈俊鎭〃(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.jk_cabinet_grid.permissions.sql b/server/db/business.jk_cabinet_grid.permissions.sql
new file mode 100644
index 0000000..95ce5f9
--- /dev/null
+++ b/server/db/business.jk_cabinet_grid.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinetgrid:create', '鏂板缓閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinetgrid:delete', '鍒犻櫎閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinetgrid:update', '淇敼閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinetgrid:query', '鏌ヨ閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinetgrid:exportExcel', '瀵煎嚭閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.jk_cabinet_log.permissions.sql b/server/db/business.jk_cabinet_log.permissions.sql
new file mode 100644
index 0000000..1018480
--- /dev/null
+++ b/server/db/business.jk_cabinet_log.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinetlog:create', '鏂板缓閽ュ寵鏌滃紑鍏抽棬璁板綍', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinetlog:delete', '鍒犻櫎閽ュ寵鏌滃紑鍏抽棬璁板綍', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinetlog:update', '淇敼閽ュ寵鏌滃紑鍏抽棬璁板綍', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinetlog:query', '鏌ヨ閽ュ寵鏌滃紑鍏抽棬璁板綍', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcabinetlog:exportExcel', '瀵煎嚭閽ュ寵鏌滃紑鍏抽棬璁板綍(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.jk_customer.permissions.sql b/server/db/business.jk_customer.permissions.sql
new file mode 100644
index 0000000..5d33ec2
--- /dev/null
+++ b/server/db/business.jk_customer.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcustomer:create', '鏂板缓浜ゆ帶-瀹㈡埛淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcustomer:delete', '鍒犻櫎浜ゆ帶-瀹㈡埛淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcustomer:update', '淇敼浜ゆ帶-瀹㈡埛淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcustomer:query', '鏌ヨ浜ゆ帶-瀹㈡埛淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkcustomer:exportExcel', '瀵煎嚭浜ゆ帶-瀹㈡埛淇℃伅琛�(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.jk_iccard.permissions.sql b/server/db/business.jk_iccard.permissions.sql
new file mode 100644
index 0000000..9771b08
--- /dev/null
+++ b/server/db/business.jk_iccard.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkiccard:create', '鏂板缓閽ュ寵鏌淚C鍗′俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkiccard:delete', '鍒犻櫎閽ュ寵鏌淚C鍗′俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkiccard:update', '淇敼閽ュ寵鏌淚C鍗′俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkiccard:query', '鏌ヨ閽ュ寵鏌淚C鍗′俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkiccard:exportExcel', '瀵煎嚭閽ュ寵鏌淚C鍗′俊鎭〃(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.jk_keys.permissions.sql b/server/db/business.jk_keys.permissions.sql
new file mode 100644
index 0000000..95fbde4
--- /dev/null
+++ b/server/db/business.jk_keys.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkkeys:create', '鏂板缓閽ュ寵鍩烘湰淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkkeys:delete', '鍒犻櫎閽ュ寵鍩烘湰淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkkeys:update', '淇敼閽ュ寵鍩烘湰淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkkeys:query', '鏌ヨ閽ュ寵鍩烘湰淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkkeys:exportExcel', '瀵煎嚭閽ュ寵鍩烘湰淇℃伅琛�(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.jk_line.permissions.sql b/server/db/business.jk_line.permissions.sql
new file mode 100644
index 0000000..2ed4abf
--- /dev/null
+++ b/server/db/business.jk_line.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkline:create', '鏂板缓浜ゆ帶-绾胯矾淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkline:delete', '鍒犻櫎浜ゆ帶-绾胯矾淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkline:update', '淇敼浜ゆ帶-绾胯矾淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkline:query', '鏌ヨ浜ゆ帶-绾胯矾淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkline:exportExcel', '瀵煎嚭浜ゆ帶-绾胯矾淇℃伅琛�(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.jk_orders.permissions.sql b/server/db/business.jk_orders.permissions.sql
new file mode 100644
index 0000000..4423bce
--- /dev/null
+++ b/server/db/business.jk_orders.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkorders:create', '鏂板缓浜ゆ帶-閿�鍞鍗曚俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkorders:delete', '鍒犻櫎浜ゆ帶-閿�鍞鍗曚俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkorders:update', '淇敼浜ゆ帶-閿�鍞鍗曚俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkorders:query', '鏌ヨ浜ゆ帶-閿�鍞鍗曚俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkorders:exportExcel', '瀵煎嚭浜ゆ帶-閿�鍞鍗曚俊鎭〃(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.jk_sketch.permissions.sql b/server/db/business.jk_sketch.permissions.sql
new file mode 100644
index 0000000..7a57bcf
--- /dev/null
+++ b/server/db/business.jk_sketch.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketch:create', '鏂板缓浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketch:delete', '鍒犻櫎浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketch:update', '淇敼浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketch:query', '鏌ヨ浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketch:exportExcel', '瀵煎嚭浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛�(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.jk_sketch_customer.permissions.sql b/server/db/business.jk_sketch_customer.permissions.sql
new file mode 100644
index 0000000..ac3c9f3
--- /dev/null
+++ b/server/db/business.jk_sketch_customer.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketchcustomer:create', '鏂板缓浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketchcustomer:delete', '鍒犻櫎浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketchcustomer:update', '淇敼浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketchcustomer:query', '鏌ヨ浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketchcustomer:exportExcel', '瀵煎嚭浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛�(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.jk_sketch_line.permissions.sql b/server/db/business.jk_sketch_line.permissions.sql
new file mode 100644
index 0000000..3c91fcd
--- /dev/null
+++ b/server/db/business.jk_sketch_line.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketchline:create', '鏂板缓浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketchline:delete', '鍒犻櫎浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketchline:update', '淇敼浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketchline:query', '鏌ヨ浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jksketchline:exportExcel', '瀵煎嚭浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛�(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.jk_version.permissions.sql b/server/db/business.jk_version.permissions.sql
new file mode 100644
index 0000000..bd312ea
--- /dev/null
+++ b/server/db/business.jk_version.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkversion:create', '鏂板缓浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkversion:delete', '鍒犻櫎浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkversion:update', '淇敼浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkversion:query', '鏌ヨ浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:jkversion:exportExcel', '瀵煎嚭浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.warning.permissions.sql b/server/db/business.warning.permissions.sql
new file mode 100644
index 0000000..ad64372
--- /dev/null
+++ b/server/db/business.warning.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warning:create', '鏂板缓鎶ヨ璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warning:delete', '鍒犻櫎鎶ヨ璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warning:update', '淇敼鎶ヨ璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warning:query', '鏌ヨ鎶ヨ璁板綍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warning:exportExcel', '瀵煎嚭鎶ヨ璁板綍淇℃伅琛�(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.warning_push.permissions.sql b/server/db/business.warning_push.permissions.sql
new file mode 100644
index 0000000..efbb388
--- /dev/null
+++ b/server/db/business.warning_push.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningpush:create', '鏂板缓鎶ヨ鎺ㄩ�佽褰�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningpush:delete', '鍒犻櫎鎶ヨ鎺ㄩ�佽褰�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningpush:update', '淇敼鎶ヨ鎺ㄩ�佽褰�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningpush:query', '鏌ヨ鎶ヨ鎺ㄩ�佽褰�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningpush:exportExcel', '瀵煎嚭鎶ヨ鎺ㄩ�佽褰�(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.warning_rule.permissions.sql b/server/db/business.warning_rule.permissions.sql
new file mode 100644
index 0000000..dd7d01b
--- /dev/null
+++ b/server/db/business.warning_rule.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningrule:create', '鏂板缓鎶ヨ瑙勫垯閰嶇疆琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningrule:delete', '鍒犻櫎鎶ヨ瑙勫垯閰嶇疆琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningrule:update', '淇敼鎶ヨ瑙勫垯閰嶇疆琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningrule:query', '鏌ヨ鎶ヨ瑙勫垯閰嶇疆琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningrule:exportExcel', '瀵煎嚭鎶ヨ瑙勫垯閰嶇疆琛�(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.warning_rule_detail.permissions.sql b/server/db/business.warning_rule_detail.permissions.sql
new file mode 100644
index 0000000..bbaeeff
--- /dev/null
+++ b/server/db/business.warning_rule_detail.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningruledetail:create', '鏂板缓鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningruledetail:delete', '鍒犻櫎鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningruledetail:update', '淇敼鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningruledetail:query', '鏌ヨ鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningruledetail:exportExcel', '瀵煎嚭鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛�(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetController.java
new file mode 100644
index 0000000..960d4e4
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkCabinet;
+import com.doumee.service.business.JkCabinetService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "閽ュ寵鏌滃熀鏈俊鎭〃")
+@RestController
+@RequestMapping("/business/jkCabinet")
+public class JkCabinetController extends BaseController {
+
+ @Autowired
+ private JkCabinetService jkCabinetService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jkcabinet:create")
+ public ApiResponse create(@RequestBody JkCabinet jkCabinet) {
+ return ApiResponse.success(jkCabinetService.create(jkCabinet));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jkcabinet:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkCabinetService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jkcabinet:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkCabinetService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jkcabinet:update")
+ public ApiResponse updateById(@RequestBody JkCabinet jkCabinet) {
+ jkCabinetService.updateById(jkCabinet);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jkcabinet:query")
+ public ApiResponse<PageData<JkCabinet>> findPage (@RequestBody PageWrap<JkCabinet> pageWrap) {
+ return ApiResponse.success(jkCabinetService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jkcabinet:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkCabinet> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkCabinet.class).export(jkCabinetService.findPage(pageWrap).getRecords(), "閽ュ寵鏌滃熀鏈俊鎭〃", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jkcabinet:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkCabinetService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetGridController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetGridController.java
new file mode 100644
index 0000000..5e5e626
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetGridController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkCabinetGrid;
+import com.doumee.service.business.JkCabinetGridService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃")
+@RestController
+@RequestMapping("/business/jkCabinetGrid")
+public class JkCabinetGridController extends BaseController {
+
+ @Autowired
+ private JkCabinetGridService jkCabinetGridService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jkcabinetgrid:create")
+ public ApiResponse create(@RequestBody JkCabinetGrid jkCabinetGrid) {
+ return ApiResponse.success(jkCabinetGridService.create(jkCabinetGrid));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jkcabinetgrid:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkCabinetGridService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jkcabinetgrid:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkCabinetGridService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jkcabinetgrid:update")
+ public ApiResponse updateById(@RequestBody JkCabinetGrid jkCabinetGrid) {
+ jkCabinetGridService.updateById(jkCabinetGrid);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jkcabinetgrid:query")
+ public ApiResponse<PageData<JkCabinetGrid>> findPage (@RequestBody PageWrap<JkCabinetGrid> pageWrap) {
+ return ApiResponse.success(jkCabinetGridService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jkcabinetgrid:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkCabinetGrid> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkCabinetGrid.class).export(jkCabinetGridService.findPage(pageWrap).getRecords(), "閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jkcabinetgrid:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkCabinetGridService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetLogController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetLogController.java
new file mode 100644
index 0000000..1ef4779
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCabinetLogController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkCabinetLog;
+import com.doumee.service.business.JkCabinetLogService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "閽ュ寵鏌滃紑鍏抽棬璁板綍")
+@RestController
+@RequestMapping("/business/jkCabinetLog")
+public class JkCabinetLogController extends BaseController {
+
+ @Autowired
+ private JkCabinetLogService jkCabinetLogService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jkcabinetlog:create")
+ public ApiResponse create(@RequestBody JkCabinetLog jkCabinetLog) {
+ return ApiResponse.success(jkCabinetLogService.create(jkCabinetLog));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jkcabinetlog:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkCabinetLogService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jkcabinetlog:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkCabinetLogService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jkcabinetlog:update")
+ public ApiResponse updateById(@RequestBody JkCabinetLog jkCabinetLog) {
+ jkCabinetLogService.updateById(jkCabinetLog);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jkcabinetlog:query")
+ public ApiResponse<PageData<JkCabinetLog>> findPage (@RequestBody PageWrap<JkCabinetLog> pageWrap) {
+ return ApiResponse.success(jkCabinetLogService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jkcabinetlog:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkCabinetLog> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkCabinetLog.class).export(jkCabinetLogService.findPage(pageWrap).getRecords(), "閽ュ寵鏌滃紑鍏抽棬璁板綍", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jkcabinetlog:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkCabinetLogService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCustomerController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCustomerController.java
new file mode 100644
index 0000000..84fba8f
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkCustomerController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkCustomer;
+import com.doumee.service.business.JkCustomerService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-瀹㈡埛淇℃伅琛�")
+@RestController
+@RequestMapping("/business/jkCustomer")
+public class JkCustomerController extends BaseController {
+
+ @Autowired
+ private JkCustomerService jkCustomerService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jkcustomer:create")
+ public ApiResponse create(@RequestBody JkCustomer jkCustomer) {
+ return ApiResponse.success(jkCustomerService.create(jkCustomer));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jkcustomer:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkCustomerService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jkcustomer:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkCustomerService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jkcustomer:update")
+ public ApiResponse updateById(@RequestBody JkCustomer jkCustomer) {
+ jkCustomerService.updateById(jkCustomer);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jkcustomer:query")
+ public ApiResponse<PageData<JkCustomer>> findPage (@RequestBody PageWrap<JkCustomer> pageWrap) {
+ return ApiResponse.success(jkCustomerService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jkcustomer:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkCustomer> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkCustomer.class).export(jkCustomerService.findPage(pageWrap).getRecords(), "浜ゆ帶-瀹㈡埛淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jkcustomer:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkCustomerService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkIccardController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkIccardController.java
new file mode 100644
index 0000000..a7a6dab
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkIccardController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkIccard;
+import com.doumee.service.business.JkIccardService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "閽ュ寵鏌淚C鍗′俊鎭〃")
+@RestController
+@RequestMapping("/business/jkIccard")
+public class JkIccardController extends BaseController {
+
+ @Autowired
+ private JkIccardService jkIccardService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jkiccard:create")
+ public ApiResponse create(@RequestBody JkIccard jkIccard) {
+ return ApiResponse.success(jkIccardService.create(jkIccard));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jkiccard:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkIccardService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jkiccard:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkIccardService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jkiccard:update")
+ public ApiResponse updateById(@RequestBody JkIccard jkIccard) {
+ jkIccardService.updateById(jkIccard);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jkiccard:query")
+ public ApiResponse<PageData<JkIccard>> findPage (@RequestBody PageWrap<JkIccard> pageWrap) {
+ return ApiResponse.success(jkIccardService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jkiccard:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkIccard> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkIccard.class).export(jkIccardService.findPage(pageWrap).getRecords(), "閽ュ寵鏌淚C鍗′俊鎭〃", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jkiccard:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkIccardService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkKeysController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkKeysController.java
new file mode 100644
index 0000000..e4ce914
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkKeysController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkKeys;
+import com.doumee.service.business.JkKeysService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "閽ュ寵鍩烘湰淇℃伅琛�")
+@RestController
+@RequestMapping("/business/jkKeys")
+public class JkKeysController extends BaseController {
+
+ @Autowired
+ private JkKeysService jkKeysService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jkkeys:create")
+ public ApiResponse create(@RequestBody JkKeys jkKeys) {
+ return ApiResponse.success(jkKeysService.create(jkKeys));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jkkeys:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkKeysService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jkkeys:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkKeysService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jkkeys:update")
+ public ApiResponse updateById(@RequestBody JkKeys jkKeys) {
+ jkKeysService.updateById(jkKeys);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jkkeys:query")
+ public ApiResponse<PageData<JkKeys>> findPage (@RequestBody PageWrap<JkKeys> pageWrap) {
+ return ApiResponse.success(jkKeysService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jkkeys:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkKeys> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkKeys.class).export(jkKeysService.findPage(pageWrap).getRecords(), "閽ュ寵鍩烘湰淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jkkeys:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkKeysService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkLineController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkLineController.java
new file mode 100644
index 0000000..316eccd
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkLineController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkLine;
+import com.doumee.service.business.JkLineService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-绾胯矾淇℃伅琛�")
+@RestController
+@RequestMapping("/business/jkLine")
+public class JkLineController extends BaseController {
+
+ @Autowired
+ private JkLineService jkLineService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jkline:create")
+ public ApiResponse create(@RequestBody JkLine jkLine) {
+ return ApiResponse.success(jkLineService.create(jkLine));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jkline:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkLineService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jkline:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkLineService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jkline:update")
+ public ApiResponse updateById(@RequestBody JkLine jkLine) {
+ jkLineService.updateById(jkLine);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jkline:query")
+ public ApiResponse<PageData<JkLine>> findPage (@RequestBody PageWrap<JkLine> pageWrap) {
+ return ApiResponse.success(jkLineService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jkline:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkLine> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkLine.class).export(jkLineService.findPage(pageWrap).getRecords(), "浜ゆ帶-绾胯矾淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jkline:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkLineService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkOrdersController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkOrdersController.java
new file mode 100644
index 0000000..ccfe9c3
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkOrdersController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkOrders;
+import com.doumee.service.business.JkOrdersService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-閿�鍞鍗曚俊鎭〃")
+@RestController
+@RequestMapping("/business/jkOrders")
+public class JkOrdersController extends BaseController {
+
+ @Autowired
+ private JkOrdersService jkOrdersService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jkorders:create")
+ public ApiResponse create(@RequestBody JkOrders jkOrders) {
+ return ApiResponse.success(jkOrdersService.create(jkOrders));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jkorders:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkOrdersService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jkorders:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkOrdersService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jkorders:update")
+ public ApiResponse updateById(@RequestBody JkOrders jkOrders) {
+ jkOrdersService.updateById(jkOrders);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jkorders:query")
+ public ApiResponse<PageData<JkOrders>> findPage (@RequestBody PageWrap<JkOrders> pageWrap) {
+ return ApiResponse.success(jkOrdersService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jkorders:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkOrders> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkOrders.class).export(jkOrdersService.findPage(pageWrap).getRecords(), "浜ゆ帶-閿�鍞鍗曚俊鎭〃", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jkorders:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkOrdersService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchController.java
new file mode 100644
index 0000000..93d162e
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkSketch;
+import com.doumee.service.business.JkSketchService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛�")
+@RestController
+@RequestMapping("/business/jkSketch")
+public class JkSketchController extends BaseController {
+
+ @Autowired
+ private JkSketchService jkSketchService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jksketch:create")
+ public ApiResponse create(@RequestBody JkSketch jkSketch) {
+ return ApiResponse.success(jkSketchService.create(jkSketch));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jksketch:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkSketchService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jksketch:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkSketchService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jksketch:update")
+ public ApiResponse updateById(@RequestBody JkSketch jkSketch) {
+ jkSketchService.updateById(jkSketch);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jksketch:query")
+ public ApiResponse<PageData<JkSketch>> findPage (@RequestBody PageWrap<JkSketch> pageWrap) {
+ return ApiResponse.success(jkSketchService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jksketch:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkSketch> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkSketch.class).export(jkSketchService.findPage(pageWrap).getRecords(), "浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jksketch:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkSketchService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchCustomerController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchCustomerController.java
new file mode 100644
index 0000000..3f75e9f
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchCustomerController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkSketchCustomer;
+import com.doumee.service.business.JkSketchCustomerService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛�")
+@RestController
+@RequestMapping("/business/jkSketchCustomer")
+public class JkSketchCustomerController extends BaseController {
+
+ @Autowired
+ private JkSketchCustomerService jkSketchCustomerService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jksketchcustomer:create")
+ public ApiResponse create(@RequestBody JkSketchCustomer jkSketchCustomer) {
+ return ApiResponse.success(jkSketchCustomerService.create(jkSketchCustomer));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jksketchcustomer:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkSketchCustomerService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jksketchcustomer:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkSketchCustomerService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jksketchcustomer:update")
+ public ApiResponse updateById(@RequestBody JkSketchCustomer jkSketchCustomer) {
+ jkSketchCustomerService.updateById(jkSketchCustomer);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jksketchcustomer:query")
+ public ApiResponse<PageData<JkSketchCustomer>> findPage (@RequestBody PageWrap<JkSketchCustomer> pageWrap) {
+ return ApiResponse.success(jkSketchCustomerService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jksketchcustomer:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkSketchCustomer> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkSketchCustomer.class).export(jkSketchCustomerService.findPage(pageWrap).getRecords(), "浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jksketchcustomer:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkSketchCustomerService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchLineController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchLineController.java
new file mode 100644
index 0000000..6eb157d
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkSketchLineController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkSketchLine;
+import com.doumee.service.business.JkSketchLineService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛�")
+@RestController
+@RequestMapping("/business/jkSketchLine")
+public class JkSketchLineController extends BaseController {
+
+ @Autowired
+ private JkSketchLineService jkSketchLineService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jksketchline:create")
+ public ApiResponse create(@RequestBody JkSketchLine jkSketchLine) {
+ return ApiResponse.success(jkSketchLineService.create(jkSketchLine));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jksketchline:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkSketchLineService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jksketchline:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkSketchLineService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jksketchline:update")
+ public ApiResponse updateById(@RequestBody JkSketchLine jkSketchLine) {
+ jkSketchLineService.updateById(jkSketchLine);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jksketchline:query")
+ public ApiResponse<PageData<JkSketchLine>> findPage (@RequestBody PageWrap<JkSketchLine> pageWrap) {
+ return ApiResponse.success(jkSketchLineService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jksketchline:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkSketchLine> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkSketchLine.class).export(jkSketchLineService.findPage(pageWrap).getRecords(), "浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jksketchline:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkSketchLineService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkVersionController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkVersionController.java
new file mode 100644
index 0000000..c6a479a
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/JkVersionController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.JkVersion;
+import com.doumee.service.business.JkVersionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃")
+@RestController
+@RequestMapping("/business/jkVersion")
+public class JkVersionController extends BaseController {
+
+ @Autowired
+ private JkVersionService jkVersionService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:jkversion:create")
+ public ApiResponse create(@RequestBody JkVersion jkVersion) {
+ return ApiResponse.success(jkVersionService.create(jkVersion));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:jkversion:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkVersionService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:jkversion:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkVersionService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:jkversion:update")
+ public ApiResponse updateById(@RequestBody JkVersion jkVersion) {
+ jkVersionService.updateById(jkVersion);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:jkversion:query")
+ public ApiResponse<PageData<JkVersion>> findPage (@RequestBody PageWrap<JkVersion> pageWrap) {
+ return ApiResponse.success(jkVersionService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:jkversion:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkVersion> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkVersion.class).export(jkVersionService.findPage(pageWrap).getRecords(), "浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:jkversion:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkVersionService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningController.java
new file mode 100644
index 0000000..c0be405
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.Warning;
+import com.doumee.service.business.WarningService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "鎶ヨ璁板綍淇℃伅琛�")
+@RestController
+@RequestMapping("/business/warning")
+public class WarningController extends BaseController {
+
+ @Autowired
+ private WarningService warningService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:warning:create")
+ public ApiResponse create(@RequestBody Warning warning) {
+ return ApiResponse.success(warningService.create(warning));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:warning:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ warningService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:warning:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ warningService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:warning:update")
+ public ApiResponse updateById(@RequestBody Warning warning) {
+ warningService.updateById(warning);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:warning:query")
+ public ApiResponse<PageData<Warning>> findPage (@RequestBody PageWrap<Warning> pageWrap) {
+ return ApiResponse.success(warningService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:warning:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<Warning> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(Warning.class).export(warningService.findPage(pageWrap).getRecords(), "鎶ヨ璁板綍淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:warning:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(warningService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningPushController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningPushController.java
new file mode 100644
index 0000000..b77254d
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningPushController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.WarningPush;
+import com.doumee.service.business.WarningPushService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "鎶ヨ鎺ㄩ�佽褰�")
+@RestController
+@RequestMapping("/business/warningPush")
+public class WarningPushController extends BaseController {
+
+ @Autowired
+ private WarningPushService warningPushService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:warningpush:create")
+ public ApiResponse create(@RequestBody WarningPush warningPush) {
+ return ApiResponse.success(warningPushService.create(warningPush));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:warningpush:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ warningPushService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:warningpush:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ warningPushService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:warningpush:update")
+ public ApiResponse updateById(@RequestBody WarningPush warningPush) {
+ warningPushService.updateById(warningPush);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:warningpush:query")
+ public ApiResponse<PageData<WarningPush>> findPage (@RequestBody PageWrap<WarningPush> pageWrap) {
+ return ApiResponse.success(warningPushService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:warningpush:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<WarningPush> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(WarningPush.class).export(warningPushService.findPage(pageWrap).getRecords(), "鎶ヨ鎺ㄩ�佽褰�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:warningpush:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(warningPushService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningRuleController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningRuleController.java
new file mode 100644
index 0000000..aac7e49
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningRuleController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.WarningRule;
+import com.doumee.service.business.WarningRuleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "鎶ヨ瑙勫垯閰嶇疆琛�")
+@RestController
+@RequestMapping("/business/warningRule")
+public class WarningRuleController extends BaseController {
+
+ @Autowired
+ private WarningRuleService warningRuleService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:warningrule:create")
+ public ApiResponse create(@RequestBody WarningRule warningRule) {
+ return ApiResponse.success(warningRuleService.create(warningRule));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:warningrule:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ warningRuleService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:warningrule:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ warningRuleService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:warningrule:update")
+ public ApiResponse updateById(@RequestBody WarningRule warningRule) {
+ warningRuleService.updateById(warningRule);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:warningrule:query")
+ public ApiResponse<PageData<WarningRule>> findPage (@RequestBody PageWrap<WarningRule> pageWrap) {
+ return ApiResponse.success(warningRuleService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:warningrule:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<WarningRule> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(WarningRule.class).export(warningRuleService.findPage(pageWrap).getRecords(), "鎶ヨ瑙勫垯閰嶇疆琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:warningrule:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(warningRuleService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningRuleDetailController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningRuleDetailController.java
new file mode 100644
index 0000000..cc35d12
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WarningRuleDetailController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.dao.business.model.WarningRuleDetail;
+import com.doumee.service.business.WarningRuleDetailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛�")
+@RestController
+@RequestMapping("/business/warningRuleDetail")
+public class WarningRuleDetailController extends BaseController {
+
+ @Autowired
+ private WarningRuleDetailService warningRuleDetailService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:warningruledetail:create")
+ public ApiResponse create(@RequestBody WarningRuleDetail warningRuleDetail) {
+ return ApiResponse.success(warningRuleDetailService.create(warningRuleDetail));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:warningruledetail:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ warningRuleDetailService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:warningruledetail:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ warningRuleDetailService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:warningruledetail:update")
+ public ApiResponse updateById(@RequestBody WarningRuleDetail warningRuleDetail) {
+ warningRuleDetailService.updateById(warningRuleDetail);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:warningruledetail:query")
+ public ApiResponse<PageData<WarningRuleDetail>> findPage (@RequestBody PageWrap<WarningRuleDetail> pageWrap) {
+ return ApiResponse.success(warningRuleDetailService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:warningruledetail:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<WarningRuleDetail> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(WarningRuleDetail.class).export(warningRuleDetailService.findPage(pageWrap).getRecords(), "鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:warningruledetail:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(warningRuleDetailService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetCloudController.java
new file mode 100644
index 0000000..5000734
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkCabinet;
+import com.doumee.service.business.JkCabinetService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "閽ュ寵鏌滃熀鏈俊鎭〃")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkCabinet")
+public class JkCabinetCloudController extends BaseController {
+
+ @Autowired
+ private JkCabinetService jkCabinetService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jkcabinet:create")
+ public ApiResponse create(@RequestBody JkCabinet jkCabinet) {
+ return ApiResponse.success(jkCabinetService.create(jkCabinet));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jkcabinet:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkCabinetService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jkcabinet:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkCabinetService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jkcabinet:update")
+ public ApiResponse updateById(@RequestBody JkCabinet jkCabinet) {
+ jkCabinetService.updateById(jkCabinet);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jkcabinet:query")
+ public ApiResponse<PageData<JkCabinet>> findPage (@RequestBody PageWrap<JkCabinet> pageWrap) {
+ return ApiResponse.success(jkCabinetService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jkcabinet:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkCabinet> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkCabinet.class).export(jkCabinetService.findPage(pageWrap).getRecords(), "閽ュ寵鏌滃熀鏈俊鎭〃", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jkcabinet:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkCabinetService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetGridCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetGridCloudController.java
new file mode 100644
index 0000000..0b9de85
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetGridCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkCabinetGrid;
+import com.doumee.service.business.JkCabinetGridService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkCabinetGrid")
+public class JkCabinetGridCloudController extends BaseController {
+
+ @Autowired
+ private JkCabinetGridService jkCabinetGridService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jkcabinetgrid:create")
+ public ApiResponse create(@RequestBody JkCabinetGrid jkCabinetGrid) {
+ return ApiResponse.success(jkCabinetGridService.create(jkCabinetGrid));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jkcabinetgrid:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkCabinetGridService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jkcabinetgrid:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkCabinetGridService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jkcabinetgrid:update")
+ public ApiResponse updateById(@RequestBody JkCabinetGrid jkCabinetGrid) {
+ jkCabinetGridService.updateById(jkCabinetGrid);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jkcabinetgrid:query")
+ public ApiResponse<PageData<JkCabinetGrid>> findPage (@RequestBody PageWrap<JkCabinetGrid> pageWrap) {
+ return ApiResponse.success(jkCabinetGridService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jkcabinetgrid:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkCabinetGrid> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkCabinetGrid.class).export(jkCabinetGridService.findPage(pageWrap).getRecords(), "閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jkcabinetgrid:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkCabinetGridService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetLogCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetLogCloudController.java
new file mode 100644
index 0000000..0299c8e
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetLogCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkCabinetLog;
+import com.doumee.service.business.JkCabinetLogService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "閽ュ寵鏌滃紑鍏抽棬璁板綍")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkCabinetLog")
+public class JkCabinetLogCloudController extends BaseController {
+
+ @Autowired
+ private JkCabinetLogService jkCabinetLogService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jkcabinetlog:create")
+ public ApiResponse create(@RequestBody JkCabinetLog jkCabinetLog) {
+ return ApiResponse.success(jkCabinetLogService.create(jkCabinetLog));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jkcabinetlog:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkCabinetLogService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jkcabinetlog:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkCabinetLogService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jkcabinetlog:update")
+ public ApiResponse updateById(@RequestBody JkCabinetLog jkCabinetLog) {
+ jkCabinetLogService.updateById(jkCabinetLog);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jkcabinetlog:query")
+ public ApiResponse<PageData<JkCabinetLog>> findPage (@RequestBody PageWrap<JkCabinetLog> pageWrap) {
+ return ApiResponse.success(jkCabinetLogService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jkcabinetlog:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkCabinetLog> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkCabinetLog.class).export(jkCabinetLogService.findPage(pageWrap).getRecords(), "閽ュ寵鏌滃紑鍏抽棬璁板綍", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jkcabinetlog:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkCabinetLogService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCustomerCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCustomerCloudController.java
new file mode 100644
index 0000000..8b31ffb
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCustomerCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkCustomer;
+import com.doumee.service.business.JkCustomerService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-瀹㈡埛淇℃伅琛�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkCustomer")
+public class JkCustomerCloudController extends BaseController {
+
+ @Autowired
+ private JkCustomerService jkCustomerService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jkcustomer:create")
+ public ApiResponse create(@RequestBody JkCustomer jkCustomer) {
+ return ApiResponse.success(jkCustomerService.create(jkCustomer));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jkcustomer:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkCustomerService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jkcustomer:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkCustomerService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jkcustomer:update")
+ public ApiResponse updateById(@RequestBody JkCustomer jkCustomer) {
+ jkCustomerService.updateById(jkCustomer);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jkcustomer:query")
+ public ApiResponse<PageData<JkCustomer>> findPage (@RequestBody PageWrap<JkCustomer> pageWrap) {
+ return ApiResponse.success(jkCustomerService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jkcustomer:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkCustomer> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkCustomer.class).export(jkCustomerService.findPage(pageWrap).getRecords(), "浜ゆ帶-瀹㈡埛淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jkcustomer:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkCustomerService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkIccardCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkIccardCloudController.java
new file mode 100644
index 0000000..c8657a1
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkIccardCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkIccard;
+import com.doumee.service.business.JkIccardService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "閽ュ寵鏌淚C鍗′俊鎭〃")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkIccard")
+public class JkIccardCloudController extends BaseController {
+
+ @Autowired
+ private JkIccardService jkIccardService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jkiccard:create")
+ public ApiResponse create(@RequestBody JkIccard jkIccard) {
+ return ApiResponse.success(jkIccardService.create(jkIccard));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jkiccard:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkIccardService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jkiccard:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkIccardService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jkiccard:update")
+ public ApiResponse updateById(@RequestBody JkIccard jkIccard) {
+ jkIccardService.updateById(jkIccard);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jkiccard:query")
+ public ApiResponse<PageData<JkIccard>> findPage (@RequestBody PageWrap<JkIccard> pageWrap) {
+ return ApiResponse.success(jkIccardService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jkiccard:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkIccard> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkIccard.class).export(jkIccardService.findPage(pageWrap).getRecords(), "閽ュ寵鏌淚C鍗′俊鎭〃", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jkiccard:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkIccardService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkKeysCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkKeysCloudController.java
new file mode 100644
index 0000000..4fe9b33
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkKeysCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkKeys;
+import com.doumee.service.business.JkKeysService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "閽ュ寵鍩烘湰淇℃伅琛�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkKeys")
+public class JkKeysCloudController extends BaseController {
+
+ @Autowired
+ private JkKeysService jkKeysService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jkkeys:create")
+ public ApiResponse create(@RequestBody JkKeys jkKeys) {
+ return ApiResponse.success(jkKeysService.create(jkKeys));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jkkeys:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkKeysService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jkkeys:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkKeysService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jkkeys:update")
+ public ApiResponse updateById(@RequestBody JkKeys jkKeys) {
+ jkKeysService.updateById(jkKeys);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jkkeys:query")
+ public ApiResponse<PageData<JkKeys>> findPage (@RequestBody PageWrap<JkKeys> pageWrap) {
+ return ApiResponse.success(jkKeysService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jkkeys:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkKeys> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkKeys.class).export(jkKeysService.findPage(pageWrap).getRecords(), "閽ュ寵鍩烘湰淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jkkeys:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkKeysService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkLineCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkLineCloudController.java
new file mode 100644
index 0000000..e404a4b
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkLineCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkLine;
+import com.doumee.service.business.JkLineService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-绾胯矾淇℃伅琛�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkLine")
+public class JkLineCloudController extends BaseController {
+
+ @Autowired
+ private JkLineService jkLineService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jkline:create")
+ public ApiResponse create(@RequestBody JkLine jkLine) {
+ return ApiResponse.success(jkLineService.create(jkLine));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jkline:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkLineService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jkline:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkLineService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jkline:update")
+ public ApiResponse updateById(@RequestBody JkLine jkLine) {
+ jkLineService.updateById(jkLine);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jkline:query")
+ public ApiResponse<PageData<JkLine>> findPage (@RequestBody PageWrap<JkLine> pageWrap) {
+ return ApiResponse.success(jkLineService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jkline:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkLine> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkLine.class).export(jkLineService.findPage(pageWrap).getRecords(), "浜ゆ帶-绾胯矾淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jkline:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkLineService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkOrdersCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkOrdersCloudController.java
new file mode 100644
index 0000000..e7f9053
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkOrdersCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkOrders;
+import com.doumee.service.business.JkOrdersService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-閿�鍞鍗曚俊鎭〃")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkOrders")
+public class JkOrdersCloudController extends BaseController {
+
+ @Autowired
+ private JkOrdersService jkOrdersService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jkorders:create")
+ public ApiResponse create(@RequestBody JkOrders jkOrders) {
+ return ApiResponse.success(jkOrdersService.create(jkOrders));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jkorders:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkOrdersService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jkorders:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkOrdersService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jkorders:update")
+ public ApiResponse updateById(@RequestBody JkOrders jkOrders) {
+ jkOrdersService.updateById(jkOrders);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jkorders:query")
+ public ApiResponse<PageData<JkOrders>> findPage (@RequestBody PageWrap<JkOrders> pageWrap) {
+ return ApiResponse.success(jkOrdersService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jkorders:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkOrders> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkOrders.class).export(jkOrdersService.findPage(pageWrap).getRecords(), "浜ゆ帶-閿�鍞鍗曚俊鎭〃", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jkorders:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkOrdersService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchCloudController.java
new file mode 100644
index 0000000..7053160
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkSketch;
+import com.doumee.service.business.JkSketchService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkSketch")
+public class JkSketchCloudController extends BaseController {
+
+ @Autowired
+ private JkSketchService jkSketchService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jksketch:create")
+ public ApiResponse create(@RequestBody JkSketch jkSketch) {
+ return ApiResponse.success(jkSketchService.create(jkSketch));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jksketch:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkSketchService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jksketch:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkSketchService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jksketch:update")
+ public ApiResponse updateById(@RequestBody JkSketch jkSketch) {
+ jkSketchService.updateById(jkSketch);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jksketch:query")
+ public ApiResponse<PageData<JkSketch>> findPage (@RequestBody PageWrap<JkSketch> pageWrap) {
+ return ApiResponse.success(jkSketchService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jksketch:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkSketch> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkSketch.class).export(jkSketchService.findPage(pageWrap).getRecords(), "浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jksketch:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkSketchService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchCustomerCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchCustomerCloudController.java
new file mode 100644
index 0000000..1f145ab
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchCustomerCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkSketchCustomer;
+import com.doumee.service.business.JkSketchCustomerService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkSketchCustomer")
+public class JkSketchCustomerCloudController extends BaseController {
+
+ @Autowired
+ private JkSketchCustomerService jkSketchCustomerService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jksketchcustomer:create")
+ public ApiResponse create(@RequestBody JkSketchCustomer jkSketchCustomer) {
+ return ApiResponse.success(jkSketchCustomerService.create(jkSketchCustomer));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jksketchcustomer:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkSketchCustomerService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jksketchcustomer:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkSketchCustomerService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jksketchcustomer:update")
+ public ApiResponse updateById(@RequestBody JkSketchCustomer jkSketchCustomer) {
+ jkSketchCustomerService.updateById(jkSketchCustomer);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jksketchcustomer:query")
+ public ApiResponse<PageData<JkSketchCustomer>> findPage (@RequestBody PageWrap<JkSketchCustomer> pageWrap) {
+ return ApiResponse.success(jkSketchCustomerService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jksketchcustomer:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkSketchCustomer> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkSketchCustomer.class).export(jkSketchCustomerService.findPage(pageWrap).getRecords(), "浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jksketchcustomer:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkSketchCustomerService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchLineCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchLineCloudController.java
new file mode 100644
index 0000000..06d15d9
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkSketchLineCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkSketchLine;
+import com.doumee.service.business.JkSketchLineService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkSketchLine")
+public class JkSketchLineCloudController extends BaseController {
+
+ @Autowired
+ private JkSketchLineService jkSketchLineService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jksketchline:create")
+ public ApiResponse create(@RequestBody JkSketchLine jkSketchLine) {
+ return ApiResponse.success(jkSketchLineService.create(jkSketchLine));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jksketchline:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkSketchLineService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jksketchline:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkSketchLineService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jksketchline:update")
+ public ApiResponse updateById(@RequestBody JkSketchLine jkSketchLine) {
+ jkSketchLineService.updateById(jkSketchLine);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jksketchline:query")
+ public ApiResponse<PageData<JkSketchLine>> findPage (@RequestBody PageWrap<JkSketchLine> pageWrap) {
+ return ApiResponse.success(jkSketchLineService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jksketchline:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkSketchLine> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkSketchLine.class).export(jkSketchLineService.findPage(pageWrap).getRecords(), "浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jksketchline:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkSketchLineService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkVersionCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkVersionCloudController.java
new file mode 100644
index 0000000..ef9edbc
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkVersionCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.JkVersion;
+import com.doumee.service.business.JkVersionService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkVersion")
+public class JkVersionCloudController extends BaseController {
+
+ @Autowired
+ private JkVersionService jkVersionService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:jkversion:create")
+ public ApiResponse create(@RequestBody JkVersion jkVersion) {
+ return ApiResponse.success(jkVersionService.create(jkVersion));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:jkversion:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ jkVersionService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:jkversion:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ jkVersionService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:jkversion:update")
+ public ApiResponse updateById(@RequestBody JkVersion jkVersion) {
+ jkVersionService.updateById(jkVersion);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:jkversion:query")
+ public ApiResponse<PageData<JkVersion>> findPage (@RequestBody PageWrap<JkVersion> pageWrap) {
+ return ApiResponse.success(jkVersionService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:jkversion:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<JkVersion> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(JkVersion.class).export(jkVersionService.findPage(pageWrap).getRecords(), "浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:jkversion:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(jkVersionService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningCloudController.java
new file mode 100644
index 0000000..556f7c3
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.Warning;
+import com.doumee.service.business.WarningService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "鎶ヨ璁板綍淇℃伅琛�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/warning")
+public class WarningCloudController extends BaseController {
+
+ @Autowired
+ private WarningService warningService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:warning:create")
+ public ApiResponse create(@RequestBody Warning warning) {
+ return ApiResponse.success(warningService.create(warning));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:warning:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ warningService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:warning:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ warningService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:warning:update")
+ public ApiResponse updateById(@RequestBody Warning warning) {
+ warningService.updateById(warning);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:warning:query")
+ public ApiResponse<PageData<Warning>> findPage (@RequestBody PageWrap<Warning> pageWrap) {
+ return ApiResponse.success(warningService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:warning:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<Warning> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(Warning.class).export(warningService.findPage(pageWrap).getRecords(), "鎶ヨ璁板綍淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:warning:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(warningService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningPushCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningPushCloudController.java
new file mode 100644
index 0000000..389964a
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningPushCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.WarningPush;
+import com.doumee.service.business.WarningPushService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "鎶ヨ鎺ㄩ�佽褰�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/warningPush")
+public class WarningPushCloudController extends BaseController {
+
+ @Autowired
+ private WarningPushService warningPushService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:warningpush:create")
+ public ApiResponse create(@RequestBody WarningPush warningPush) {
+ return ApiResponse.success(warningPushService.create(warningPush));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:warningpush:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ warningPushService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:warningpush:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ warningPushService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:warningpush:update")
+ public ApiResponse updateById(@RequestBody WarningPush warningPush) {
+ warningPushService.updateById(warningPush);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:warningpush:query")
+ public ApiResponse<PageData<WarningPush>> findPage (@RequestBody PageWrap<WarningPush> pageWrap) {
+ return ApiResponse.success(warningPushService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:warningpush:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<WarningPush> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(WarningPush.class).export(warningPushService.findPage(pageWrap).getRecords(), "鎶ヨ鎺ㄩ�佽褰�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:warningpush:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(warningPushService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleCloudController.java
new file mode 100644
index 0000000..0e5342b
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.WarningRule;
+import com.doumee.service.business.WarningRuleService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "鎶ヨ瑙勫垯閰嶇疆琛�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/warningRule")
+public class WarningRuleCloudController extends BaseController {
+
+ @Autowired
+ private WarningRuleService warningRuleService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:warningrule:create")
+ public ApiResponse create(@RequestBody WarningRule warningRule) {
+ return ApiResponse.success(warningRuleService.create(warningRule));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:warningrule:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ warningRuleService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:warningrule:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ warningRuleService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:warningrule:update")
+ public ApiResponse updateById(@RequestBody WarningRule warningRule) {
+ warningRuleService.updateById(warningRule);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:warningrule:query")
+ public ApiResponse<PageData<WarningRule>> findPage (@RequestBody PageWrap<WarningRule> pageWrap) {
+ return ApiResponse.success(warningRuleService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:warningrule:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<WarningRule> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(WarningRule.class).export(warningRuleService.findPage(pageWrap).getRecords(), "鎶ヨ瑙勫垯閰嶇疆琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:warningrule:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(warningRuleService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleDetailCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleDetailCloudController.java
new file mode 100644
index 0000000..0130971
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleDetailCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.WarningRuleDetail;
+import com.doumee.service.business.WarningRuleDetailService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Api(tags = "鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/warningRuleDetail")
+public class WarningRuleDetailCloudController extends BaseController {
+
+ @Autowired
+ private WarningRuleDetailService warningRuleDetailService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:warningruledetail:create")
+ public ApiResponse create(@RequestBody WarningRuleDetail warningRuleDetail) {
+ return ApiResponse.success(warningRuleDetailService.create(warningRuleDetail));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:warningruledetail:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ warningRuleDetailService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:warningruledetail:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ warningRuleDetailService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:warningruledetail:update")
+ public ApiResponse updateById(@RequestBody WarningRuleDetail warningRuleDetail) {
+ warningRuleDetailService.updateById(warningRuleDetail);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:warningruledetail:query")
+ public ApiResponse<PageData<WarningRuleDetail>> findPage (@RequestBody PageWrap<WarningRuleDetail> pageWrap) {
+ return ApiResponse.success(warningRuleDetailService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:warningruledetail:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<WarningRuleDetail> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(WarningRuleDetail.class).export(warningRuleDetailService.findPage(pageWrap).getRecords(), "鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:warningruledetail:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(warningRuleDetailService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetGridMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetGridMapper.java
new file mode 100644
index 0000000..69cdf93
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetGridMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkCabinetGrid;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkCabinetGridMapper extends BaseMapper<JkCabinetGrid> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetLogMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetLogMapper.java
new file mode 100644
index 0000000..63566fe
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetLogMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkCabinetLog;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkCabinetLogMapper extends BaseMapper<JkCabinetLog> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetMapper.java
new file mode 100644
index 0000000..b1b73e2
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCabinetMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkCabinet;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkCabinetMapper extends BaseMapper<JkCabinet> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCustomerMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCustomerMapper.java
new file mode 100644
index 0000000..19b331b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkCustomerMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkCustomer;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkCustomerMapper extends BaseMapper<JkCustomer> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkIccardMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkIccardMapper.java
new file mode 100644
index 0000000..571c5e3
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkIccardMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkIccard;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkIccardMapper extends BaseMapper<JkIccard> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkKeysMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkKeysMapper.java
new file mode 100644
index 0000000..b854736
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkKeysMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkKeys;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkKeysMapper extends BaseMapper<JkKeys> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkLineMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkLineMapper.java
new file mode 100644
index 0000000..7504edd
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkLineMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkLine;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkLineMapper extends BaseMapper<JkLine> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkOrdersMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkOrdersMapper.java
new file mode 100644
index 0000000..c8bf20a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkOrdersMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkOrders;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkOrdersMapper extends BaseMapper<JkOrders> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchCustomerMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchCustomerMapper.java
new file mode 100644
index 0000000..903630a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchCustomerMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkSketchCustomer;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkSketchCustomerMapper extends BaseMapper<JkSketchCustomer> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchLineMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchLineMapper.java
new file mode 100644
index 0000000..81a3cb9
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchLineMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkSketchLine;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkSketchLineMapper extends BaseMapper<JkSketchLine> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchMapper.java
new file mode 100644
index 0000000..e95e915
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkSketchMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkSketch;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkSketchMapper extends BaseMapper<JkSketch> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkVersionMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkVersionMapper.java
new file mode 100644
index 0000000..0e6ef61
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/JkVersionMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.JkVersion;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkVersionMapper extends BaseMapper<JkVersion> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningMapper.java
new file mode 100644
index 0000000..a33f848
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.Warning;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface WarningMapper extends BaseMapper<Warning> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningPushMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningPushMapper.java
new file mode 100644
index 0000000..187d218
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningPushMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.WarningPush;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface WarningPushMapper extends BaseMapper<WarningPush> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleDetailMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleDetailMapper.java
new file mode 100644
index 0000000..cd65c05
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleDetailMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.WarningRuleDetail;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface WarningRuleDetailMapper extends BaseMapper<WarningRuleDetail> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleMapper.java
new file mode 100644
index 0000000..b1bb01c
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.WarningRule;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface WarningRuleMapper extends BaseMapper<WarningRule> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinet.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinet.java
new file mode 100644
index 0000000..5ac7ad0
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinet.java
@@ -0,0 +1,139 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+import java.math.BigDecimal;
+
+/**
+ * 閽ュ寵鏌滃熀鏈俊鎭〃
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("閽ュ寵鏌滃熀鏈俊鎭〃")
+@TableName("`jk_cabinet`")
+public class JkCabinet {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "璁惧缂栧彿")
+ @ExcelColumn(name="璁惧缂栧彿")
+ private String code;
+
+ @ApiModelProperty(value = "璁惧鍚嶇О")
+ @ExcelColumn(name="璁惧鍚嶇О")
+ private String name;
+
+ @ApiModelProperty(value = "璁惧ID")
+ @ExcelColumn(name="璁惧ID")
+ private String devId;
+
+ @ApiModelProperty(value = "搴忓垪鍙�")
+ @ExcelColumn(name="搴忓垪鍙�")
+ private String serialNo;
+
+ @ApiModelProperty(value = "閫氳鍦板潃")
+ @ExcelColumn(name="閫氳鍦板潃")
+ private String linkAddr;
+
+ @ApiModelProperty(value = "鐘舵�� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭", example = "1")
+ @ExcelColumn(name="鐘舵�� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭")
+ private Integer status;
+
+ @ApiModelProperty(value = "绔彛", example = "1")
+ @ExcelColumn(name="绔彛")
+ private Integer port;
+
+ @ApiModelProperty(value = "璁惧绠$悊鍛樼紪鐮侊紙鍏宠仈member)", example = "1")
+ @ExcelColumn(name="璁惧绠$悊鍛樼紪鐮侊紙鍏宠仈member)")
+ private Integer managerId;
+
+ @ApiModelProperty(value = "浣跨敤鏃堕暱(绉�)", example = "1")
+ @ExcelColumn(name="浣跨敤鏃堕暱(绉�)")
+ private Integer useTime;
+
+ @ApiModelProperty(value = "鏄惁鍙岄噸楠岃瘉 0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍙岄噸楠岃瘉 0鍚� 1鏄�")
+ private Integer doubleAuth;
+
+ @ApiModelProperty(value = "楠岃瘉浜虹紪鐮侊紙鍏宠仈member)", example = "1")
+ @ExcelColumn(name="楠岃瘉浜虹紪鐮侊紙鍏宠仈member)")
+ private Integer authMemberId;
+
+ @ApiModelProperty(value = "鎺掓暟", example = "1")
+ @ExcelColumn(name="鎺掓暟")
+ private Integer rowNum;
+
+ @ApiModelProperty(value = "鍒楁暟", example = "1")
+ @ExcelColumn(name="鍒楁暟")
+ private Integer columnNum;
+
+ @ApiModelProperty(value = "鏈�鍚庨�氳鏃堕棿")
+ @ExcelColumn(name="鏈�鍚庨�氳鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date haertTime;
+
+ @ApiModelProperty(value = "鎵�鍦ㄤ綅缃�")
+ @ExcelColumn(name="鎵�鍦ㄤ綅缃�")
+ private String lacation;
+
+ @ApiModelProperty(value = "缁忓害", example = "1")
+ @ExcelColumn(name="缁忓害")
+ private BigDecimal longitude;
+
+ @ApiModelProperty(value = "缁村害", example = "1")
+ @ExcelColumn(name="缁村害")
+ private BigDecimal latitude;
+
+ @ApiModelProperty(value = "缂栫爜鏂瑰紡 0鑷姩缂栫爜 1鎵嬪姩缂栫爜", example = "1")
+ @ExcelColumn(name="缂栫爜鏂瑰紡 0鑷姩缂栫爜 1鎵嬪姩缂栫爜")
+ private Integer noType;
+
+ @ApiModelProperty(value = "缂栫爜鍓嶇紑")
+ @ExcelColumn(name="缂栫爜鍓嶇紑")
+ private String noPrefix;
+
+ @ApiModelProperty(value = "缂栫爜浣嶆暟", example = "1")
+ @ExcelColumn(name="缂栫爜浣嶆暟")
+ private Integer noLength;
+
+ @ApiModelProperty(value = "璧峰缂栫爜", example = "1")
+ @ExcelColumn(name="璧峰缂栫爜")
+ private Integer noIndex;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java
new file mode 100644
index 0000000..46ec0bf
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java
@@ -0,0 +1,77 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃")
+@TableName("`jk_cabinet_grid`")
+public class JkCabinetGrid {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "閽ュ寵鏌滅紪鐮侊紙鍏宠仈jk_cabinet)", example = "1")
+ @ExcelColumn(name="閽ュ寵鏌滅紪鐮侊紙鍏宠仈jk_cabinet)")
+ private Integer cabinetId;
+
+ @ApiModelProperty(value = "缂栫爜")
+ @ExcelColumn(name="缂栫爜")
+ private String code;
+
+ @ApiModelProperty(value = "閽ュ寵缂栫爜锛堝叧鑱攋k_keys)", example = "1")
+ @ExcelColumn(name="閽ュ寵缂栫爜锛堝叧鑱攋k_keys)")
+ private Integer keyId;
+
+ @ApiModelProperty(value = "搴忓垪鍙�")
+ @ExcelColumn(name="搴忓垪鍙�")
+ private String serialNo;
+
+ @ApiModelProperty(value = "鐘舵�� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭", example = "1")
+ @ExcelColumn(name="鐘舵�� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭")
+ private Integer status;
+
+ @ApiModelProperty(value = "杩愯鐘舵��", example = "1")
+ @ExcelColumn(name="杩愯鐘舵��")
+ private Integer workingStatus;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
new file mode 100644
index 0000000..d999ccd
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
@@ -0,0 +1,89 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 閽ュ寵鏌滃紑鍏抽棬璁板綍
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("閽ュ寵鏌滃紑鍏抽棬璁板綍")
+@TableName("`jk_cabinet_log`")
+public class JkCabinetLog {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "閽ュ寵鏌滅紪鐮侊紙鍏宠仈jk_cabinet)", example = "1")
+ @ExcelColumn(name="閽ュ寵鏌滅紪鐮侊紙鍏宠仈jk_cabinet)")
+ private Integer cabinetId;
+
+ @ApiModelProperty(value = "閽ュ寵鏌滄牸缂栫爜(鍏宠仈jk_cabinet_grid)", example = "1")
+ @ExcelColumn(name="閽ュ寵鏌滄牸缂栫爜(鍏宠仈jk_cabinet_grid)")
+ private Integer gridId;
+
+ @ApiModelProperty(value = "楠岃瘉鏂瑰紡 0鍒疯劯 1鍒峰崱", example = "1")
+ @ExcelColumn(name="楠岃瘉鏂瑰紡 0鍒疯劯 1鍒峰崱")
+ private Integer authType;
+
+ @ApiModelProperty(value = "杞﹁締缂栫爜锛堝叧鑱攃ars)", example = "1")
+ @ExcelColumn(name="杞﹁締缂栫爜锛堝叧鑱攃ars)")
+ private Integer carId;
+
+ @ApiModelProperty(value = "閽ュ寵缂栫爜(鍏宠仈jk_keys)", example = "1")
+ @ExcelColumn(name="閽ュ寵缂栫爜(鍏宠仈jk_keys)")
+ private Integer keyId;
+
+ @ApiModelProperty(value = "浜哄憳缂栫爜锛堝叧鑱攎ember)", example = "1")
+ @ExcelColumn(name="浜哄憳缂栫爜锛堝叧鑱攎ember)")
+ private Integer memberId;
+
+ @ApiModelProperty(value = "閽ュ寵淇℃伅锛堣溅鐗屽彿-閽ュ寵缂栫爜锛�")
+ @ExcelColumn(name="閽ュ寵淇℃伅锛堣溅鐗屽彿-閽ュ寵缂栫爜锛�")
+ private String keyInfo;
+
+ @ApiModelProperty(value = "棰嗗彇瑙勫垯 0闅忚溅 1闅忔淳杞﹀崟", example = "1")
+ @ExcelColumn(name="棰嗗彇瑙勫垯 0闅忚溅 1闅忔淳杞﹀崟")
+ private Integer roleType;
+
+ @ApiModelProperty(value = "鐘舵�� 0鎴愬姛 1澶辫触", example = "1")
+ @ExcelColumn(name="鐘舵�� 0鎴愬姛 1澶辫触")
+ private Integer status;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCustomer.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCustomer.java
new file mode 100644
index 0000000..3941aec
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCustomer.java
@@ -0,0 +1,90 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+import java.math.BigDecimal;
+
+/**
+ * 浜ゆ帶-瀹㈡埛淇℃伅琛�
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("浜ゆ帶-瀹㈡埛淇℃伅琛�")
+@TableName("`jk_customer`")
+public class JkCustomer {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "鍚嶇О", example = "1")
+ @ExcelColumn(name="鍚嶇О")
+ private Integer name;
+
+ @ApiModelProperty(value = "缂栫爜", example = "1")
+ @ExcelColumn(name="缂栫爜")
+ private Integer code;
+
+ @ApiModelProperty(value = "鎵�鍦ㄤ綅缃�")
+ @ExcelColumn(name="鎵�鍦ㄤ綅缃�")
+ private String lacation;
+
+ @ApiModelProperty(value = "缁忓害", example = "1")
+ @ExcelColumn(name="缁忓害")
+ private BigDecimal longitude;
+
+ @ApiModelProperty(value = "缁村害", example = "1")
+ @ExcelColumn(name="缁村害")
+ private BigDecimal latitude;
+
+ @ApiModelProperty(value = "閰嶉�佸懆鏈�")
+ @ExcelColumn(name="閰嶉�佸懆鏈�")
+ private String weeks;
+
+ @ApiModelProperty(value = "閫佽揣璺嚎缂栫爜锛堝叧鑱攋k_line)", example = "1")
+ @ExcelColumn(name="閫佽揣璺嚎缂栫爜锛堝叧鑱攋k_line)")
+ private Integer lineId;
+
+ @ApiModelProperty(value = "鐘舵�� 0姝e父 绂佺敤", example = "1")
+ @ExcelColumn(name="鐘舵�� 0姝e父 绂佺敤")
+ private Integer status;
+
+ @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+ @ExcelColumn(name="鎺掑簭鐮�")
+ private Integer sortnum;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkIccard.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkIccard.java
new file mode 100644
index 0000000..ec888cf
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkIccard.java
@@ -0,0 +1,73 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 閽ュ寵鏌淚C鍗′俊鎭〃
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("閽ュ寵鏌淚C鍗′俊鎭〃")
+@TableName("`jk_iccard`")
+public class JkIccard {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "浜哄憳缂栫爜缂栫爜锛堝叧鑱攎ember)", example = "1")
+ @ExcelColumn(name="浜哄憳缂栫爜缂栫爜锛堝叧鑱攎ember)")
+ private Integer memberId;
+
+ @ApiModelProperty(value = "缂栫爜")
+ @ExcelColumn(name="缂栫爜")
+ private String code;
+
+ @ApiModelProperty(value = "鐘舵�� 0绂佺敤 1鍚敤", example = "1")
+ @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤")
+ private Integer status;
+
+ @ApiModelProperty(value = "鍗″悕绉�")
+ @ExcelColumn(name="鍗″悕绉�")
+ private String name;
+
+ @ApiModelProperty(value = "閽ュ寵鏌滅紪鐮侊紙鍏宠仈jk_cabinet)", example = "1")
+ @ExcelColumn(name="閽ュ寵鏌滅紪鐮侊紙鍏宠仈jk_cabinet)")
+ private Integer cabinetId;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkKeys.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkKeys.java
new file mode 100644
index 0000000..a7e98e3
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkKeys.java
@@ -0,0 +1,77 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 閽ュ寵鍩烘湰淇℃伅琛�
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("閽ュ寵鍩烘湰淇℃伅琛�")
+@TableName("`jk_keys`")
+public class JkKeys {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "閽ュ寵缂栧彿", example = "1")
+ @ExcelColumn(name="閽ュ寵缂栧彿")
+ private Integer code;
+
+ @ApiModelProperty(value = "杞︾墝鍙�")
+ @ExcelColumn(name="杞︾墝鍙�")
+ private String carCode;
+
+ @ApiModelProperty(value = "鎵�灞炶溅杈�(鍏宠仈cars)", example = "1")
+ @ExcelColumn(name="鎵�灞炶溅杈�(鍏宠仈cars)")
+ private Integer carId;
+
+ @ApiModelProperty(value = "RFID鏍囩")
+ @ExcelColumn(name="RFID鏍囩")
+ private String rfidLable;
+
+ @ApiModelProperty(value = "棰嗗彇瑙勫垯 0闅忚溅 1闅忔淳杞﹀崟", example = "1")
+ @ExcelColumn(name="棰嗗彇瑙勫垯 0闅忚溅 1闅忔淳杞﹀崟")
+ private Integer roleType;
+
+ @ApiModelProperty(value = "鐘舵�� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭", example = "1")
+ @ExcelColumn(name="鐘舵�� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭")
+ private Integer status;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkLine.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkLine.java
new file mode 100644
index 0000000..c7bb257
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkLine.java
@@ -0,0 +1,81 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 浜ゆ帶-绾胯矾淇℃伅琛�
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("浜ゆ帶-绾胯矾淇℃伅琛�")
+@TableName("`jk_line`")
+public class JkLine {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "鍚嶇О", example = "1")
+ @ExcelColumn(name="鍚嶇О")
+ private Integer name;
+
+ @ApiModelProperty(value = "鐝粍缂栫爜锛堝叧鑱攃ategory锛�", example = "1")
+ @ExcelColumn(name="鐝粍缂栫爜锛堝叧鑱攃ategory锛�")
+ private Integer categoryId;
+
+ @ApiModelProperty(value = "鎵�灞炶溅杈�(鍏宠仈cars)", example = "1")
+ @ExcelColumn(name="鎵�灞炶溅杈�(鍏宠仈cars)")
+ private Integer carId;
+
+ @ApiModelProperty(value = "鏈�澶у鎴烽噺", example = "1")
+ @ExcelColumn(name="鏈�澶у鎴烽噺")
+ private Integer maxCustomer;
+
+ @ApiModelProperty(value = "鏈�澶ц鍗曢噺", example = "1")
+ @ExcelColumn(name="鏈�澶ц鍗曢噺")
+ private Integer maxOrder;
+
+ @ApiModelProperty(value = "鐘舵�� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭", example = "1")
+ @ExcelColumn(name="鐘舵�� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭")
+ private Integer status;
+
+ @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+ @ExcelColumn(name="鎺掑簭鐮�")
+ private Integer sortnum;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkOrders.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkOrders.java
new file mode 100644
index 0000000..74bcb58
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkOrders.java
@@ -0,0 +1,82 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 浜ゆ帶-閿�鍞鍗曚俊鎭〃
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("浜ゆ帶-閿�鍞鍗曚俊鎭〃")
+@TableName("`jk_orders`")
+public class JkOrders {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "鍚嶇О", example = "1")
+ @ExcelColumn(name="鍚嶇О")
+ private Integer name;
+
+ @ApiModelProperty(value = "閿�閲�", example = "1")
+ @ExcelColumn(name="閿�閲�")
+ private Integer num;
+
+ @ApiModelProperty(value = "閫佽揣璺嚎缂栫爜锛堝叧鑱攋k_line)", example = "1")
+ @ExcelColumn(name="閫佽揣璺嚎缂栫爜锛堝叧鑱攋k_line)")
+ private Integer lineId;
+
+ @ApiModelProperty(value = "鐘舵�� 0姝e父 绂佺敤", example = "1")
+ @ExcelColumn(name="鐘舵�� 0姝e父 绂佺敤")
+ private Integer status;
+
+ @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+ @ExcelColumn(name="鎺掑簭鐮�")
+ private Integer sortnum;
+
+ @ApiModelProperty(value = "鏃ユ湡")
+ @ExcelColumn(name="鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date dateInfo;
+
+ @ApiModelProperty(value = "鍚岀彮缁勯棿瀹㈡埛浣嶇疆璺濈鏁扮粍锛孾{a:12,b:100},{a:13,b:200},...],a锛氬鎴风紪鐮侊紝b锛氫笌瀹㈡埛a涔嬮棿鐨勮窛绂�")
+ @ExcelColumn(name="鍚岀彮缁勯棿瀹㈡埛浣嶇疆璺濈鏁扮粍锛孾{a:12,b:100},{a:13,b:200},...],a锛氬鎴风紪鐮侊紝b锛氫笌瀹㈡埛a涔嬮棿鐨勮窛绂�")
+ private String distances;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketch.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketch.java
new file mode 100644
index 0000000..711ceb5
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketch.java
@@ -0,0 +1,82 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛�
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛�")
+@TableName("`jk_sketch`")
+public class JkSketch {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "涓荤嚎璺紪鐮侊紙鍏宠仈category)", example = "1")
+ @ExcelColumn(name="涓荤嚎璺紪鐮侊紙鍏宠仈category)")
+ private Integer categoryId;
+
+ @ApiModelProperty(value = "閫佽揣閲�", example = "1")
+ @ExcelColumn(name="閫佽揣閲�")
+ private Integer totalNum;
+
+ @ApiModelProperty(value = "瀹㈡埛鏁�", example = "1")
+ @ExcelColumn(name="瀹㈡埛鏁�")
+ private Integer orderNum;
+
+ @ApiModelProperty(value = "鐘舵�� 0鏈紭鍖� 1浼樺寲涓� 2宸蹭紭鍖�", example = "1")
+ @ExcelColumn(name="鐘舵�� 0鏈紭鍖� 1浼樺寲涓� 2宸蹭紭鍖�")
+ private Integer status;
+
+ @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+ @ExcelColumn(name="鎺掑簭鐮�")
+ private Integer sortnum;
+
+ @ApiModelProperty(value = "鏃ユ湡")
+ @ExcelColumn(name="鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date dateInfo;
+
+ @ApiModelProperty(value = "浼樺寲璁板綍缂栫爜(浣滀负key鍊煎瓨redis锛�")
+ @ExcelColumn(name="浼樺寲璁板綍缂栫爜(浣滀负key鍊煎瓨redis锛�")
+ private String jobId;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketchCustomer.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketchCustomer.java
new file mode 100644
index 0000000..bb7eac3
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketchCustomer.java
@@ -0,0 +1,78 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛�
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛�")
+@TableName("`jk_sketch_customer`")
+public class JkSketchCustomer {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "绾胯矾缂栫爜锛堝叧鑱攋k_sketch_line)", example = "1")
+ @ExcelColumn(name="绾胯矾缂栫爜锛堝叧鑱攋k_sketch_line)")
+ private Integer sketchLineId;
+
+ @ApiModelProperty(value = "绾胯矾浼樺寲缂栫爜锛堝叧鑱攋k_sketch)", example = "1")
+ @ExcelColumn(name="绾胯矾浼樺寲缂栫爜锛堝叧鑱攋k_sketch)")
+ private Integer sketchId;
+
+ @ApiModelProperty(value = "閫佽揣閲�", example = "1")
+ @ExcelColumn(name="閫佽揣閲�")
+ private Integer totalNum;
+
+ @ApiModelProperty(value = "瀹㈡埛鏁�", example = "1")
+ @ExcelColumn(name="瀹㈡埛鏁�")
+ private Integer orderNum;
+
+ @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+ @ExcelColumn(name="鎺掑簭鐮�")
+ private Integer sortnum;
+
+ @ApiModelProperty(value = "鏃ユ湡")
+ @ExcelColumn(name="鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date dateInfo;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketchLine.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketchLine.java
new file mode 100644
index 0000000..24f400c
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketchLine.java
@@ -0,0 +1,78 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛�
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛�")
+@TableName("`jk_sketch_line`")
+public class JkSketchLine {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "绾胯矾缂栫爜锛堝叧鑱攋k_line)", example = "1")
+ @ExcelColumn(name="绾胯矾缂栫爜锛堝叧鑱攋k_line)")
+ private Integer lineId;
+
+ @ApiModelProperty(value = "绾胯矾浼樺寲缂栫爜锛堝叧鑱攋k_sketch)", example = "1")
+ @ExcelColumn(name="绾胯矾浼樺寲缂栫爜锛堝叧鑱攋k_sketch)")
+ private Integer sketchId;
+
+ @ApiModelProperty(value = "閫佽揣閲�", example = "1")
+ @ExcelColumn(name="閫佽揣閲�")
+ private Integer totalNum;
+
+ @ApiModelProperty(value = "瀹㈡埛鏁�", example = "1")
+ @ExcelColumn(name="瀹㈡埛鏁�")
+ private Integer orderNum;
+
+ @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+ @ExcelColumn(name="鎺掑簭鐮�")
+ private Integer sortnum;
+
+ @ApiModelProperty(value = "鏃ユ湡")
+ @ExcelColumn(name="鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date dateInfo;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkVersion.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkVersion.java
new file mode 100644
index 0000000..c2402c0
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkVersion.java
@@ -0,0 +1,85 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃")
+@TableName("`jk_version`")
+public class JkVersion {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "鐗堟湰鍙�")
+ @ExcelColumn(name="鐗堟湰鍙�")
+ private String versionInfo;
+
+ @ApiModelProperty(value = "瀹夎鍖呰矾寰�")
+ @ExcelColumn(name="瀹夎鍖呰矾寰�")
+ private String fileUrl;
+
+ @ApiModelProperty(value = "瀹夎鐗堝悕绉�")
+ @ExcelColumn(name="瀹夎鐗堝悕绉�")
+ private String name;
+
+ @ApiModelProperty(value = "鏇存柊鎻忚堪")
+ @ExcelColumn(name="鏇存柊鎻忚堪")
+ private String content;
+
+ @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+ @ExcelColumn(name="鎺掑簭鐮�")
+ private Integer sortnum;
+
+ @ApiModelProperty(value = "鏇存柊鏍囬")
+ @ExcelColumn(name="鏇存柊鏍囬")
+ private String title;
+
+ @ApiModelProperty(value = "鏄惁寮哄埗鏇存柊 0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁寮哄埗鏇存柊 0鍚� 1鏄�")
+ private Integer isForce;
+
+ @ApiModelProperty(value = "骞冲彴绫诲瀷 0Android 1IOS", example = "1")
+ @ExcelColumn(name="骞冲彴绫诲瀷 0Android 1IOS")
+ private Integer type;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Warning.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Warning.java
new file mode 100644
index 0000000..fb33896
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Warning.java
@@ -0,0 +1,102 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 鎶ヨ璁板綍淇℃伅琛�
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("鎶ヨ璁板綍淇℃伅琛�")
+@TableName("`warning`")
+public class Warning {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "鏃堕棿鍚嶇О")
+ @ExcelColumn(name="鏃堕棿鍚嶇О")
+ private String name;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "绫诲瀷 0=瀹夐槻浜嬩欢锛�1=娑堥槻浜嬩欢锛�2=杞﹁浇浜嬩欢锛�3=閽ュ寵鏌滀簨浠讹紱 4=澶╂皵棰勮锛�", example = "1")
+ @ExcelColumn(name="绫诲瀷 0=瀹夐槻浜嬩欢锛�1=娑堥槻浜嬩欢锛�2=杞﹁浇浜嬩欢锛�3=閽ュ寵鏌滀簨浠讹紱 4=澶╂皵棰勮锛�")
+ private Integer type;
+
+ @ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜", example = "1")
+ @ExcelColumn(name="鍏宠仈瀵硅薄缂栫爜")
+ private Integer objId;
+
+ @ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷", example = "1")
+ @ExcelColumn(name="鍏宠仈瀵硅薄绫诲瀷")
+ private Integer objType;
+
+ @ApiModelProperty(value = "缂栫爜")
+ @ExcelColumn(name="缂栫爜")
+ private String code;
+
+ @ApiModelProperty(value = "鎺掑簭鐮�")
+ @ExcelColumn(name="鎺掑簭鐮�")
+ private String sortnum;
+
+ @ApiModelProperty(value = "浜嬩欢绛夌骇 0浣� 1涓� 2楂�", example = "1")
+ @ExcelColumn(name="浜嬩欢绛夌骇 0浣� 1涓� 2楂�")
+ private Integer level;
+
+ @ApiModelProperty(value = "鐘舵�� 0绂佺敤 1鍚敤", example = "1")
+ @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤")
+ private Integer status;
+
+ @ApiModelProperty(value = "璁㈤槄鐘舵�� 0鏈闃� 1璁㈤槄鎴愬姛 2璁㈤槄澶辫触", example = "1")
+ @ExcelColumn(name="璁㈤槄鐘舵�� 0鏈闃� 1璁㈤槄鎴愬姛 2璁㈤槄澶辫触")
+ private Integer subscribeStatus;
+
+ @ApiModelProperty(value = "璁㈤槄鏃堕棿")
+ @ExcelColumn(name="璁㈤槄鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date subscribeDate;
+
+ @ApiModelProperty(value = "璁㈤槄澶囨敞")
+ @ExcelColumn(name="璁㈤槄澶囨敞")
+ private String subscribeInfo;
+
+ @ApiModelProperty(value = "璁㈤槄鐢ㄦ埛(鍏宠仈member)", example = "1")
+ @ExcelColumn(name="璁㈤槄鐢ㄦ埛(鍏宠仈member)")
+ private Integer subscribeMemberId;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java
new file mode 100644
index 0000000..77dc897
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java
@@ -0,0 +1,94 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 鎶ヨ鎺ㄩ�佽褰�
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("鎶ヨ鎺ㄩ�佽褰�")
+@TableName("`warning_push`")
+public class WarningPush {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "浜哄憳缂栫爜锛堝叧鑱攎ember)", example = "1")
+ @ExcelColumn(name="浜哄憳缂栫爜锛堝叧鑱攎ember)")
+ private Integer memberId;
+
+ @ApiModelProperty(value = "浜嬩欢缂栫爜(鍏宠仈warning锛�", example = "1")
+ @ExcelColumn(name="浜嬩欢缂栫爜(鍏宠仈warning锛�")
+ private Integer warningId;
+
+ @ApiModelProperty(value = "鎶ヨ鏍囬")
+ @ExcelColumn(name="鎶ヨ鏍囬")
+ private String title;
+
+ @ApiModelProperty(value = "鎶ヨ鍐呭")
+ @ExcelColumn(name="鎶ヨ鍐呭")
+ private String content;
+
+ @ApiModelProperty(value = "鐘舵�� 0鏈帹閫� 1鎺ㄩ�佹垚鍔�2鎺ㄩ�佸け璐�", example = "1")
+ @ExcelColumn(name="鐘舵�� 0鏈帹閫� 1鎺ㄩ�佹垚鍔�2鎺ㄩ�佸け璐�")
+ private Integer status;
+
+ @ApiModelProperty(value = "鎺ㄩ�佺粨鏋�", example = "1")
+ @ExcelColumn(name="鎺ㄩ�佺粨鏋�")
+ private Integer pushInfo;
+
+ @ApiModelProperty(value = "浜嬩欢鍐呭")
+ @ExcelColumn(name="浜嬩欢鍐呭")
+ private String eventInfo;
+
+ @ApiModelProperty(value = "鎺ㄩ�佹爣璇�")
+ @ExcelColumn(name="鎺ㄩ�佹爣璇�")
+ private String pushId;
+
+ @ApiModelProperty(value = "鎺ㄩ�佹椂闂�")
+ @ExcelColumn(name="鎺ㄩ�佹椂闂�")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date pushDate;
+
+ @ApiModelProperty(value = "鎺ㄩ�佹柟寮� 0閽夐拤閫氱煡", example = "1")
+ @ExcelColumn(name="鎺ㄩ�佹柟寮� 0閽夐拤閫氱煡")
+ private Integer pushType;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.java
new file mode 100644
index 0000000..33fbff5
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.java
@@ -0,0 +1,73 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 鎶ヨ瑙勫垯閰嶇疆琛�
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("鎶ヨ瑙勫垯閰嶇疆琛�")
+@TableName("`warning_rule`")
+public class WarningRule {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "鍐呴儴浜哄憳缂栫爜锛堝叧鑱攎ember)", example = "1")
+ @ExcelColumn(name="鍐呴儴浜哄憳缂栫爜锛堝叧鑱攎ember)")
+ private Integer memberId;
+
+ @ApiModelProperty(value = "澶氳鍒欓棿闅旀椂闂�(绉掞級", example = "1")
+ @ExcelColumn(name="澶氳鍒欓棿闅旀椂闂�(绉掞級")
+ private Integer intervalSec;
+
+ @ApiModelProperty(value = "鎺掑簭鐮�")
+ @ExcelColumn(name="鎺掑簭鐮�")
+ private String sortnum;
+
+ @ApiModelProperty(value = "鐘舵�� 0绂佺敤 1鍚敤", example = "1")
+ @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤")
+ private Integer status;
+
+ @ApiModelProperty(value = "鎶ヨ绫诲瀷缂栫爜(鍏宠仈warning锛�", example = "1")
+ @ExcelColumn(name="鎶ヨ绫诲瀷缂栫爜(鍏宠仈warning锛�")
+ private Integer warningId;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java
new file mode 100644
index 0000000..938879a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java
@@ -0,0 +1,77 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛�
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛�")
+@TableName("`warning_rule_detail`")
+public class WarningRuleDetail {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String info;
+
+ @ApiModelProperty(value = "瑙勫垯缂栫爜锛堝叧鑱攚arning_rule)", example = "1")
+ @ExcelColumn(name="瑙勫垯缂栫爜锛堝叧鑱攚arning_rule)")
+ private Integer ruleId;
+
+ @ApiModelProperty(value = "鎶ヨ绫诲瀷缂栫爜(鍏宠仈warning锛�", example = "1")
+ @ExcelColumn(name="鎶ヨ绫诲瀷缂栫爜(鍏宠仈warning锛�")
+ private Integer warningId;
+
+ @ApiModelProperty(value = "澶氳鍒欓棿闅旀椂闂�(绉掞級", example = "1")
+ @ExcelColumn(name="澶氳鍒欓棿闅旀椂闂�(绉掞級")
+ private Integer regionCode;
+
+ @ApiModelProperty(value = "鎺掑簭鐮�")
+ @ExcelColumn(name="鎺掑簭鐮�")
+ private String sortnum;
+
+ @ApiModelProperty(value = "鍖哄煙鍚嶇О")
+ @ExcelColumn(name="鍖哄煙鍚嶇О")
+ private String regionName;
+
+ @ApiModelProperty(value = "鍖哄煙涓婚敭")
+ @ExcelColumn(name="鍖哄煙涓婚敭")
+ private String regionId;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java
new file mode 100644
index 0000000..508b858
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java
@@ -0,0 +1,100 @@
+package com.doumee.service.business;
+
+//import com.doumee.service.business.third.model.PageData;
+//import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkCabinetGrid;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+
+import java.util.List;
+
+/**
+ * 閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkCabinetGridService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkCabinetGrid 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkCabinetGrid jkCabinetGrid);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkCabinetGrid 瀹炰綋瀵硅薄
+ */
+ void delete(JkCabinetGrid jkCabinetGrid);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkCabinetGrid 瀹炰綋瀵硅薄
+ */
+ void updateById(JkCabinetGrid jkCabinetGrid);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkCabinetGrids 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkCabinetGrid> jkCabinetGrids);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkCabinetGrid
+ */
+ JkCabinetGrid findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkCabinetGrid 瀹炰綋瀵硅薄
+ * @return JkCabinetGrid
+ */
+ JkCabinetGrid findOne(JkCabinetGrid jkCabinetGrid);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkCabinetGrid 瀹炰綋瀵硅薄
+ * @return List<JkCabinetGrid>
+ */
+ List<JkCabinetGrid> findList(JkCabinetGrid jkCabinetGrid);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkCabinetGrid>
+ */
+ PageData<JkCabinetGrid> findPage(PageWrap<JkCabinetGrid> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkCabinetGrid 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkCabinetGrid jkCabinetGrid);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetLogService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetLogService.java
new file mode 100644
index 0000000..1256e97
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetLogService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkCabinetLog;
+import java.util.List;
+
+/**
+ * 閽ュ寵鏌滃紑鍏抽棬璁板綍Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkCabinetLogService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkCabinetLog 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkCabinetLog jkCabinetLog);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkCabinetLog 瀹炰綋瀵硅薄
+ */
+ void delete(JkCabinetLog jkCabinetLog);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkCabinetLog 瀹炰綋瀵硅薄
+ */
+ void updateById(JkCabinetLog jkCabinetLog);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkCabinetLogs 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkCabinetLog> jkCabinetLogs);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkCabinetLog
+ */
+ JkCabinetLog findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkCabinetLog 瀹炰綋瀵硅薄
+ * @return JkCabinetLog
+ */
+ JkCabinetLog findOne(JkCabinetLog jkCabinetLog);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkCabinetLog 瀹炰綋瀵硅薄
+ * @return List<JkCabinetLog>
+ */
+ List<JkCabinetLog> findList(JkCabinetLog jkCabinetLog);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkCabinetLog>
+ */
+ PageData<JkCabinetLog> findPage(PageWrap<JkCabinetLog> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkCabinetLog 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkCabinetLog jkCabinetLog);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetService.java
new file mode 100644
index 0000000..ad0bc17
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkCabinet;
+import java.util.List;
+
+/**
+ * 閽ュ寵鏌滃熀鏈俊鎭〃Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkCabinetService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkCabinet 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkCabinet jkCabinet);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkCabinet 瀹炰綋瀵硅薄
+ */
+ void delete(JkCabinet jkCabinet);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkCabinet 瀹炰綋瀵硅薄
+ */
+ void updateById(JkCabinet jkCabinet);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkCabinets 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkCabinet> jkCabinets);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkCabinet
+ */
+ JkCabinet findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkCabinet 瀹炰綋瀵硅薄
+ * @return JkCabinet
+ */
+ JkCabinet findOne(JkCabinet jkCabinet);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkCabinet 瀹炰綋瀵硅薄
+ * @return List<JkCabinet>
+ */
+ List<JkCabinet> findList(JkCabinet jkCabinet);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkCabinet>
+ */
+ PageData<JkCabinet> findPage(PageWrap<JkCabinet> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkCabinet 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkCabinet jkCabinet);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCustomerService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCustomerService.java
new file mode 100644
index 0000000..9ff9578
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCustomerService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkCustomer;
+import java.util.List;
+
+/**
+ * 浜ゆ帶-瀹㈡埛淇℃伅琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkCustomerService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkCustomer 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkCustomer jkCustomer);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkCustomer 瀹炰綋瀵硅薄
+ */
+ void delete(JkCustomer jkCustomer);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkCustomer 瀹炰綋瀵硅薄
+ */
+ void updateById(JkCustomer jkCustomer);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkCustomers 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkCustomer> jkCustomers);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkCustomer
+ */
+ JkCustomer findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkCustomer 瀹炰綋瀵硅薄
+ * @return JkCustomer
+ */
+ JkCustomer findOne(JkCustomer jkCustomer);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkCustomer 瀹炰綋瀵硅薄
+ * @return List<JkCustomer>
+ */
+ List<JkCustomer> findList(JkCustomer jkCustomer);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkCustomer>
+ */
+ PageData<JkCustomer> findPage(PageWrap<JkCustomer> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkCustomer 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkCustomer jkCustomer);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkIccardService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkIccardService.java
new file mode 100644
index 0000000..b209b97
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkIccardService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkIccard;
+import java.util.List;
+
+/**
+ * 閽ュ寵鏌淚C鍗′俊鎭〃Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkIccardService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkIccard 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkIccard jkIccard);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkIccard 瀹炰綋瀵硅薄
+ */
+ void delete(JkIccard jkIccard);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkIccard 瀹炰綋瀵硅薄
+ */
+ void updateById(JkIccard jkIccard);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkIccards 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkIccard> jkIccards);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkIccard
+ */
+ JkIccard findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkIccard 瀹炰綋瀵硅薄
+ * @return JkIccard
+ */
+ JkIccard findOne(JkIccard jkIccard);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkIccard 瀹炰綋瀵硅薄
+ * @return List<JkIccard>
+ */
+ List<JkIccard> findList(JkIccard jkIccard);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkIccard>
+ */
+ PageData<JkIccard> findPage(PageWrap<JkIccard> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkIccard 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkIccard jkIccard);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkKeysService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkKeysService.java
new file mode 100644
index 0000000..8f9ff71
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkKeysService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkKeys;
+import java.util.List;
+
+/**
+ * 閽ュ寵鍩烘湰淇℃伅琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkKeysService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkKeys 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkKeys jkKeys);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkKeys 瀹炰綋瀵硅薄
+ */
+ void delete(JkKeys jkKeys);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkKeys 瀹炰綋瀵硅薄
+ */
+ void updateById(JkKeys jkKeys);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkKeyss 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkKeys> jkKeyss);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkKeys
+ */
+ JkKeys findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkKeys 瀹炰綋瀵硅薄
+ * @return JkKeys
+ */
+ JkKeys findOne(JkKeys jkKeys);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkKeys 瀹炰綋瀵硅薄
+ * @return List<JkKeys>
+ */
+ List<JkKeys> findList(JkKeys jkKeys);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkKeys>
+ */
+ PageData<JkKeys> findPage(PageWrap<JkKeys> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkKeys 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkKeys jkKeys);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkLineService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkLineService.java
new file mode 100644
index 0000000..4405246
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkLineService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkLine;
+import java.util.List;
+
+/**
+ * 浜ゆ帶-绾胯矾淇℃伅琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkLineService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkLine 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkLine jkLine);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkLine 瀹炰綋瀵硅薄
+ */
+ void delete(JkLine jkLine);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkLine 瀹炰綋瀵硅薄
+ */
+ void updateById(JkLine jkLine);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkLines 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkLine> jkLines);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkLine
+ */
+ JkLine findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkLine 瀹炰綋瀵硅薄
+ * @return JkLine
+ */
+ JkLine findOne(JkLine jkLine);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkLine 瀹炰綋瀵硅薄
+ * @return List<JkLine>
+ */
+ List<JkLine> findList(JkLine jkLine);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkLine>
+ */
+ PageData<JkLine> findPage(PageWrap<JkLine> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkLine 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkLine jkLine);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkOrdersService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkOrdersService.java
new file mode 100644
index 0000000..6b9736d
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkOrdersService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkOrders;
+import java.util.List;
+
+/**
+ * 浜ゆ帶-閿�鍞鍗曚俊鎭〃Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkOrdersService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkOrders 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkOrders jkOrders);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkOrders 瀹炰綋瀵硅薄
+ */
+ void delete(JkOrders jkOrders);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkOrders 瀹炰綋瀵硅薄
+ */
+ void updateById(JkOrders jkOrders);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkOrderss 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkOrders> jkOrderss);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkOrders
+ */
+ JkOrders findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkOrders 瀹炰綋瀵硅薄
+ * @return JkOrders
+ */
+ JkOrders findOne(JkOrders jkOrders);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkOrders 瀹炰綋瀵硅薄
+ * @return List<JkOrders>
+ */
+ List<JkOrders> findList(JkOrders jkOrders);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkOrders>
+ */
+ PageData<JkOrders> findPage(PageWrap<JkOrders> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkOrders 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkOrders jkOrders);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchCustomerService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchCustomerService.java
new file mode 100644
index 0000000..355b865
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchCustomerService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkSketchCustomer;
+import java.util.List;
+
+/**
+ * 浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkSketchCustomerService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkSketchCustomer 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkSketchCustomer jkSketchCustomer);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkSketchCustomer 瀹炰綋瀵硅薄
+ */
+ void delete(JkSketchCustomer jkSketchCustomer);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkSketchCustomer 瀹炰綋瀵硅薄
+ */
+ void updateById(JkSketchCustomer jkSketchCustomer);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkSketchCustomers 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkSketchCustomer> jkSketchCustomers);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkSketchCustomer
+ */
+ JkSketchCustomer findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkSketchCustomer 瀹炰綋瀵硅薄
+ * @return JkSketchCustomer
+ */
+ JkSketchCustomer findOne(JkSketchCustomer jkSketchCustomer);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkSketchCustomer 瀹炰綋瀵硅薄
+ * @return List<JkSketchCustomer>
+ */
+ List<JkSketchCustomer> findList(JkSketchCustomer jkSketchCustomer);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkSketchCustomer>
+ */
+ PageData<JkSketchCustomer> findPage(PageWrap<JkSketchCustomer> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkSketchCustomer 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkSketchCustomer jkSketchCustomer);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchLineService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchLineService.java
new file mode 100644
index 0000000..4766a7b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchLineService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkSketchLine;
+import java.util.List;
+
+/**
+ * 浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkSketchLineService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkSketchLine 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkSketchLine jkSketchLine);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkSketchLine 瀹炰綋瀵硅薄
+ */
+ void delete(JkSketchLine jkSketchLine);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkSketchLine 瀹炰綋瀵硅薄
+ */
+ void updateById(JkSketchLine jkSketchLine);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkSketchLines 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkSketchLine> jkSketchLines);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkSketchLine
+ */
+ JkSketchLine findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkSketchLine 瀹炰綋瀵硅薄
+ * @return JkSketchLine
+ */
+ JkSketchLine findOne(JkSketchLine jkSketchLine);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkSketchLine 瀹炰綋瀵硅薄
+ * @return List<JkSketchLine>
+ */
+ List<JkSketchLine> findList(JkSketchLine jkSketchLine);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkSketchLine>
+ */
+ PageData<JkSketchLine> findPage(PageWrap<JkSketchLine> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkSketchLine 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkSketchLine jkSketchLine);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchService.java
new file mode 100644
index 0000000..f2cc256
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkSketchService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkSketch;
+import java.util.List;
+
+/**
+ * 浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkSketchService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkSketch 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkSketch jkSketch);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkSketch 瀹炰綋瀵硅薄
+ */
+ void delete(JkSketch jkSketch);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkSketch 瀹炰綋瀵硅薄
+ */
+ void updateById(JkSketch jkSketch);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkSketchs 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkSketch> jkSketchs);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkSketch
+ */
+ JkSketch findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkSketch 瀹炰綋瀵硅薄
+ * @return JkSketch
+ */
+ JkSketch findOne(JkSketch jkSketch);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkSketch 瀹炰綋瀵硅薄
+ * @return List<JkSketch>
+ */
+ List<JkSketch> findList(JkSketch jkSketch);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkSketch>
+ */
+ PageData<JkSketch> findPage(PageWrap<JkSketch> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkSketch 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkSketch jkSketch);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkVersionService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkVersionService.java
new file mode 100644
index 0000000..a9dd9d9
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkVersionService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.JkVersion;
+import java.util.List;
+
+/**
+ * 浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface JkVersionService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param jkVersion 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(JkVersion jkVersion);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param jkVersion 瀹炰綋瀵硅薄
+ */
+ void delete(JkVersion jkVersion);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param jkVersion 瀹炰綋瀵硅薄
+ */
+ void updateById(JkVersion jkVersion);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param jkVersions 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<JkVersion> jkVersions);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return JkVersion
+ */
+ JkVersion findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param jkVersion 瀹炰綋瀵硅薄
+ * @return JkVersion
+ */
+ JkVersion findOne(JkVersion jkVersion);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param jkVersion 瀹炰綋瀵硅薄
+ * @return List<JkVersion>
+ */
+ List<JkVersion> findList(JkVersion jkVersion);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<JkVersion>
+ */
+ PageData<JkVersion> findPage(PageWrap<JkVersion> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param jkVersion 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(JkVersion jkVersion);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningPushService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningPushService.java
new file mode 100644
index 0000000..e3b5136
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningPushService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.WarningPush;
+import java.util.List;
+
+/**
+ * 鎶ヨ鎺ㄩ�佽褰昐ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface WarningPushService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param warningPush 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(WarningPush warningPush);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param warningPush 瀹炰綋瀵硅薄
+ */
+ void delete(WarningPush warningPush);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param warningPush 瀹炰綋瀵硅薄
+ */
+ void updateById(WarningPush warningPush);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param warningPushs 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<WarningPush> warningPushs);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return WarningPush
+ */
+ WarningPush findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param warningPush 瀹炰綋瀵硅薄
+ * @return WarningPush
+ */
+ WarningPush findOne(WarningPush warningPush);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param warningPush 瀹炰綋瀵硅薄
+ * @return List<WarningPush>
+ */
+ List<WarningPush> findList(WarningPush warningPush);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<WarningPush>
+ */
+ PageData<WarningPush> findPage(PageWrap<WarningPush> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param warningPush 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(WarningPush warningPush);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleDetailService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleDetailService.java
new file mode 100644
index 0000000..c471154
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleDetailService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.WarningRuleDetail;
+import java.util.List;
+
+/**
+ * 鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface WarningRuleDetailService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param warningRuleDetail 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(WarningRuleDetail warningRuleDetail);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param warningRuleDetail 瀹炰綋瀵硅薄
+ */
+ void delete(WarningRuleDetail warningRuleDetail);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param warningRuleDetail 瀹炰綋瀵硅薄
+ */
+ void updateById(WarningRuleDetail warningRuleDetail);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param warningRuleDetails 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<WarningRuleDetail> warningRuleDetails);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return WarningRuleDetail
+ */
+ WarningRuleDetail findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param warningRuleDetail 瀹炰綋瀵硅薄
+ * @return WarningRuleDetail
+ */
+ WarningRuleDetail findOne(WarningRuleDetail warningRuleDetail);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param warningRuleDetail 瀹炰綋瀵硅薄
+ * @return List<WarningRuleDetail>
+ */
+ List<WarningRuleDetail> findList(WarningRuleDetail warningRuleDetail);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<WarningRuleDetail>
+ */
+ PageData<WarningRuleDetail> findPage(PageWrap<WarningRuleDetail> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param warningRuleDetail 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(WarningRuleDetail warningRuleDetail);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleService.java
new file mode 100644
index 0000000..b553486
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.WarningRule;
+import java.util.List;
+
+/**
+ * 鎶ヨ瑙勫垯閰嶇疆琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface WarningRuleService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param warningRule 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(WarningRule warningRule);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param warningRule 瀹炰綋瀵硅薄
+ */
+ void delete(WarningRule warningRule);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param warningRule 瀹炰綋瀵硅薄
+ */
+ void updateById(WarningRule warningRule);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param warningRules 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<WarningRule> warningRules);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return WarningRule
+ */
+ WarningRule findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param warningRule 瀹炰綋瀵硅薄
+ * @return WarningRule
+ */
+ WarningRule findOne(WarningRule warningRule);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param warningRule 瀹炰綋瀵硅薄
+ * @return List<WarningRule>
+ */
+ List<WarningRule> findList(WarningRule warningRule);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<WarningRule>
+ */
+ PageData<WarningRule> findPage(PageWrap<WarningRule> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param warningRule 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(WarningRule warningRule);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningService.java
new file mode 100644
index 0000000..9238c23
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.dao.business.model.Warning;
+import java.util.List;
+
+/**
+ * 鎶ヨ璁板綍淇℃伅琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+public interface WarningService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param warning 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(Warning warning);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param warning 瀹炰綋瀵硅薄
+ */
+ void delete(Warning warning);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param warning 瀹炰綋瀵硅薄
+ */
+ void updateById(Warning warning);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param warnings 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<Warning> warnings);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return Warning
+ */
+ Warning findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param warning 瀹炰綋瀵硅薄
+ * @return Warning
+ */
+ Warning findOne(Warning warning);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param warning 瀹炰綋瀵硅薄
+ * @return List<Warning>
+ */
+ List<Warning> findList(Warning warning);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<Warning>
+ */
+ PageData<Warning> findPage(PageWrap<Warning> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param warning 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(Warning warning);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
new file mode 100644
index 0000000..d197518
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
@@ -0,0 +1,148 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkCabinetGridMapper;
+import com.doumee.dao.business.model.JkCabinetGrid;
+import com.doumee.service.business.JkCabinetGridService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.third.model.PageWrap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkCabinetGridServiceImpl implements JkCabinetGridService {
+
+ @Autowired
+ private JkCabinetGridMapper jkCabinetGridMapper;
+
+ @Override
+ public Integer create(JkCabinetGrid jkCabinetGrid) {
+ jkCabinetGridMapper.insert(jkCabinetGrid);
+ return jkCabinetGrid.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkCabinetGridMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkCabinetGrid jkCabinetGrid) {
+ UpdateWrapper<JkCabinetGrid> deleteWrapper = new UpdateWrapper<>(jkCabinetGrid);
+ jkCabinetGridMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkCabinetGridMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkCabinetGrid jkCabinetGrid) {
+ jkCabinetGridMapper.updateById(jkCabinetGrid);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkCabinetGrid> jkCabinetGrids) {
+ if (CollectionUtils.isEmpty(jkCabinetGrids)) {
+ return;
+ }
+ for (JkCabinetGrid jkCabinetGrid: jkCabinetGrids) {
+ this.updateById(jkCabinetGrid);
+ }
+ }
+
+ @Override
+ public JkCabinetGrid findById(Integer id) {
+ return jkCabinetGridMapper.selectById(id);
+ }
+
+ @Override
+ public JkCabinetGrid findOne(JkCabinetGrid jkCabinetGrid) {
+ QueryWrapper<JkCabinetGrid> wrapper = new QueryWrapper<>(jkCabinetGrid);
+ return jkCabinetGridMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkCabinetGrid> findList(JkCabinetGrid jkCabinetGrid) {
+ QueryWrapper<JkCabinetGrid> wrapper = new QueryWrapper<>(jkCabinetGrid);
+ return jkCabinetGridMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkCabinetGrid> findPage(PageWrap<JkCabinetGrid> pageWrap) {
+ IPage<JkCabinetGrid> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkCabinetGrid> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkCabinetGrid::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkCabinetGrid::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkCabinetGrid::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkCabinetGrid::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkCabinetGrid::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkCabinetGrid::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkCabinetGrid::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkCabinetGrid::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkCabinetGrid::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getCabinetId() != null) {
+ queryWrapper.lambda().eq(JkCabinetGrid::getCabinetId, pageWrap.getModel().getCabinetId());
+ }
+ if (pageWrap.getModel().getCode() != null) {
+ queryWrapper.lambda().eq(JkCabinetGrid::getCode, pageWrap.getModel().getCode());
+ }
+ if (pageWrap.getModel().getKeyId() != null) {
+ queryWrapper.lambda().eq(JkCabinetGrid::getKeyId, pageWrap.getModel().getKeyId());
+ }
+ if (pageWrap.getModel().getSerialNo() != null) {
+ queryWrapper.lambda().eq(JkCabinetGrid::getSerialNo, pageWrap.getModel().getSerialNo());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(JkCabinetGrid::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getWorkingStatus() != null) {
+ queryWrapper.lambda().eq(JkCabinetGrid::getWorkingStatus, pageWrap.getModel().getWorkingStatus());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkCabinetGridMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkCabinetGrid jkCabinetGrid) {
+ QueryWrapper<JkCabinetGrid> wrapper = new QueryWrapper<>(jkCabinetGrid);
+ return jkCabinetGridMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java
new file mode 100644
index 0000000..bb3b8da
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java
@@ -0,0 +1,157 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkCabinetLogMapper;
+import com.doumee.dao.business.model.JkCabinetLog;
+import com.doumee.service.business.JkCabinetLogService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 閽ュ寵鏌滃紑鍏抽棬璁板綍Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkCabinetLogServiceImpl implements JkCabinetLogService {
+
+ @Autowired
+ private JkCabinetLogMapper jkCabinetLogMapper;
+
+ @Override
+ public Integer create(JkCabinetLog jkCabinetLog) {
+ jkCabinetLogMapper.insert(jkCabinetLog);
+ return jkCabinetLog.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkCabinetLogMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkCabinetLog jkCabinetLog) {
+ UpdateWrapper<JkCabinetLog> deleteWrapper = new UpdateWrapper<>(jkCabinetLog);
+ jkCabinetLogMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkCabinetLogMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkCabinetLog jkCabinetLog) {
+ jkCabinetLogMapper.updateById(jkCabinetLog);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkCabinetLog> jkCabinetLogs) {
+ if (CollectionUtils.isEmpty(jkCabinetLogs)) {
+ return;
+ }
+ for (JkCabinetLog jkCabinetLog: jkCabinetLogs) {
+ this.updateById(jkCabinetLog);
+ }
+ }
+
+ @Override
+ public JkCabinetLog findById(Integer id) {
+ return jkCabinetLogMapper.selectById(id);
+ }
+
+ @Override
+ public JkCabinetLog findOne(JkCabinetLog jkCabinetLog) {
+ QueryWrapper<JkCabinetLog> wrapper = new QueryWrapper<>(jkCabinetLog);
+ return jkCabinetLogMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkCabinetLog> findList(JkCabinetLog jkCabinetLog) {
+ QueryWrapper<JkCabinetLog> wrapper = new QueryWrapper<>(jkCabinetLog);
+ return jkCabinetLogMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkCabinetLog> findPage(PageWrap<JkCabinetLog> pageWrap) {
+ IPage<JkCabinetLog> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkCabinetLog> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkCabinetLog::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkCabinetLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkCabinetLog::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkCabinetLog::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getCabinetId() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getCabinetId, pageWrap.getModel().getCabinetId());
+ }
+ if (pageWrap.getModel().getGridId() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getGridId, pageWrap.getModel().getGridId());
+ }
+ if (pageWrap.getModel().getAuthType() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getAuthType, pageWrap.getModel().getAuthType());
+ }
+ if (pageWrap.getModel().getCarId() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getCarId, pageWrap.getModel().getCarId());
+ }
+ if (pageWrap.getModel().getKeyId() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getKeyId, pageWrap.getModel().getKeyId());
+ }
+ if (pageWrap.getModel().getMemberId() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getMemberId, pageWrap.getModel().getMemberId());
+ }
+ if (pageWrap.getModel().getKeyInfo() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getKeyInfo, pageWrap.getModel().getKeyInfo());
+ }
+ if (pageWrap.getModel().getRoleType() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getRoleType, pageWrap.getModel().getRoleType());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(JkCabinetLog::getStatus, pageWrap.getModel().getStatus());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkCabinetLogMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkCabinetLog jkCabinetLog) {
+ QueryWrapper<JkCabinetLog> wrapper = new QueryWrapper<>(jkCabinetLog);
+ return jkCabinetLogMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
new file mode 100644
index 0000000..ace6b04
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
@@ -0,0 +1,194 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkCabinetMapper;
+import com.doumee.dao.business.model.JkCabinet;
+import com.doumee.service.business.JkCabinetService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 閽ュ寵鏌滃熀鏈俊鎭〃Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkCabinetServiceImpl implements JkCabinetService {
+
+ @Autowired
+ private JkCabinetMapper jkCabinetMapper;
+
+ @Override
+ public Integer create(JkCabinet jkCabinet) {
+ jkCabinetMapper.insert(jkCabinet);
+ return jkCabinet.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkCabinetMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkCabinet jkCabinet) {
+ UpdateWrapper<JkCabinet> deleteWrapper = new UpdateWrapper<>(jkCabinet);
+ jkCabinetMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkCabinetMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkCabinet jkCabinet) {
+ jkCabinetMapper.updateById(jkCabinet);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkCabinet> jkCabinets) {
+ if (CollectionUtils.isEmpty(jkCabinets)) {
+ return;
+ }
+ for (JkCabinet jkCabinet: jkCabinets) {
+ this.updateById(jkCabinet);
+ }
+ }
+
+ @Override
+ public JkCabinet findById(Integer id) {
+ return jkCabinetMapper.selectById(id);
+ }
+
+ @Override
+ public JkCabinet findOne(JkCabinet jkCabinet) {
+ QueryWrapper<JkCabinet> wrapper = new QueryWrapper<>(jkCabinet);
+ return jkCabinetMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkCabinet> findList(JkCabinet jkCabinet) {
+ QueryWrapper<JkCabinet> wrapper = new QueryWrapper<>(jkCabinet);
+ return jkCabinetMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkCabinet> findPage(PageWrap<JkCabinet> pageWrap) {
+ IPage<JkCabinet> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkCabinet> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkCabinet::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkCabinet::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkCabinet::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkCabinet::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getCode() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getCode, pageWrap.getModel().getCode());
+ }
+ if (pageWrap.getModel().getName() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getName, pageWrap.getModel().getName());
+ }
+ if (pageWrap.getModel().getDevId() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getDevId, pageWrap.getModel().getDevId());
+ }
+ if (pageWrap.getModel().getSerialNo() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getSerialNo, pageWrap.getModel().getSerialNo());
+ }
+ if (pageWrap.getModel().getLinkAddr() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getLinkAddr, pageWrap.getModel().getLinkAddr());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getPort() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getPort, pageWrap.getModel().getPort());
+ }
+ if (pageWrap.getModel().getManagerId() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getManagerId, pageWrap.getModel().getManagerId());
+ }
+ if (pageWrap.getModel().getUseTime() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getUseTime, pageWrap.getModel().getUseTime());
+ }
+ if (pageWrap.getModel().getDoubleAuth() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getDoubleAuth, pageWrap.getModel().getDoubleAuth());
+ }
+ if (pageWrap.getModel().getAuthMemberId() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getAuthMemberId, pageWrap.getModel().getAuthMemberId());
+ }
+ if (pageWrap.getModel().getRowNum() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getRowNum, pageWrap.getModel().getRowNum());
+ }
+ if (pageWrap.getModel().getColumnNum() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getColumnNum, pageWrap.getModel().getColumnNum());
+ }
+ if (pageWrap.getModel().getHaertTime() != null) {
+ queryWrapper.lambda().ge(JkCabinet::getHaertTime, Utils.Date.getStart(pageWrap.getModel().getHaertTime()));
+ queryWrapper.lambda().le(JkCabinet::getHaertTime, Utils.Date.getEnd(pageWrap.getModel().getHaertTime()));
+ }
+ if (pageWrap.getModel().getLacation() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getLacation, pageWrap.getModel().getLacation());
+ }
+ if (pageWrap.getModel().getLongitude() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getLongitude, pageWrap.getModel().getLongitude());
+ }
+ if (pageWrap.getModel().getLatitude() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getLatitude, pageWrap.getModel().getLatitude());
+ }
+ if (pageWrap.getModel().getNoType() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getNoType, pageWrap.getModel().getNoType());
+ }
+ if (pageWrap.getModel().getNoPrefix() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getNoPrefix, pageWrap.getModel().getNoPrefix());
+ }
+ if (pageWrap.getModel().getNoLength() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getNoLength, pageWrap.getModel().getNoLength());
+ }
+ if (pageWrap.getModel().getNoIndex() != null) {
+ queryWrapper.lambda().eq(JkCabinet::getNoIndex, pageWrap.getModel().getNoIndex());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkCabinetMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkCabinet jkCabinet) {
+ QueryWrapper<JkCabinet> wrapper = new QueryWrapper<>(jkCabinet);
+ return jkCabinetMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCustomerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCustomerServiceImpl.java
new file mode 100644
index 0000000..82e889a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCustomerServiceImpl.java
@@ -0,0 +1,157 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkCustomerMapper;
+import com.doumee.dao.business.model.JkCustomer;
+import com.doumee.service.business.JkCustomerService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 浜ゆ帶-瀹㈡埛淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkCustomerServiceImpl implements JkCustomerService {
+
+ @Autowired
+ private JkCustomerMapper jkCustomerMapper;
+
+ @Override
+ public Integer create(JkCustomer jkCustomer) {
+ jkCustomerMapper.insert(jkCustomer);
+ return jkCustomer.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkCustomerMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkCustomer jkCustomer) {
+ UpdateWrapper<JkCustomer> deleteWrapper = new UpdateWrapper<>(jkCustomer);
+ jkCustomerMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkCustomerMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkCustomer jkCustomer) {
+ jkCustomerMapper.updateById(jkCustomer);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkCustomer> jkCustomers) {
+ if (CollectionUtils.isEmpty(jkCustomers)) {
+ return;
+ }
+ for (JkCustomer jkCustomer: jkCustomers) {
+ this.updateById(jkCustomer);
+ }
+ }
+
+ @Override
+ public JkCustomer findById(Integer id) {
+ return jkCustomerMapper.selectById(id);
+ }
+
+ @Override
+ public JkCustomer findOne(JkCustomer jkCustomer) {
+ QueryWrapper<JkCustomer> wrapper = new QueryWrapper<>(jkCustomer);
+ return jkCustomerMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkCustomer> findList(JkCustomer jkCustomer) {
+ QueryWrapper<JkCustomer> wrapper = new QueryWrapper<>(jkCustomer);
+ return jkCustomerMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkCustomer> findPage(PageWrap<JkCustomer> pageWrap) {
+ IPage<JkCustomer> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkCustomer> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkCustomer::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkCustomer::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkCustomer::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkCustomer::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getName() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getName, pageWrap.getModel().getName());
+ }
+ if (pageWrap.getModel().getCode() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getCode, pageWrap.getModel().getCode());
+ }
+ if (pageWrap.getModel().getLacation() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getLacation, pageWrap.getModel().getLacation());
+ }
+ if (pageWrap.getModel().getLongitude() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getLongitude, pageWrap.getModel().getLongitude());
+ }
+ if (pageWrap.getModel().getLatitude() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getLatitude, pageWrap.getModel().getLatitude());
+ }
+ if (pageWrap.getModel().getWeeks() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getWeeks, pageWrap.getModel().getWeeks());
+ }
+ if (pageWrap.getModel().getLineId() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getLineId, pageWrap.getModel().getLineId());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getSortnum() != null) {
+ queryWrapper.lambda().eq(JkCustomer::getSortnum, pageWrap.getModel().getSortnum());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkCustomerMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkCustomer jkCustomer) {
+ QueryWrapper<JkCustomer> wrapper = new QueryWrapper<>(jkCustomer);
+ return jkCustomerMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkIccardServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkIccardServiceImpl.java
new file mode 100644
index 0000000..0964dc4
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkIccardServiceImpl.java
@@ -0,0 +1,145 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkIccardMapper;
+import com.doumee.dao.business.model.JkIccard;
+import com.doumee.service.business.JkIccardService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 閽ュ寵鏌淚C鍗′俊鎭〃Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkIccardServiceImpl implements JkIccardService {
+
+ @Autowired
+ private JkIccardMapper jkIccardMapper;
+
+ @Override
+ public Integer create(JkIccard jkIccard) {
+ jkIccardMapper.insert(jkIccard);
+ return jkIccard.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkIccardMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkIccard jkIccard) {
+ UpdateWrapper<JkIccard> deleteWrapper = new UpdateWrapper<>(jkIccard);
+ jkIccardMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkIccardMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkIccard jkIccard) {
+ jkIccardMapper.updateById(jkIccard);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkIccard> jkIccards) {
+ if (CollectionUtils.isEmpty(jkIccards)) {
+ return;
+ }
+ for (JkIccard jkIccard: jkIccards) {
+ this.updateById(jkIccard);
+ }
+ }
+
+ @Override
+ public JkIccard findById(Integer id) {
+ return jkIccardMapper.selectById(id);
+ }
+
+ @Override
+ public JkIccard findOne(JkIccard jkIccard) {
+ QueryWrapper<JkIccard> wrapper = new QueryWrapper<>(jkIccard);
+ return jkIccardMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkIccard> findList(JkIccard jkIccard) {
+ QueryWrapper<JkIccard> wrapper = new QueryWrapper<>(jkIccard);
+ return jkIccardMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkIccard> findPage(PageWrap<JkIccard> pageWrap) {
+ IPage<JkIccard> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkIccard> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkIccard::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkIccard::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkIccard::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkIccard::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkIccard::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkIccard::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkIccard::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkIccard::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkIccard::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getMemberId() != null) {
+ queryWrapper.lambda().eq(JkIccard::getMemberId, pageWrap.getModel().getMemberId());
+ }
+ if (pageWrap.getModel().getCode() != null) {
+ queryWrapper.lambda().eq(JkIccard::getCode, pageWrap.getModel().getCode());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(JkIccard::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getName() != null) {
+ queryWrapper.lambda().eq(JkIccard::getName, pageWrap.getModel().getName());
+ }
+ if (pageWrap.getModel().getCabinetId() != null) {
+ queryWrapper.lambda().eq(JkIccard::getCabinetId, pageWrap.getModel().getCabinetId());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkIccardMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkIccard jkIccard) {
+ QueryWrapper<JkIccard> wrapper = new QueryWrapper<>(jkIccard);
+ return jkIccardMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java
new file mode 100644
index 0000000..dcb7279
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java
@@ -0,0 +1,148 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkKeysMapper;
+import com.doumee.dao.business.model.JkKeys;
+import com.doumee.service.business.JkKeysService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 閽ュ寵鍩烘湰淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkKeysServiceImpl implements JkKeysService {
+
+ @Autowired
+ private JkKeysMapper jkKeysMapper;
+
+ @Override
+ public Integer create(JkKeys jkKeys) {
+ jkKeysMapper.insert(jkKeys);
+ return jkKeys.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkKeysMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkKeys jkKeys) {
+ UpdateWrapper<JkKeys> deleteWrapper = new UpdateWrapper<>(jkKeys);
+ jkKeysMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkKeysMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkKeys jkKeys) {
+ jkKeysMapper.updateById(jkKeys);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkKeys> jkKeyss) {
+ if (CollectionUtils.isEmpty(jkKeyss)) {
+ return;
+ }
+ for (JkKeys jkKeys: jkKeyss) {
+ this.updateById(jkKeys);
+ }
+ }
+
+ @Override
+ public JkKeys findById(Integer id) {
+ return jkKeysMapper.selectById(id);
+ }
+
+ @Override
+ public JkKeys findOne(JkKeys jkKeys) {
+ QueryWrapper<JkKeys> wrapper = new QueryWrapper<>(jkKeys);
+ return jkKeysMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkKeys> findList(JkKeys jkKeys) {
+ QueryWrapper<JkKeys> wrapper = new QueryWrapper<>(jkKeys);
+ return jkKeysMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkKeys> findPage(PageWrap<JkKeys> pageWrap) {
+ IPage<JkKeys> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkKeys> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkKeys::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkKeys::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkKeys::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkKeys::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkKeys::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkKeys::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkKeys::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkKeys::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkKeys::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getCode() != null) {
+ queryWrapper.lambda().eq(JkKeys::getCode, pageWrap.getModel().getCode());
+ }
+ if (pageWrap.getModel().getCarCode() != null) {
+ queryWrapper.lambda().eq(JkKeys::getCarCode, pageWrap.getModel().getCarCode());
+ }
+ if (pageWrap.getModel().getCarId() != null) {
+ queryWrapper.lambda().eq(JkKeys::getCarId, pageWrap.getModel().getCarId());
+ }
+ if (pageWrap.getModel().getRfidLable() != null) {
+ queryWrapper.lambda().eq(JkKeys::getRfidLable, pageWrap.getModel().getRfidLable());
+ }
+ if (pageWrap.getModel().getRoleType() != null) {
+ queryWrapper.lambda().eq(JkKeys::getRoleType, pageWrap.getModel().getRoleType());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(JkKeys::getStatus, pageWrap.getModel().getStatus());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkKeysMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkKeys jkKeys) {
+ QueryWrapper<JkKeys> wrapper = new QueryWrapper<>(jkKeys);
+ return jkKeysMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkLineServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkLineServiceImpl.java
new file mode 100644
index 0000000..ff6161e
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkLineServiceImpl.java
@@ -0,0 +1,151 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkLineMapper;
+import com.doumee.dao.business.model.JkLine;
+import com.doumee.service.business.JkLineService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 浜ゆ帶-绾胯矾淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkLineServiceImpl implements JkLineService {
+
+ @Autowired
+ private JkLineMapper jkLineMapper;
+
+ @Override
+ public Integer create(JkLine jkLine) {
+ jkLineMapper.insert(jkLine);
+ return jkLine.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkLineMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkLine jkLine) {
+ UpdateWrapper<JkLine> deleteWrapper = new UpdateWrapper<>(jkLine);
+ jkLineMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkLineMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkLine jkLine) {
+ jkLineMapper.updateById(jkLine);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkLine> jkLines) {
+ if (CollectionUtils.isEmpty(jkLines)) {
+ return;
+ }
+ for (JkLine jkLine: jkLines) {
+ this.updateById(jkLine);
+ }
+ }
+
+ @Override
+ public JkLine findById(Integer id) {
+ return jkLineMapper.selectById(id);
+ }
+
+ @Override
+ public JkLine findOne(JkLine jkLine) {
+ QueryWrapper<JkLine> wrapper = new QueryWrapper<>(jkLine);
+ return jkLineMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkLine> findList(JkLine jkLine) {
+ QueryWrapper<JkLine> wrapper = new QueryWrapper<>(jkLine);
+ return jkLineMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkLine> findPage(PageWrap<JkLine> pageWrap) {
+ IPage<JkLine> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkLine> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkLine::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkLine::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkLine::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkLine::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkLine::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkLine::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkLine::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkLine::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkLine::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getName() != null) {
+ queryWrapper.lambda().eq(JkLine::getName, pageWrap.getModel().getName());
+ }
+ if (pageWrap.getModel().getCategoryId() != null) {
+ queryWrapper.lambda().eq(JkLine::getCategoryId, pageWrap.getModel().getCategoryId());
+ }
+ if (pageWrap.getModel().getCarId() != null) {
+ queryWrapper.lambda().eq(JkLine::getCarId, pageWrap.getModel().getCarId());
+ }
+ if (pageWrap.getModel().getMaxCustomer() != null) {
+ queryWrapper.lambda().eq(JkLine::getMaxCustomer, pageWrap.getModel().getMaxCustomer());
+ }
+ if (pageWrap.getModel().getMaxOrder() != null) {
+ queryWrapper.lambda().eq(JkLine::getMaxOrder, pageWrap.getModel().getMaxOrder());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(JkLine::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getSortnum() != null) {
+ queryWrapper.lambda().eq(JkLine::getSortnum, pageWrap.getModel().getSortnum());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkLineMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkLine jkLine) {
+ QueryWrapper<JkLine> wrapper = new QueryWrapper<>(jkLine);
+ return jkLineMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkOrdersServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkOrdersServiceImpl.java
new file mode 100644
index 0000000..d88ff6a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkOrdersServiceImpl.java
@@ -0,0 +1,152 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkOrdersMapper;
+import com.doumee.dao.business.model.JkOrders;
+import com.doumee.service.business.JkOrdersService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 浜ゆ帶-閿�鍞鍗曚俊鎭〃Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkOrdersServiceImpl implements JkOrdersService {
+
+ @Autowired
+ private JkOrdersMapper jkOrdersMapper;
+
+ @Override
+ public Integer create(JkOrders jkOrders) {
+ jkOrdersMapper.insert(jkOrders);
+ return jkOrders.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkOrdersMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkOrders jkOrders) {
+ UpdateWrapper<JkOrders> deleteWrapper = new UpdateWrapper<>(jkOrders);
+ jkOrdersMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkOrdersMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkOrders jkOrders) {
+ jkOrdersMapper.updateById(jkOrders);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkOrders> jkOrderss) {
+ if (CollectionUtils.isEmpty(jkOrderss)) {
+ return;
+ }
+ for (JkOrders jkOrders: jkOrderss) {
+ this.updateById(jkOrders);
+ }
+ }
+
+ @Override
+ public JkOrders findById(Integer id) {
+ return jkOrdersMapper.selectById(id);
+ }
+
+ @Override
+ public JkOrders findOne(JkOrders jkOrders) {
+ QueryWrapper<JkOrders> wrapper = new QueryWrapper<>(jkOrders);
+ return jkOrdersMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkOrders> findList(JkOrders jkOrders) {
+ QueryWrapper<JkOrders> wrapper = new QueryWrapper<>(jkOrders);
+ return jkOrdersMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkOrders> findPage(PageWrap<JkOrders> pageWrap) {
+ IPage<JkOrders> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkOrders> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkOrders::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkOrders::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkOrders::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkOrders::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkOrders::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkOrders::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkOrders::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkOrders::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkOrders::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getName() != null) {
+ queryWrapper.lambda().eq(JkOrders::getName, pageWrap.getModel().getName());
+ }
+ if (pageWrap.getModel().getNum() != null) {
+ queryWrapper.lambda().eq(JkOrders::getNum, pageWrap.getModel().getNum());
+ }
+ if (pageWrap.getModel().getLineId() != null) {
+ queryWrapper.lambda().eq(JkOrders::getLineId, pageWrap.getModel().getLineId());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(JkOrders::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getSortnum() != null) {
+ queryWrapper.lambda().eq(JkOrders::getSortnum, pageWrap.getModel().getSortnum());
+ }
+ if (pageWrap.getModel().getDateInfo() != null) {
+ queryWrapper.lambda().ge(JkOrders::getDateInfo, Utils.Date.getStart(pageWrap.getModel().getDateInfo()));
+ queryWrapper.lambda().le(JkOrders::getDateInfo, Utils.Date.getEnd(pageWrap.getModel().getDateInfo()));
+ }
+ if (pageWrap.getModel().getDistances() != null) {
+ queryWrapper.lambda().eq(JkOrders::getDistances, pageWrap.getModel().getDistances());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkOrdersMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkOrders jkOrders) {
+ QueryWrapper<JkOrders> wrapper = new QueryWrapper<>(jkOrders);
+ return jkOrdersMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchCustomerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchCustomerServiceImpl.java
new file mode 100644
index 0000000..c58701d
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchCustomerServiceImpl.java
@@ -0,0 +1,149 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkSketchCustomerMapper;
+import com.doumee.dao.business.model.JkSketchCustomer;
+import com.doumee.service.business.JkSketchCustomerService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 浜ゆ帶-绾胯矾浼樺寲绾胯矾瀹㈡埛璁板綍淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkSketchCustomerServiceImpl implements JkSketchCustomerService {
+
+ @Autowired
+ private JkSketchCustomerMapper jkSketchCustomerMapper;
+
+ @Override
+ public Integer create(JkSketchCustomer jkSketchCustomer) {
+ jkSketchCustomerMapper.insert(jkSketchCustomer);
+ return jkSketchCustomer.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkSketchCustomerMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkSketchCustomer jkSketchCustomer) {
+ UpdateWrapper<JkSketchCustomer> deleteWrapper = new UpdateWrapper<>(jkSketchCustomer);
+ jkSketchCustomerMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkSketchCustomerMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkSketchCustomer jkSketchCustomer) {
+ jkSketchCustomerMapper.updateById(jkSketchCustomer);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkSketchCustomer> jkSketchCustomers) {
+ if (CollectionUtils.isEmpty(jkSketchCustomers)) {
+ return;
+ }
+ for (JkSketchCustomer jkSketchCustomer: jkSketchCustomers) {
+ this.updateById(jkSketchCustomer);
+ }
+ }
+
+ @Override
+ public JkSketchCustomer findById(Integer id) {
+ return jkSketchCustomerMapper.selectById(id);
+ }
+
+ @Override
+ public JkSketchCustomer findOne(JkSketchCustomer jkSketchCustomer) {
+ QueryWrapper<JkSketchCustomer> wrapper = new QueryWrapper<>(jkSketchCustomer);
+ return jkSketchCustomerMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkSketchCustomer> findList(JkSketchCustomer jkSketchCustomer) {
+ QueryWrapper<JkSketchCustomer> wrapper = new QueryWrapper<>(jkSketchCustomer);
+ return jkSketchCustomerMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkSketchCustomer> findPage(PageWrap<JkSketchCustomer> pageWrap) {
+ IPage<JkSketchCustomer> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkSketchCustomer> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkSketchCustomer::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkSketchCustomer::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkSketchCustomer::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkSketchCustomer::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkSketchCustomer::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkSketchCustomer::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkSketchCustomer::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkSketchCustomer::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkSketchCustomer::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getSketchLineId() != null) {
+ queryWrapper.lambda().eq(JkSketchCustomer::getSketchLineId, pageWrap.getModel().getSketchLineId());
+ }
+ if (pageWrap.getModel().getSketchId() != null) {
+ queryWrapper.lambda().eq(JkSketchCustomer::getSketchId, pageWrap.getModel().getSketchId());
+ }
+ if (pageWrap.getModel().getTotalNum() != null) {
+ queryWrapper.lambda().eq(JkSketchCustomer::getTotalNum, pageWrap.getModel().getTotalNum());
+ }
+ if (pageWrap.getModel().getOrderNum() != null) {
+ queryWrapper.lambda().eq(JkSketchCustomer::getOrderNum, pageWrap.getModel().getOrderNum());
+ }
+ if (pageWrap.getModel().getSortnum() != null) {
+ queryWrapper.lambda().eq(JkSketchCustomer::getSortnum, pageWrap.getModel().getSortnum());
+ }
+ if (pageWrap.getModel().getDateInfo() != null) {
+ queryWrapper.lambda().ge(JkSketchCustomer::getDateInfo, Utils.Date.getStart(pageWrap.getModel().getDateInfo()));
+ queryWrapper.lambda().le(JkSketchCustomer::getDateInfo, Utils.Date.getEnd(pageWrap.getModel().getDateInfo()));
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkSketchCustomerMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkSketchCustomer jkSketchCustomer) {
+ QueryWrapper<JkSketchCustomer> wrapper = new QueryWrapper<>(jkSketchCustomer);
+ return jkSketchCustomerMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchLineServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchLineServiceImpl.java
new file mode 100644
index 0000000..becfce2
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchLineServiceImpl.java
@@ -0,0 +1,149 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkSketchLineMapper;
+import com.doumee.dao.business.model.JkSketchLine;
+import com.doumee.service.business.JkSketchLineService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 浜ゆ帶-绾胯矾浼樺寲绾胯矾璁板綍淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkSketchLineServiceImpl implements JkSketchLineService {
+
+ @Autowired
+ private JkSketchLineMapper jkSketchLineMapper;
+
+ @Override
+ public Integer create(JkSketchLine jkSketchLine) {
+ jkSketchLineMapper.insert(jkSketchLine);
+ return jkSketchLine.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkSketchLineMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkSketchLine jkSketchLine) {
+ UpdateWrapper<JkSketchLine> deleteWrapper = new UpdateWrapper<>(jkSketchLine);
+ jkSketchLineMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkSketchLineMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkSketchLine jkSketchLine) {
+ jkSketchLineMapper.updateById(jkSketchLine);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkSketchLine> jkSketchLines) {
+ if (CollectionUtils.isEmpty(jkSketchLines)) {
+ return;
+ }
+ for (JkSketchLine jkSketchLine: jkSketchLines) {
+ this.updateById(jkSketchLine);
+ }
+ }
+
+ @Override
+ public JkSketchLine findById(Integer id) {
+ return jkSketchLineMapper.selectById(id);
+ }
+
+ @Override
+ public JkSketchLine findOne(JkSketchLine jkSketchLine) {
+ QueryWrapper<JkSketchLine> wrapper = new QueryWrapper<>(jkSketchLine);
+ return jkSketchLineMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkSketchLine> findList(JkSketchLine jkSketchLine) {
+ QueryWrapper<JkSketchLine> wrapper = new QueryWrapper<>(jkSketchLine);
+ return jkSketchLineMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkSketchLine> findPage(PageWrap<JkSketchLine> pageWrap) {
+ IPage<JkSketchLine> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkSketchLine> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkSketchLine::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkSketchLine::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkSketchLine::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkSketchLine::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkSketchLine::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkSketchLine::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkSketchLine::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkSketchLine::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkSketchLine::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getLineId() != null) {
+ queryWrapper.lambda().eq(JkSketchLine::getLineId, pageWrap.getModel().getLineId());
+ }
+ if (pageWrap.getModel().getSketchId() != null) {
+ queryWrapper.lambda().eq(JkSketchLine::getSketchId, pageWrap.getModel().getSketchId());
+ }
+ if (pageWrap.getModel().getTotalNum() != null) {
+ queryWrapper.lambda().eq(JkSketchLine::getTotalNum, pageWrap.getModel().getTotalNum());
+ }
+ if (pageWrap.getModel().getOrderNum() != null) {
+ queryWrapper.lambda().eq(JkSketchLine::getOrderNum, pageWrap.getModel().getOrderNum());
+ }
+ if (pageWrap.getModel().getSortnum() != null) {
+ queryWrapper.lambda().eq(JkSketchLine::getSortnum, pageWrap.getModel().getSortnum());
+ }
+ if (pageWrap.getModel().getDateInfo() != null) {
+ queryWrapper.lambda().ge(JkSketchLine::getDateInfo, Utils.Date.getStart(pageWrap.getModel().getDateInfo()));
+ queryWrapper.lambda().le(JkSketchLine::getDateInfo, Utils.Date.getEnd(pageWrap.getModel().getDateInfo()));
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkSketchLineMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkSketchLine jkSketchLine) {
+ QueryWrapper<JkSketchLine> wrapper = new QueryWrapper<>(jkSketchLine);
+ return jkSketchLineMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
new file mode 100644
index 0000000..3bab1bb
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
@@ -0,0 +1,152 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkSketchMapper;
+import com.doumee.dao.business.model.JkSketch;
+import com.doumee.service.business.JkSketchService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 浜ゆ帶-绾胯矾浼樺寲璁板綍淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkSketchServiceImpl implements JkSketchService {
+
+ @Autowired
+ private JkSketchMapper jkSketchMapper;
+
+ @Override
+ public Integer create(JkSketch jkSketch) {
+ jkSketchMapper.insert(jkSketch);
+ return jkSketch.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkSketchMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkSketch jkSketch) {
+ UpdateWrapper<JkSketch> deleteWrapper = new UpdateWrapper<>(jkSketch);
+ jkSketchMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkSketchMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkSketch jkSketch) {
+ jkSketchMapper.updateById(jkSketch);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkSketch> jkSketchs) {
+ if (CollectionUtils.isEmpty(jkSketchs)) {
+ return;
+ }
+ for (JkSketch jkSketch: jkSketchs) {
+ this.updateById(jkSketch);
+ }
+ }
+
+ @Override
+ public JkSketch findById(Integer id) {
+ return jkSketchMapper.selectById(id);
+ }
+
+ @Override
+ public JkSketch findOne(JkSketch jkSketch) {
+ QueryWrapper<JkSketch> wrapper = new QueryWrapper<>(jkSketch);
+ return jkSketchMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkSketch> findList(JkSketch jkSketch) {
+ QueryWrapper<JkSketch> wrapper = new QueryWrapper<>(jkSketch);
+ return jkSketchMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkSketch> findPage(PageWrap<JkSketch> pageWrap) {
+ IPage<JkSketch> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkSketch> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkSketch::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkSketch::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkSketch::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkSketch::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkSketch::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkSketch::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkSketch::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkSketch::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkSketch::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getCategoryId() != null) {
+ queryWrapper.lambda().eq(JkSketch::getCategoryId, pageWrap.getModel().getCategoryId());
+ }
+ if (pageWrap.getModel().getTotalNum() != null) {
+ queryWrapper.lambda().eq(JkSketch::getTotalNum, pageWrap.getModel().getTotalNum());
+ }
+ if (pageWrap.getModel().getOrderNum() != null) {
+ queryWrapper.lambda().eq(JkSketch::getOrderNum, pageWrap.getModel().getOrderNum());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(JkSketch::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getSortnum() != null) {
+ queryWrapper.lambda().eq(JkSketch::getSortnum, pageWrap.getModel().getSortnum());
+ }
+ if (pageWrap.getModel().getDateInfo() != null) {
+ queryWrapper.lambda().ge(JkSketch::getDateInfo, Utils.Date.getStart(pageWrap.getModel().getDateInfo()));
+ queryWrapper.lambda().le(JkSketch::getDateInfo, Utils.Date.getEnd(pageWrap.getModel().getDateInfo()));
+ }
+ if (pageWrap.getModel().getJobId() != null) {
+ queryWrapper.lambda().eq(JkSketch::getJobId, pageWrap.getModel().getJobId());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkSketchMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkSketch jkSketch) {
+ QueryWrapper<JkSketch> wrapper = new QueryWrapper<>(jkSketch);
+ return jkSketchMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkVersionServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkVersionServiceImpl.java
new file mode 100644
index 0000000..9a360c2
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkVersionServiceImpl.java
@@ -0,0 +1,154 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkVersionMapper;
+import com.doumee.dao.business.model.JkVersion;
+import com.doumee.service.business.JkVersionService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 浜ゆ帶-閽ュ寵鏌滅粓绔増鏈俊鎭〃Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkVersionServiceImpl implements JkVersionService {
+
+ @Autowired
+ private JkVersionMapper jkVersionMapper;
+
+ @Override
+ public Integer create(JkVersion jkVersion) {
+ jkVersionMapper.insert(jkVersion);
+ return jkVersion.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ jkVersionMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkVersion jkVersion) {
+ UpdateWrapper<JkVersion> deleteWrapper = new UpdateWrapper<>(jkVersion);
+ jkVersionMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkVersionMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkVersion jkVersion) {
+ jkVersionMapper.updateById(jkVersion);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkVersion> jkVersions) {
+ if (CollectionUtils.isEmpty(jkVersions)) {
+ return;
+ }
+ for (JkVersion jkVersion: jkVersions) {
+ this.updateById(jkVersion);
+ }
+ }
+
+ @Override
+ public JkVersion findById(Integer id) {
+ return jkVersionMapper.selectById(id);
+ }
+
+ @Override
+ public JkVersion findOne(JkVersion jkVersion) {
+ QueryWrapper<JkVersion> wrapper = new QueryWrapper<>(jkVersion);
+ return jkVersionMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkVersion> findList(JkVersion jkVersion) {
+ QueryWrapper<JkVersion> wrapper = new QueryWrapper<>(jkVersion);
+ return jkVersionMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkVersion> findPage(PageWrap<JkVersion> pageWrap) {
+ IPage<JkVersion> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkVersion> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(JkVersion::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(JkVersion::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(JkVersion::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(JkVersion::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(JkVersion::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(JkVersion::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(JkVersion::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(JkVersion::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(JkVersion::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getVersionInfo() != null) {
+ queryWrapper.lambda().eq(JkVersion::getVersionInfo, pageWrap.getModel().getVersionInfo());
+ }
+ if (pageWrap.getModel().getFileUrl() != null) {
+ queryWrapper.lambda().eq(JkVersion::getFileUrl, pageWrap.getModel().getFileUrl());
+ }
+ if (pageWrap.getModel().getName() != null) {
+ queryWrapper.lambda().eq(JkVersion::getName, pageWrap.getModel().getName());
+ }
+ if (pageWrap.getModel().getContent() != null) {
+ queryWrapper.lambda().eq(JkVersion::getContent, pageWrap.getModel().getContent());
+ }
+ if (pageWrap.getModel().getSortnum() != null) {
+ queryWrapper.lambda().eq(JkVersion::getSortnum, pageWrap.getModel().getSortnum());
+ }
+ if (pageWrap.getModel().getTitle() != null) {
+ queryWrapper.lambda().eq(JkVersion::getTitle, pageWrap.getModel().getTitle());
+ }
+ if (pageWrap.getModel().getIsForce() != null) {
+ queryWrapper.lambda().eq(JkVersion::getIsForce, pageWrap.getModel().getIsForce());
+ }
+ if (pageWrap.getModel().getType() != null) {
+ queryWrapper.lambda().eq(JkVersion::getType, pageWrap.getModel().getType());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(jkVersionMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(JkVersion jkVersion) {
+ QueryWrapper<JkVersion> wrapper = new QueryWrapper<>(jkVersion);
+ return jkVersionMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java
new file mode 100644
index 0000000..d1cb6d2
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java
@@ -0,0 +1,161 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.WarningPushMapper;
+import com.doumee.dao.business.model.WarningPush;
+import com.doumee.service.business.WarningPushService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 鎶ヨ鎺ㄩ�佽褰昐ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class WarningPushServiceImpl implements WarningPushService {
+
+ @Autowired
+ private WarningPushMapper warningPushMapper;
+
+ @Override
+ public Integer create(WarningPush warningPush) {
+ warningPushMapper.insert(warningPush);
+ return warningPush.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ warningPushMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(WarningPush warningPush) {
+ UpdateWrapper<WarningPush> deleteWrapper = new UpdateWrapper<>(warningPush);
+ warningPushMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ warningPushMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(WarningPush warningPush) {
+ warningPushMapper.updateById(warningPush);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<WarningPush> warningPushs) {
+ if (CollectionUtils.isEmpty(warningPushs)) {
+ return;
+ }
+ for (WarningPush warningPush: warningPushs) {
+ this.updateById(warningPush);
+ }
+ }
+
+ @Override
+ public WarningPush findById(Integer id) {
+ return warningPushMapper.selectById(id);
+ }
+
+ @Override
+ public WarningPush findOne(WarningPush warningPush) {
+ QueryWrapper<WarningPush> wrapper = new QueryWrapper<>(warningPush);
+ return warningPushMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<WarningPush> findList(WarningPush warningPush) {
+ QueryWrapper<WarningPush> wrapper = new QueryWrapper<>(warningPush);
+ return warningPushMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<WarningPush> findPage(PageWrap<WarningPush> pageWrap) {
+ IPage<WarningPush> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<WarningPush> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(WarningPush::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(WarningPush::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(WarningPush::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(WarningPush::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(WarningPush::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(WarningPush::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(WarningPush::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(WarningPush::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(WarningPush::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getMemberId() != null) {
+ queryWrapper.lambda().eq(WarningPush::getMemberId, pageWrap.getModel().getMemberId());
+ }
+ if (pageWrap.getModel().getWarningId() != null) {
+ queryWrapper.lambda().eq(WarningPush::getWarningId, pageWrap.getModel().getWarningId());
+ }
+ if (pageWrap.getModel().getTitle() != null) {
+ queryWrapper.lambda().eq(WarningPush::getTitle, pageWrap.getModel().getTitle());
+ }
+ if (pageWrap.getModel().getContent() != null) {
+ queryWrapper.lambda().eq(WarningPush::getContent, pageWrap.getModel().getContent());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(WarningPush::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getPushInfo() != null) {
+ queryWrapper.lambda().eq(WarningPush::getPushInfo, pageWrap.getModel().getPushInfo());
+ }
+ if (pageWrap.getModel().getEventInfo() != null) {
+ queryWrapper.lambda().eq(WarningPush::getEventInfo, pageWrap.getModel().getEventInfo());
+ }
+ if (pageWrap.getModel().getPushId() != null) {
+ queryWrapper.lambda().eq(WarningPush::getPushId, pageWrap.getModel().getPushId());
+ }
+ if (pageWrap.getModel().getPushDate() != null) {
+ queryWrapper.lambda().ge(WarningPush::getPushDate, Utils.Date.getStart(pageWrap.getModel().getPushDate()));
+ queryWrapper.lambda().le(WarningPush::getPushDate, Utils.Date.getEnd(pageWrap.getModel().getPushDate()));
+ }
+ if (pageWrap.getModel().getPushType() != null) {
+ queryWrapper.lambda().eq(WarningPush::getPushType, pageWrap.getModel().getPushType());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(warningPushMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(WarningPush warningPush) {
+ QueryWrapper<WarningPush> wrapper = new QueryWrapper<>(warningPush);
+ return warningPushMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleDetailServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleDetailServiceImpl.java
new file mode 100644
index 0000000..c6a6216
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleDetailServiceImpl.java
@@ -0,0 +1,148 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.WarningRuleDetailMapper;
+import com.doumee.dao.business.model.WarningRuleDetail;
+import com.doumee.service.business.WarningRuleDetailService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 鎶ヨ瑙勫垯閰嶇疆鏄庣粏琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class WarningRuleDetailServiceImpl implements WarningRuleDetailService {
+
+ @Autowired
+ private WarningRuleDetailMapper warningRuleDetailMapper;
+
+ @Override
+ public Integer create(WarningRuleDetail warningRuleDetail) {
+ warningRuleDetailMapper.insert(warningRuleDetail);
+ return warningRuleDetail.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ warningRuleDetailMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(WarningRuleDetail warningRuleDetail) {
+ UpdateWrapper<WarningRuleDetail> deleteWrapper = new UpdateWrapper<>(warningRuleDetail);
+ warningRuleDetailMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ warningRuleDetailMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(WarningRuleDetail warningRuleDetail) {
+ warningRuleDetailMapper.updateById(warningRuleDetail);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<WarningRuleDetail> warningRuleDetails) {
+ if (CollectionUtils.isEmpty(warningRuleDetails)) {
+ return;
+ }
+ for (WarningRuleDetail warningRuleDetail: warningRuleDetails) {
+ this.updateById(warningRuleDetail);
+ }
+ }
+
+ @Override
+ public WarningRuleDetail findById(Integer id) {
+ return warningRuleDetailMapper.selectById(id);
+ }
+
+ @Override
+ public WarningRuleDetail findOne(WarningRuleDetail warningRuleDetail) {
+ QueryWrapper<WarningRuleDetail> wrapper = new QueryWrapper<>(warningRuleDetail);
+ return warningRuleDetailMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<WarningRuleDetail> findList(WarningRuleDetail warningRuleDetail) {
+ QueryWrapper<WarningRuleDetail> wrapper = new QueryWrapper<>(warningRuleDetail);
+ return warningRuleDetailMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<WarningRuleDetail> findPage(PageWrap<WarningRuleDetail> pageWrap) {
+ IPage<WarningRuleDetail> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<WarningRuleDetail> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(WarningRuleDetail::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(WarningRuleDetail::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(WarningRuleDetail::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(WarningRuleDetail::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(WarningRuleDetail::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(WarningRuleDetail::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(WarningRuleDetail::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(WarningRuleDetail::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(WarningRuleDetail::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getRuleId() != null) {
+ queryWrapper.lambda().eq(WarningRuleDetail::getRuleId, pageWrap.getModel().getRuleId());
+ }
+ if (pageWrap.getModel().getWarningId() != null) {
+ queryWrapper.lambda().eq(WarningRuleDetail::getWarningId, pageWrap.getModel().getWarningId());
+ }
+ if (pageWrap.getModel().getRegionCode() != null) {
+ queryWrapper.lambda().eq(WarningRuleDetail::getRegionCode, pageWrap.getModel().getRegionCode());
+ }
+ if (pageWrap.getModel().getSortnum() != null) {
+ queryWrapper.lambda().eq(WarningRuleDetail::getSortnum, pageWrap.getModel().getSortnum());
+ }
+ if (pageWrap.getModel().getRegionName() != null) {
+ queryWrapper.lambda().eq(WarningRuleDetail::getRegionName, pageWrap.getModel().getRegionName());
+ }
+ if (pageWrap.getModel().getRegionId() != null) {
+ queryWrapper.lambda().eq(WarningRuleDetail::getRegionId, pageWrap.getModel().getRegionId());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(warningRuleDetailMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(WarningRuleDetail warningRuleDetail) {
+ QueryWrapper<WarningRuleDetail> wrapper = new QueryWrapper<>(warningRuleDetail);
+ return warningRuleDetailMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java
new file mode 100644
index 0000000..9b713aa
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java
@@ -0,0 +1,145 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.WarningRuleMapper;
+import com.doumee.dao.business.model.WarningRule;
+import com.doumee.service.business.WarningRuleService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 鎶ヨ瑙勫垯閰嶇疆琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class WarningRuleServiceImpl implements WarningRuleService {
+
+ @Autowired
+ private WarningRuleMapper warningRuleMapper;
+
+ @Override
+ public Integer create(WarningRule warningRule) {
+ warningRuleMapper.insert(warningRule);
+ return warningRule.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ warningRuleMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(WarningRule warningRule) {
+ UpdateWrapper<WarningRule> deleteWrapper = new UpdateWrapper<>(warningRule);
+ warningRuleMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ warningRuleMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(WarningRule warningRule) {
+ warningRuleMapper.updateById(warningRule);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<WarningRule> warningRules) {
+ if (CollectionUtils.isEmpty(warningRules)) {
+ return;
+ }
+ for (WarningRule warningRule: warningRules) {
+ this.updateById(warningRule);
+ }
+ }
+
+ @Override
+ public WarningRule findById(Integer id) {
+ return warningRuleMapper.selectById(id);
+ }
+
+ @Override
+ public WarningRule findOne(WarningRule warningRule) {
+ QueryWrapper<WarningRule> wrapper = new QueryWrapper<>(warningRule);
+ return warningRuleMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<WarningRule> findList(WarningRule warningRule) {
+ QueryWrapper<WarningRule> wrapper = new QueryWrapper<>(warningRule);
+ return warningRuleMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<WarningRule> findPage(PageWrap<WarningRule> pageWrap) {
+ IPage<WarningRule> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<WarningRule> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(WarningRule::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(WarningRule::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(WarningRule::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(WarningRule::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(WarningRule::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(WarningRule::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(WarningRule::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(WarningRule::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(WarningRule::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getMemberId() != null) {
+ queryWrapper.lambda().eq(WarningRule::getMemberId, pageWrap.getModel().getMemberId());
+ }
+ if (pageWrap.getModel().getIntervalSec() != null) {
+ queryWrapper.lambda().eq(WarningRule::getIntervalSec, pageWrap.getModel().getIntervalSec());
+ }
+ if (pageWrap.getModel().getSortnum() != null) {
+ queryWrapper.lambda().eq(WarningRule::getSortnum, pageWrap.getModel().getSortnum());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(WarningRule::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getWarningId() != null) {
+ queryWrapper.lambda().eq(WarningRule::getWarningId, pageWrap.getModel().getWarningId());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(warningRuleMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(WarningRule warningRule) {
+ QueryWrapper<WarningRule> wrapper = new QueryWrapper<>(warningRule);
+ return warningRuleMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
new file mode 100644
index 0000000..d84e165
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
@@ -0,0 +1,167 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.WarningMapper;
+import com.doumee.dao.business.model.Warning;
+import com.doumee.service.business.WarningService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 鎶ヨ璁板綍淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class WarningServiceImpl implements WarningService {
+
+ @Autowired
+ private WarningMapper warningMapper;
+
+ @Override
+ public Integer create(Warning warning) {
+ warningMapper.insert(warning);
+ return warning.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ warningMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(Warning warning) {
+ UpdateWrapper<Warning> deleteWrapper = new UpdateWrapper<>(warning);
+ warningMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ warningMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(Warning warning) {
+ warningMapper.updateById(warning);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<Warning> warnings) {
+ if (CollectionUtils.isEmpty(warnings)) {
+ return;
+ }
+ for (Warning warning: warnings) {
+ this.updateById(warning);
+ }
+ }
+
+ @Override
+ public Warning findById(Integer id) {
+ return warningMapper.selectById(id);
+ }
+
+ @Override
+ public Warning findOne(Warning warning) {
+ QueryWrapper<Warning> wrapper = new QueryWrapper<>(warning);
+ return warningMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<Warning> findList(Warning warning) {
+ QueryWrapper<Warning> wrapper = new QueryWrapper<>(warning);
+ return warningMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<Warning> findPage(PageWrap<Warning> pageWrap) {
+ IPage<Warning> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<Warning> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(Warning::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(Warning::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(Warning::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(Warning::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(Warning::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(Warning::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(Warning::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(Warning::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getName() != null) {
+ queryWrapper.lambda().eq(Warning::getName, pageWrap.getModel().getName());
+ }
+ if (pageWrap.getModel().getInfo() != null) {
+ queryWrapper.lambda().eq(Warning::getInfo, pageWrap.getModel().getInfo());
+ }
+ if (pageWrap.getModel().getType() != null) {
+ queryWrapper.lambda().eq(Warning::getType, pageWrap.getModel().getType());
+ }
+ if (pageWrap.getModel().getObjId() != null) {
+ queryWrapper.lambda().eq(Warning::getObjId, pageWrap.getModel().getObjId());
+ }
+ if (pageWrap.getModel().getObjType() != null) {
+ queryWrapper.lambda().eq(Warning::getObjType, pageWrap.getModel().getObjType());
+ }
+ if (pageWrap.getModel().getCode() != null) {
+ queryWrapper.lambda().eq(Warning::getCode, pageWrap.getModel().getCode());
+ }
+ if (pageWrap.getModel().getSortnum() != null) {
+ queryWrapper.lambda().eq(Warning::getSortnum, pageWrap.getModel().getSortnum());
+ }
+ if (pageWrap.getModel().getLevel() != null) {
+ queryWrapper.lambda().eq(Warning::getLevel, pageWrap.getModel().getLevel());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(Warning::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getSubscribeStatus() != null) {
+ queryWrapper.lambda().eq(Warning::getSubscribeStatus, pageWrap.getModel().getSubscribeStatus());
+ }
+ if (pageWrap.getModel().getSubscribeDate() != null) {
+ queryWrapper.lambda().ge(Warning::getSubscribeDate, Utils.Date.getStart(pageWrap.getModel().getSubscribeDate()));
+ queryWrapper.lambda().le(Warning::getSubscribeDate, Utils.Date.getEnd(pageWrap.getModel().getSubscribeDate()));
+ }
+ if (pageWrap.getModel().getSubscribeInfo() != null) {
+ queryWrapper.lambda().eq(Warning::getSubscribeInfo, pageWrap.getModel().getSubscribeInfo());
+ }
+ if (pageWrap.getModel().getSubscribeMemberId() != null) {
+ queryWrapper.lambda().eq(Warning::getSubscribeMemberId, pageWrap.getModel().getSubscribeMemberId());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(warningMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(Warning warning) {
+ QueryWrapper<Warning> wrapper = new QueryWrapper<>(warning);
+ return warningMapper.selectCount(wrapper);
+ }
+}
--
Gitblit v1.9.3